The three compress different parts of a Claude Code session. rtk filters shell output on your machine, Headroom is a local proxy for tool outputs and context, and condense is a hosted proxy for the session history that dominates the bill. We build condense; every number below is a single run from our open-source harness, minmax-bench, which prints the runs where condense loses too.
At a glance
rtk and Headroom are described by their own docs. The cost column is our measurement.
| Tool | Compresses | Runs | Prompts go to | Measured on cost |
|---|---|---|---|---|
| rtk | Shell command output | Local CLI hook | Your model provider | Higher cost per pass, one Terminal-Bench run |
| Headroom | Tool outputs and context; kompress mode | Local proxy | Your model provider | 13.8% of the bill, one live replay |
| condense | Session history and the newest turn | Hosted proxy via the dense CLI | condense, then your model provider | 37.3% on the same replay; 72% on a 938-turn session |
rtk: shell output filtering
Tests come back as failures only and grep results grouped by file. The README advertises up to 90% less bash output and says that is not an equally smaller bill.
We do not know why yet. Terminal-Bench leaned on bespoke scripts more than the test runners rtk targets, so a build-heavy project could look different.
Headroom vs condense, same session
One real Claude Code session, replayed live on claude-haiku-4-5 and priced with cache tiers, over the roughly 1,600 request points the Headroom arms reached.
In a separate quality study Headroom held quality, but its bill came in 24-84% above the no-proxy control on several replays.
condense: the history it re-reads
Re-reading cached history was 67.7% of spend in the anatomy of a token bill. condense packs finished loops, keeping paths, identifiers, errors and code, and freezes them so the cache holds.
| Session length | Result |
|---|---|
| Under about 20 turns | Overhead outruns the saving |
| 200 turns | 45% lower cost |
| 938 turns | 72% under baseline |
Prompts pass through our servers; see the LLM proxy safety guide. Setup is curl -fsSL https://cli.condense.chat/unix | sh then dense claude.
Which to pick
- 1Short, output-heavy sessions
rtk or plain command hygiene; see reducing tool output tokens.
- 2Prompts must stay on your infrastructure
rtk or a self-hosted Headroom. condense is hosted.
- 3Long sessions, auto-compact firing
condense, where history dominates. It runs alongside rtk.
- 4Measure cost per solved task
Same tasks, with and without, more than once, totals from the provider bill.
Frequently asked questions
Is rtk or Headroom better for Claude Code?
They target different input: rtk filters bash output, Headroom compresses tool outputs and context as a proxy. If noisy shell output is your problem, rtk is the more direct fit.
Can I use rtk and condense together?
Yes. rtk shapes what enters context and condense compresses the history that stays; our Terminal-Bench run did not test them together.
Does rtk save money on Claude Code?
rtk advertises up to 90% less bash output and notes that is not a 90% smaller bill. In one Terminal-Bench run, cost per suite pass was 15.2% higher with rtk and fewer tasks were solved.
Is condense open source like rtk and Headroom?
The dense CLI and the minmax-bench harness are open source. The compression models and proxy run as a hosted service.
Which Claude Code token saver keeps my data local?
rtk runs on your machine and Headroom is a proxy you host; both forward only to your model provider. condense is hosted, so prompts pass through its servers; see our LLM proxy safety guide.