Blog

rtk vs Headroom vs Condense: token savers for Claude Code compared

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.

37.3%
of the bill removed by condense
13.8%
removed by Headroom on the same session
+15.2%
cost per pass with rtk on Terminal-Bench

At a glance

rtk and Headroom are described by their own docs. The cost column is our measurement.

ToolCompressesRunsPrompts go toMeasured on cost
rtkShell command outputLocal CLI hookYour model providerHigher cost per pass, one Terminal-Bench run
HeadroomTool outputs and context; kompress modeLocal proxyYour model provider13.8% of the bill, one live replay
condenseSession history and the newest turnHosted proxy via the dense CLIcondense, then your model provider37.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.

Cost per suite pass
Terminal-Bench, same model, single run
No tool
$25.46
rtk
$29.33
rtk cost more per pass and solved 75% of tasks against 81.5% with no tool. From Case 001.

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.

Share of the bill removed
One live replay, claude-haiku-4-5
condense, full session
37.3%
condense, Headroom's depth
28%
Headroom default
13.8%
Headroom kompress
1.8%
Headroom’s default kept the cache but left history alone; kompress disrupted the cache. From our quality evaluation.

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 lengthResult
Under about 20 turnsOverhead outruns the saving
200 turns45% lower cost
938 turns72% 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

  1. 1
    Short, output-heavy sessions

    rtk or plain command hygiene; see reducing tool output tokens.

  2. 2
    Prompts must stay on your infrastructure

    rtk or a self-hosted Headroom. condense is hosted.

  3. 3
    Long sessions, auto-compact firing

    condense, where history dominates. It runs alongside rtk.

  4. 4
    Measure 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.

All posts