id = "lnav"
name = "lnav"
homepage = "https://lnav.org"
description = "The Logfile Navigator."
executables = ["lnav"]
[dotfiles]
paths = [
"~/.lnav/config.json",
"~/.lnav/configs/",
"~/.lnav/formats/",
"~/.config/lnav/config.json",
"~/.config/lnav/configs/",
"~/.config/lnav/formats/",
]
secret = []
side_effect = false
[commands]
format = 1
label = "View log files"
description = "Open log files or directories in lnav, or run commands headless. Management mode, format install and debug options are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = true }
[[commands.source]]
id = "man"
kind = "manual"
url = "https://manpages.debian.org/unstable/lnav/lnav.1.en.html"
revision = "2026-10-27"
evidence = """
-r
Recursively load files from the given directories.
-R
Load older rotated log files as well.
-c cmd
Execute a command after the files have been loaded.
-f path
Execute the commands in the given file.
-t
Prepend timestamps to the lines of data being read in on the standard input.
-n
Run without the curses UI. (headless mode)
-N
Do not open the default syslog file if no files are given.
-q
Quiet mode. Do not print the log messages after executing all of the commands.
logfile1
The log files or directories to view. If a directory is given, all of the files in the directory will be loaded.
"""
[[commands.field]]
id = "files"
label = "Log files or directories"
type = "path"
position = 0
multiple = true
path = { kind = "any", role = "input" }
sources = ["man"]
[[commands.field]]
id = "recursive"
label = "Load directories recursively"
type = "boolean"
option = ["-r"]
sources = ["man"]
[[commands.field]]
id = "rotated"
label = "Include rotated logs"
type = "boolean"
option = ["-R"]
sources = ["man"]
[[commands.field]]
id = "no_default"
label = "Skip default syslog"
type = "boolean"
option = ["-N"]
sources = ["man"]
[[commands.field]]
id = "command"
label = "Command after load"
type = "string"
option = ["-c"]
sources = ["man"]
[[commands.field]]
id = "script"
label = "Command file"
type = "path"
option = ["-f"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["man"]
[[commands.field]]
id = "headless"
label = "Headless (no UI)"
type = "boolean"
option = ["-n"]
sources = ["man"]
[[commands.field]]
id = "quiet"
label = "Quiet"
type = "boolean"
option = ["-q"]
sources = ["man"]
[[commands.task]]
id = "view"
label = "View logs"
fields = ["files", "recursive", "rotated"]
required = ["files"]
[[commands.task]]
id = "headless"
label = "Run command headless"
fields = ["files", "command", "headless", "quiet"]
required = ["files", "command"]
set = { headless = [true] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["files", "recursive", "rotated", "no_default"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["command", "script", "headless", "quiet"]