docs/guide/getting-started/configuration.md
| Platform | Path |
|---|---|
| Linux | ~/.config/rtk/config.toml |
| macOS | ~/Library/Application Support/rtk/config.toml |
rtk config # show current configuration
rtk config --create # create config file with defaults
[tracking]
enabled = true # enable/disable token tracking
history_days = 90 # retention in days (auto-cleanup)
database_path = "/custom/path/history.db" # optional override
[display]
colors = true # colored output
emoji = true # use emojis in output
max_width = 120 # maximum output width
[filters]
# These apply to file-reading commands (ls, find, grep, cat/rtk read).
# Paths matching these patterns are excluded from output, keeping noise low.
ignore_dirs = [".git", "node_modules", "target", "__pycache__", ".venv", "vendor"]
ignore_files = ["*.lock", "*.min.js", "*.min.css"]
[tee]
enabled = true # save raw output on failure
mode = "failures" # "failures" (default), "always", "never"
max_files = 20 # rotation: keep last N files
# directory = "/custom/tee/path" # optional override
[telemetry]
enabled = true # anonymous daily ping — see Telemetry & Privacy for full details
[hooks]
exclude_commands = [] # commands to never auto-rewrite
For full details on what is collected, opt-out options, and GDPR rights, see Telemetry & Privacy.
| Variable | Description |
|---|---|
RTK_DISABLED=1 | Disable RTK for a single command (RTK_DISABLED=1 git status) |
RTK_TEE_DIR | Override the tee directory |
RTK_TELEMETRY_DISABLED=1 | Disable telemetry |
RTK_HOOK_AUDIT=1 | Enable hook audit logging |
SKIP_ENV_VALIDATION=1 | Skip env validation (useful with Next.js) |
When a command fails, RTK saves the full raw output to a local file and prints the path:
FAILED: 2/15 tests
[full output: ~/.local/share/rtk/tee/1707753600_cargo_test.log]
Your AI assistant can then read the file if it needs more detail, without re-running the command.
| Setting | Default | Description |
|---|---|---|
tee.enabled | true | Enable/disable |
tee.mode | "failures" | "failures", "always", "never" |
tee.max_files | 20 | Rotation: keep last N files |
| Min size | 500 bytes | Outputs shorter than this are not saved |
| Max file size | 1 MB | Truncated above this |
Prevent specific commands from being rewritten by the hook:
[hooks]
exclude_commands = ["git rebase", "git cherry-pick", "docker exec"]
Patterns match against the full command after stripping env prefixes (sudo, VAR=val), so "psql" excludes both psql -h localhost and PGPASSWORD=x psql -h localhost.
Subcommand patterns work too: "git push" excludes git push origin main but not git status.
Patterns starting with ^ are treated as regex:
[hooks]
exclude_commands = ["^curl", "^wget", "git rebase"]
Invalid regex patterns fall back to prefix matching.
Or for a single invocation:
RTK_DISABLED=1 git rebase main
RTK sends one anonymous ping per day (23h interval). No personal data, no file paths, no command content.
Data sent: device hash, version, OS, architecture, command count/24h, top commands, savings %.
To opt out:
# Via environment variable
export RTK_TELEMETRY_DISABLED=1
# Via config.toml
[telemetry]
enabled = false
Create .rtk/filters.toml in your project root to add custom filters or override built-ins. See src/filters/README.md for the full TOML DSL reference.