Purpose
Reduce LLM token consumption in Claude Code sessions by 60-90% without changing developer workflow.
All Bash commands are transparently rewritten to their rtk equivalents via a PreToolUse hook.
How It Works
Without rtk: With rtk:
Claude --git status--> shell --> git Claude --git status--> RTK --> git
^ ~2,000 tokens (raw) | ^ ~200 tokens | |
+-------------------------------+ +---- (filtered) ----+-------+
Four strategies applied per command type:
- Smart Filtering - Removes noise (comments, whitespace, boilerplate)
- Grouping - Aggregates similar items (files by directory, errors by type)
- Truncation - Keeps relevant context, cuts redundancy
- Deduplication - Collapses repeated log lines with counts
Supported Commands
| Category |
Commands |
Typical Savings |
| Files |
ls, read, find, grep, diff |
70-80% |
| Git |
status, diff, log, add, commit, push |
75-92% |
| GitHub CLI |
pr list, issue list, run list |
80% |
| Test Runners |
cargo test, npm test, pytest, go test, vitest, playwright |
90% |
| Build & Lint |
cargo build, tsc, next build, eslint, ruff, clippy |
80-85% |
| Package Managers |
pnpm list, pip list, bundle install |
80% |
| Containers |
docker ps/logs, kubectl pods/logs |
80% |
| AWS |
sts, ec2, lambda, logs, s3, cloudformation |
80% |
| Data |
json, env, log, curl, wget |
70-80% |
Token Savings (30-min Session Estimate)
| Operation |
Frequency |
Standard |
rtk |
Savings |
| ls / tree |
10x |
2,000 |
400 |
-80% |
| cat / read |
20x |
40,000 |
12,000 |
-70% |
| grep / rg |
8x |
16,000 |
3,200 |
-80% |
| git status |
10x |
3,000 |
600 |
-80% |
| git diff |
5x |
10,000 |
2,500 |
-75% |
| cargo test / npm test |
5x |
25,000 |
2,500 |
-90% |
| Total |
|
~118,000 |
~23,900 |
-80% |
Usage
After installation, rtk works automatically via the PreToolUse hook. No manual changes needed.
Analytics Commands
rtk gain # Summary stats
rtk gain --graph # ASCII graph (last 30 days)
rtk gain --daily # Day-by-day breakdown
rtk discover # Find missed savings opportunities
rtk session # Show RTK adoption across recent sessions
Manual Usage
rtk git status # Compact git status
rtk read file.rs # Smart file reading
rtk test cargo test # Show failures only
rtk lint # ESLint grouped by rule/file
rtk docker ps # Compact container list
Prerequisites
rtk binary: brew install rtk or curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
jq: required by the hook script
Integration
- Hook:
hooks/rtk-rewrite.sh (PreToolUse:Bash, last in chain)
- Config:
~/.config/rtk/config.toml for customization
- Tee recovery: failed command full output saved to
~/.local/share/rtk/tee/
References
1---2name: rtk-token-optimization3description: >4 High-performance CLI proxy that reduces LLM token consumption by 60-90%.5 Transparently rewrites 100+ common dev commands (git, gh, cargo, npm, docker, kubectl, aws, etc.)6 via PreToolUse hook. Single Rust binary, zero dependencies.7source: https://github.com/rtk-ai/rtk8license: Apache-2.09trust_tier: B-proven-community10---1112## Purpose1314Reduce LLM token consumption in Claude Code sessions by 60-90% without changing developer workflow.15All Bash commands are transparently rewritten to their `rtk` equivalents via a PreToolUse hook.1617## How It Works1819```20Without rtk: With rtk:21Claude --git status--> shell --> git Claude --git status--> RTK --> git22 ^ ~2,000 tokens (raw) | ^ ~200 tokens | |23 +-------------------------------+ +---- (filtered) ----+-------+24```2526Four strategies applied per command type:27281. **Smart Filtering** - Removes noise (comments, whitespace, boilerplate)292. **Grouping** - Aggregates similar items (files by directory, errors by type)303. **Truncation** - Keeps relevant context, cuts redundancy314. **Deduplication** - Collapses repeated log lines with counts3233## Supported Commands3435| Category | Commands | Typical Savings |36|----------|----------|----------------|37| Files | ls, read, find, grep, diff | 70-80% |38| Git | status, diff, log, add, commit, push | 75-92% |39| GitHub CLI | pr list, issue list, run list | 80% |40| Test Runners | cargo test, npm test, pytest, go test, vitest, playwright | 90% |41| Build & Lint | cargo build, tsc, next build, eslint, ruff, clippy | 80-85% |42| Package Managers | pnpm list, pip list, bundle install | 80% |43| Containers | docker ps/logs, kubectl pods/logs | 80% |44| AWS | sts, ec2, lambda, logs, s3, cloudformation | 80% |45| Data | json, env, log, curl, wget | 70-80% |4647## Token Savings (30-min Session Estimate)4849| Operation | Frequency | Standard | rtk | Savings |50|-----------|-----------|----------|-----|---------|51| ls / tree | 10x | 2,000 | 400 | -80% |52| cat / read | 20x | 40,000 | 12,000 | -70% |53| grep / rg | 8x | 16,000 | 3,200 | -80% |54| git status | 10x | 3,000 | 600 | -80% |55| git diff | 5x | 10,000 | 2,500 | -75% |56| cargo test / npm test | 5x | 25,000 | 2,500 | -90% |57| **Total** | | **~118,000** | **~23,900** | **-80%** |5859## Usage6061After installation, rtk works automatically via the PreToolUse hook. No manual changes needed.6263### Analytics Commands6465```bash66rtk gain # Summary stats67rtk gain --graph # ASCII graph (last 30 days)68rtk gain --daily # Day-by-day breakdown69rtk discover # Find missed savings opportunities70rtk session # Show RTK adoption across recent sessions71```7273### Manual Usage7475```bash76rtk git status # Compact git status77rtk read file.rs # Smart file reading78rtk test cargo test # Show failures only79rtk lint # ESLint grouped by rule/file80rtk docker ps # Compact container list81```8283## Prerequisites8485- `rtk` binary: `brew install rtk` or `curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh`86- `jq`: required by the hook script8788## Integration8990- Hook: `hooks/rtk-rewrite.sh` (PreToolUse:Bash, last in chain)91- Config: `~/.config/rtk/config.toml` for customization92- Tee recovery: failed command full output saved to `~/.local/share/rtk/tee/`9394## References9596- [rtk GitHub](https://github.com/rtk-ai/rtk)97- [rtk Website](https://www.rtk-ai.app)98- [Troubleshooting](https://github.com/rtk-ai/rtk/blob/master/docs/TROUBLESHOOTING.md)