id = "syncthing"
name = "Syncthing"
homepage = "https://syncthing.net/"
description = "Syncthing is a continuous file synchronization program."
executables = ["syncthing"]
[dotfiles]
paths = []
secret = [
"~/.local/state/syncthing/config.xml",
"[appData]/Syncthing/config.xml",
"%LOCALAPPDATA%/Syncthing/config.xml",
"~/.config/syncthing/config.xml",
"~/.local/state/syncthing/cert.pem",
"~/.local/state/syncthing/key.pem",
"~/.local/state/syncthing/https-cert.pem",
"~/.local/state/syncthing/https-key.pem",
"[appData]/Syncthing/cert.pem",
"[appData]/Syncthing/key.pem",
"[appData]/Syncthing/https-cert.pem",
"[appData]/Syncthing/https-key.pem",
"%LOCALAPPDATA%/Syncthing/cert.pem",
"%LOCALAPPDATA%/Syncthing/key.pem",
"%LOCALAPPDATA%/Syncthing/https-cert.pem",
"%LOCALAPPDATA%/Syncthing/https-key.pem",
"~/.config/syncthing/cert.pem",
"~/.config/syncthing/key.pem",
"~/.config/syncthing/https-cert.pem",
"~/.config/syncthing/https-key.pem",
]
[commands]
format = 1
label = "Run Syncthing"
description = "Start the Syncthing server with common options. Source: syncthing(1) man page. Subcommands, database tuning and debug flags are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "man"
kind = "manual"
url = "https://man.archlinux.org/man/syncthing.1.en"
revision = "2026-10-27"
evidence = """
syncthing [serve]
--home=<dir>, -H <dir> ($STHOMEDIR)
--config=<dir>, -C <dir> ($STCONFDIR)
--data=<dir>, -D <dir> ($STDATADIR)
--audit ($STAUDIT)
--gui-address=<address> ($STGUIADDRESS)
--log-file=<filename> ($STLOGFILE)
--no-browser
--no-restart
--no-upgrade
--paused
--unpaused
"""
[[commands.field]]
id = "home"
label = "Home directory"
description = "Common configuration and data directory. Alternative to config plus data."
type = "path"
option = ["--home", "-H"]
path = { kind = "directory", role = "input" }
sources = ["man"]
[[commands.field]]
id = "config"
label = "Config directory"
description = "Must be used together with the data directory."
type = "path"
option = ["--config", "-C"]
path = { kind = "directory", role = "input" }
sources = ["man"]
[[commands.field]]
id = "data"
label = "Data directory"
description = "Must be used together with the config directory."
type = "path"
option = ["--data", "-D"]
path = { kind = "directory", role = "input" }
sources = ["man"]
[[commands.field]]
id = "gui_address"
label = "GUI listen address"
description = "An address such as 0.0.0.0:8384 or a URL."
type = "string"
option = ["--gui-address"]
sources = ["man"]
[[commands.field]]
id = "log_file"
label = "Log file"
type = "path"
option = ["--log-file"]
path = { kind = "file", role = "output", must_exist = false }
effect = "overwrite"
sources = ["man"]
[[commands.field]]
id = "audit"
label = "Write audit log"
type = "boolean"
option = ["--audit"]
sources = ["man"]
[[commands.field]]
id = "no_browser"
label = "Do not open the browser"
type = "boolean"
option = ["--no-browser"]
sources = ["man"]
[[commands.field]]
id = "no_restart"
label = "No automatic restart"
type = "boolean"
option = ["--no-restart"]
sources = ["man"]
[[commands.field]]
id = "no_upgrade"
label = "Disable automatic upgrades"
type = "boolean"
option = ["--no-upgrade"]
sources = ["man"]
[[commands.field]]
id = "paused"
label = "Start paused"
type = "boolean"
option = ["--paused"]
sources = ["man"]
[[commands.task]]
id = "serve"
label = "Start the server"
fields = ["home", "gui_address", "no_browser", "no_upgrade"]
[[commands.task]]
id = "serve-headless"
label = "Start without opening the browser"
set = { no_browser = [true] }
fields = ["home", "gui_address", "no_browser"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["home", "config", "data", "gui_address", "no_browser"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["log_file", "audit", "no_restart", "no_upgrade", "paused"]