id = "filebrowser"
name = "File Browser"
homepage = "https://github.com/filebrowser/filebrowser"
description = "A web-based file browser and management CLI."
executables = ["filebrowser"]
[dotfiles]
paths = [
"~/.filebrowser.json",
"~/.filebrowser.toml",
"~/.filebrowser.yaml",
"~/.filebrowser.yml",
]
exclude = []
secret = []
side_effect = false
[commands]
format = 1
label = "Serve a directory"
description = "Start File Browser on an address and port with a root directory and database. TLS, sockets, previews, quick-setup credentials and the config/users/rules subcommands and the command runner (disabled by default) are not modelled; keep it behind a reverse proxy."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = true, short_bundles = false }
[[commands.source]]
id = "help"
kind = "manual"
url = "https://raw.githubusercontent.com/filebrowser/filebrowser/HEAD/docs/cli/filebrowser.md"
revision = "HEAD 2026-10-27"
evidence = """
-a, --address string address to listen on (default "127.0.0.1")
-b, --baseURL string base url
-c, --config string config file path
-d, --database string database path (default "./filebrowser.db")
-l, --log string log output (default "stdout")
-p, --port string port to listen on (default "8080")
-r, --root string root to prepend to relative paths (default ".")
"""
[[commands.field]]
id = "root"
label = "Root directory"
description = "Directory whose files are served."
type = "path"
option = ["--root", "-r"]
path = { kind = "directory", role = "input", must_exist = true }
observed_default = "."
sources = ["help"]
[[commands.field]]
id = "address"
label = "Listen address"
type = "string"
option = ["--address", "-a"]
suggestions = [{ value = "127.0.0.1", label = "Localhost only" }, { value = "0.0.0.0", label = "All interfaces" }]
observed_default = "127.0.0.1"
sources = ["help"]
[[commands.field]]
id = "port"
label = "Port"
type = "string"
option = ["--port", "-p"]
observed_default = "8080"
sources = ["help"]
[[commands.field]]
id = "database"
label = "Database file"
type = "path"
option = ["--database", "-d"]
path = { kind = "file", role = "output", must_exist = false }
observed_default = "./filebrowser.db"
sources = ["help"]
[[commands.field]]
id = "config"
label = "Config file"
type = "path"
option = ["--config", "-c"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["help"]
[[commands.field]]
id = "base_url"
label = "Base URL"
type = "string"
option = ["--baseURL", "-b"]
sources = ["help"]
[[commands.field]]
id = "log"
label = "Log output"
type = "string"
option = ["--log", "-l"]
suggestions = [{ value = "stdout", label = "Standard output" }]
observed_default = "stdout"
sources = ["help"]
[[commands.task]]
id = "serve"
label = "Serve a directory"
fields = ["root", "address", "port", "database"]
required = ["root"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["root", "address", "port", "database"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["config", "base_url", "log"]