Blog Network

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.

GitHub social card for the rtk-ai/rtk repository

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

LicenseApache-2.0
GitHub stars79.6K
Forks5,034
Command filters~100 across 14 ecosystems
Startup overhead (design target)<10 ms
Token estimatebytes / 4 (no tokenizer shipped)
Latest stablev0.48.0 (2026-09-04)

Quick facts

Makerrtk-ai
Versionv0.48.0
LanguageRust, single binary, 54 crate deps
Installbrew install rtk, cargo install, or install.sh
AgentsClaude Code, Copilot, Gemini CLI, Codex, Cursor, Windsurf, Cline, Kilo, Antigravity, Kimi, Pi, OMP, Hermes, Droid
LicenseApache-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.

Sources · 2 outlets

Tags

  • rtk
  • token-savings
  • cli
  • rust
  • agent-tooling
  • claude-code
  • codex
  • cursor
  • gemini-cli
  • apache-2.0
  • open-source

← All releases