id = "tor"
name = "Tor"
homepage = "https://www.torproject.org"
description = "The second-generation onion router."
executables = ["tor"]
[dotfiles]
paths = ["~/.torrc"]
exclude = []
secret = []
side_effect = false
[[dotfiles.secret_paths]]
file = "~/.torrc"
match = { prefix = ["HashedControlPassword"] }
[commands]
format = 1
label = "Run or check Tor"
description = "Start tor with a chosen torrc and SOCKS port, or only verify the configuration. Hashing passwords, key listing and Windows service options are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "manual"
kind = "manual"
url = "https://gitlab.torproject.org/tpo/core/tor/-/raw/main/doc/man/tor.1.txt"
revision = "2026-10-27"
evidence = """
-f, --torrc-file FILE
Specify a new configuration file to contain further Tor configuration options
--allow-missing-torrc
Allow the configuration file specified by -f to be missing
--ignore-missing-torrc
Specify that Tor should treat a missing torrc file as though it were empty.
--verify-config
Verify whether the configuration file is valid.
--dump-config short|full
Write a list of Tor's configured options to standard output.
--list-torrc-options
List all valid options.
format --OptionName OptionValue: --SocksPort 9999
"""
[[commands.field]]
id = "torrc"
label = "torrc file"
type = "path"
path = { kind = "file", role = "input" }
option = ["-f", "--torrc-file"]
sources = ["manual"]
[[commands.field]]
id = "socks_port"
label = "SOCKS port"
type = "integer"
option = ["--SocksPort"]
sources = ["manual"]
[[commands.field]]
id = "verify_config"
label = "Verify configuration only"
type = "boolean"
option = ["--verify-config"]
sources = ["manual"]
[[commands.field]]
id = "dump_config"
label = "Dump configuration"
type = "enum"
option = ["--dump-config"]
choices = [{ value = "short", label = "Only non-default options" }, { value = "full", label = "All options" }]
sources = ["manual"]
[[commands.field]]
id = "list_options"
label = "List valid options"
type = "boolean"
option = ["--list-torrc-options"]
sources = ["manual"]
[[commands.field]]
id = "allow_missing"
label = "Allow missing torrc"
type = "boolean"
option = ["--allow-missing-torrc"]
sources = ["manual"]
[[commands.task]]
id = "verify"
label = "Verify a torrc"
fields = ["torrc", "verify_config"]
required = ["torrc", "verify_config"]
set = { verify_config = [true] }
[[commands.task]]
id = "run"
label = "Start with a torrc"
fields = ["torrc", "socks_port"]
required = ["torrc"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["torrc", "socks_port", "verify_config"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["dump_config", "list_options", "allow_missing"]