id = "lnav" name = "lnav" homepage = "https://lnav.org" description = "The Logfile Navigator." executables = ["lnav"] [dotfiles] # lnav's official configuration guide (https://docs.lnav.org/en/stable/config.html) # says is either ~/.lnav or ~/.config/lnav. It scans config.json, # configs/*/*.json and formats/*/config.*.json under either home, so all four # user trees are listed; /etc/lnav is system-wide and omitted. 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"]