id = "trippy" name = "Trippy" homepage = "https://trippy.rs/reference/overview/" description = "A network diagnostic tool with a traceroute-like TUI." executables = ["trip"] [dotfiles] # The official configuration reference lists trippy.toml and .trippy.toml in # the home directory, XDG config directory, XDG config/trippy directory, and # %APPDATA% when no --config-file is supplied. # https://trippy.rs/0.13.0/reference/configuration/ paths = [ "~/trippy.toml", "~/.trippy.toml", "[configHome]/trippy.toml", "[configHome]/.trippy.toml", "[configHome]/trippy/trippy.toml", "[configHome]/trippy/.trippy.toml", "%APPDATA%/trippy.toml", "%APPDATA%/.trippy.toml", "%APPDATA%/trippy/trippy.toml", "%APPDATA%/trippy/.trippy.toml", ] secret = [] side_effect = false [commands] format = 1 label = "Trace route" description = "Trace the route to one or more hosts with Trippy. Theme, DNS tuning, TUI display and config-template options are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true } [[commands.source]] id = "source" kind = "help" url = "https://trippy.rs/reference/cli/" revision = "2026-10-27" evidence = """ -m, --mode Output mode [default: tui] - tui: Display interactive TUI - stream: Display a continuous stream of tracing data - pretty: Generate a pretty text table report for N cycles - markdown: Generate a Markdown text table report for N cycles - csv: Generate a CSV report for N cycles - json: Generate a JSON report for N cycles - dot: Generate a Graphviz DOT file for N cycles - flows: Display all flows for N cycles - silent: Do not generate any tracing output for N cycles -u, --unprivileged --udp --tcp --icmp -P, --target-port -f, --first-ttl -t, --max-ttl -y, --dns-resolve-all -z, --dns-lookup-as-info -C, --report-cycles """ [[commands.field]] id = "targets" label = "Targets" description = "Hostnames or IP addresses." type = "string" position = 0 min = 1 multiple = true sources = ["source"] [[commands.field]] id = "mode" label = "Output mode" description = "Default is tui. Report modes run for the number of cycles set below." type = "enum" option = ["--mode", "-m"] choices = [{ value = "tui", label = "TUI" }, { value = "stream", label = "Stream" }, { value = "pretty", label = "Pretty table" }, { value = "markdown", label = "Markdown table" }, { value = "csv", label = "CSV" }, { value = "json", label = "JSON" }, { value = "dot", label = "Graphviz DOT" }, { value = "flows", label = "Flows" }, { value = "silent", label = "Silent" }] sources = ["source"] [[commands.field]] id = "unprivileged" label = "Unprivileged" description = "Trace without elevated privileges on supported platforms." type = "boolean" option = ["--unprivileged", "-u"] sources = ["source"] [[commands.field]] id = "udp" label = "Use UDP" type = "boolean" option = ["--udp"] sources = ["source"] [[commands.field]] id = "tcp" label = "Use TCP" type = "boolean" option = ["--tcp"] sources = ["source"] [[commands.field]] id = "icmp" label = "Use ICMP" type = "boolean" option = ["--icmp"] sources = ["source"] [[commands.field]] id = "target_port" label = "Target port" type = "integer" option = ["--target-port", "-P"] sources = ["source"] [[commands.field]] id = "first_ttl" label = "First TTL" type = "integer" option = ["--first-ttl", "-f"] sources = ["source"] [[commands.field]] id = "max_ttl" label = "Maximum TTL" type = "integer" option = ["--max-ttl", "-t"] sources = ["source"] [[commands.field]] id = "resolve_all" label = "Trace all resolved IPs" type = "boolean" option = ["--dns-resolve-all", "-y"] sources = ["source"] [[commands.field]] id = "as_info" label = "Look up AS information" type = "boolean" option = ["--dns-lookup-as-info", "-z"] sources = ["source"] [[commands.field]] id = "report_cycles" label = "Report cycles" description = "Number of cycles for report modes." type = "integer" option = ["--report-cycles", "-C"] sources = ["source"] [[commands.constraint]] kind = "at_most_one" fields = ["udp", "tcp", "icmp"] message = "Choose one protocol." [[commands.task]] id = "report" label = "Pretty report" set = { mode = ["pretty"], report_cycles = [10] } lock = ["mode"] fields = ["targets", "report_cycles", "udp", "tcp", "icmp", "unprivileged"] required = ["targets"] [[commands.task]] id = "trace" label = "Trace a host" fields = ["targets", "unprivileged", "udp", "tcp", "icmp", "target_port"] required = ["targets"] [[commands.group]] id = "basic" label = "Basic" fields = ["targets", "unprivileged", "udp", "tcp", "icmp", "target_port"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["mode", "report_cycles", "first_ttl", "max_ttl", "resolve_all", "as_info"]