Repository navigation
RTK Installation
RTK is a single binary plus a Claude Code hook. Two steps: install the binary, then register the hook.
Skip this page if you're a UFIL user — UFIL auto-installs RTK on first session via
scripts/install-rtk.sh. See RTK-Usage-in-Plugins.
brew install rtkcurl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | shSee the rtk-ai/rtk README for cargo install or release-binary download.
rtk --version # should print: rtk X.Y.Z
which rtk # confirm the path is what you expect
rtk gain # should not print "command not found"
⚠️ Ifrtk gainerrors with something like "no such subcommand", you most likely havereachingforthejack/rtk(Rust Type Kit) installed instead. Uninstall it (or shadow it) before continuing. Full diagnosis in RTK-Troubleshooting.
rtk init -gThis writes a global hook into ~/.claude/settings.json plus a copy of RTK.md (RTK's own usage guide) into ~/.claude/. The hook is what rewrites Bash("git status") → Bash("rtk git status") transparently.
Inspect the current state any time with:
rtk init --showIt will tell you whether the global hook is installed, and where it lives.
The hook is loaded at Claude Code start-up. After rtk init -g, quit and reopen Claude Code so the new settings take effect. Without a restart, RTK is installed but inert.
In a fresh Claude Code session, ask Claude to run any shell command (e.g. git status). Then:
rtk gain --historyIf you see your recent commands listed with savings metrics, the hook is active. If gain --history is empty even though you ran commands, the hook didn't fire — check RTK-Troubleshooting.
rtk init --uninstall # remove the global hook
brew uninstall rtk # or your install methodFor UFIL users: also delete the sentinel so the next session doesn't try to re-install:
rm -f "${XDG_CACHE_HOME:-$HOME/.cache}/ufil/rtk-initialized"coming soon
coming soon