rtk-ai · 2026-09-04 · major
RTK v0.48.0 — the Rust CLI proxy that shrinks bash output before your agent reads it passes 79K stars
RTK (Rust Token Killer) v0.48.0 shipped on 2026-09-04. It is a single Rust binary that sits between a coding agent and the shell: a hook rewrites `git status` to `rtk git status`, and RTK's own filter for that command prints a compact version. About 100 commands have filters (git, gh, cargo, npm/pnpm, pytest, jest, docker, kubectl, aws, pulumi and more); anything else passes through unchanged. The repo is at 79,598 stars and 5,034 forks, Apache-2.0, with nightly dev-0.49.0 release candidates.
Replaces the command, not the conversation: hand-written filters for ~100 shell commands, and a README that says out loud that 90% less bash output is not 90% off your bill.
Key specs
| License | Apache-2.0 |
|---|---|
| GitHub stars | 79.6K |
| Forks | 5,034 |
| Command filters | ~100 across 14 ecosystems |
| Startup overhead (design target) | <10 ms |
| Token estimate | bytes / 4 (no tokenizer shipped) |
| Latest stable | v0.48.0 (2026-09-04) |
Quick facts
| Maker | rtk-ai |
|---|---|
| Version | v0.48.0 |
| Language | Rust, single binary, 54 crate deps |
| Install | brew install rtk, cargo install, or install.sh |
| Agents | Claude Code, Copilot, Gemini CLI, Codex, Cursor, Windsurf, Cline, Kilo, Antigravity, Kimi, Pi, OMP, Hermes, Droid |
| License | Apache-2.0 |
What is it?
RTK is a command proxy. Run `rtk init -g` and a hook in your coding agent rewrites Bash tool calls so `git log` becomes `rtk git log`. RTK executes the real command, then filters its output with a strategy written for that command: `git log` becomes hash and subject only, `ls` becomes a tree with counts, test runners show failures only, `find` groups paths by directory. If a filter fails, the raw command runs unchanged. `rtk gain` keeps a SQLite ledger of estimated savings per command.
How does it work?
Four strategies applied per command type: strip noise, group similar items, truncate redundancy, deduplicate repeated lines with counts. No model involved. Written in Rust with a <10 ms startup target so it does not show up in agent latency. Token counts are estimated as bytes/4 because RTK ships no tokenizer; the maintainers state the percentages are reliable and the absolute numbers approximate. Claude Code's built-in Read, Grep and Glob tools do not go through the Bash hook, so they are not rewritten.
Why does it matter?
Agent bills are dominated by input tokens, and a large share of those are tool outputs the model re-reads on every turn. RTK is the cheapest possible intervention on that: one hook, no proxy, no model, visible savings the same day. Its limits are the flip side: it only knows the commands it has filters for, it does nothing for JSON tool results or files read in full, and it cannot stop a model from re-running the same command. In a small four-setup test on GPT-6 Astra (blog.toolsnetwork.ai/astra-token-burn), RTK's one clear win was a repo-wide grep; on scoped reads it made no difference.