Back to Rtk

Configuration

docs/guide/getting-started/configuration.md

0.38.03.8 KB
Original Source

Configuration

Config file location

PlatformPath
Linux~/.config/rtk/config.toml
macOS~/Library/Application Support/rtk/config.toml
bash
rtk config            # show current configuration
rtk config --create   # create config file with defaults

Full config structure

toml
[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.

Environment variables

VariableDescription
RTK_DISABLED=1Disable RTK for a single command (RTK_DISABLED=1 git status)
RTK_TEE_DIROverride the tee directory
RTK_TELEMETRY_DISABLED=1Disable telemetry
RTK_HOOK_AUDIT=1Enable hook audit logging
SKIP_ENV_VALIDATION=1Skip env validation (useful with Next.js)

Tee system

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.

SettingDefaultDescription
tee.enabledtrueEnable/disable
tee.mode"failures""failures", "always", "never"
tee.max_files20Rotation: keep last N files
Min size500 bytesOutputs shorter than this are not saved
Max file size1 MBTruncated above this

Excluding commands from auto-rewrite

Prevent specific commands from being rewritten by the hook:

toml
[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:

toml
[hooks]
exclude_commands = ["^curl", "^wget", "git rebase"]

Invalid regex patterns fall back to prefix matching.

Or for a single invocation:

bash
RTK_DISABLED=1 git rebase main

Telemetry

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:

bash
# Via environment variable
export RTK_TELEMETRY_DISABLED=1

# Via config.toml
[telemetry]
enabled = false

Per-project filters

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.