Measured: October 2026 — ten days of real Claude Code usage, one machine, numbers from ccusage, session logs, and each tool’s own stats
If your Claude Code limits run out halfway through the week, the obvious move is to install a token-saving tool. We installed two, cleaned up our setup, and changed how we run sessions. Then we measured all four.
The short version: the tools helped least. Output compression saved 14% of what it touched and proxy compression about 7% of cost. Removing things we never used cut about 11K tokens from every single turn. And the biggest lever wasn’t a setting at all: it was how long we let sessions run.
Quick Start: The 3 Habits That Did the Most
- Run
/clearbetween unrelated tasks. Every turn re-reads the whole conversation, so a long session gets more expensive per message as it goes. - Run
/contextonce and remove what you don’t use. MCP servers, plugins, and skills you installed once and forgot are paid for on every turn. - Keep heavy MCP servers in project scope. Browser servers only where you do front-end work, not in every project.
⚡ Copy This Prompt: Let Claude Code Audit Its Own Setup
This only reads and reports. You decide what to cut:
Audit what this Claude Code setup loads on every turn and tell me what to cut. Do not remove or change anything yet.
1. Run `claude mcp list` and list every MCP server with its scope.
2. Read ~/.claude/settings.json and list enabled plugins, hooks, and env settings. List every folder in ~/.claude/skills.
3. For each item, say whether I've plausibly used it in the last two weeks based on this project's files, and estimate its context cost as small, medium, or large (browser and IDE-style MCP servers with 20+ tools are large).
4. Give me one table: item, cost, used recently (yes/no/unsure), recommendation (keep / remove / move to project scope).
5. Write the exact undo command next to every "remove" so I can restore it later.
Asking for the undo command up front means nothing you remove is lost.
On this page (10 sections)
Where the Tokens Actually Go
Before cutting anything, look at what you’re paying for. Over ten days we used 555.9M tokens. 531.8M of them, 95.7%, were cache reads: the model re-reading the conversation, instructions, and tool definitions it had already seen, once per turn.
Cache reads are cheap per token, but they are most of the bill because they repeat. A turn deep into a session carried 97K to 117K tokens of context on a typical day, and on one long day the median was 181K. So the questions that matter are: how much do you load at the start, and how long do you let it grow?
npx ccusage@latest daily --since 20260926
Run this to see your own split. If cache reads dominate like ours, keep reading.
The Four Things We Measured
| What we changed | Measured effect | Verdict |
|---|---|---|
Shorter sessions (/clear, /compact) | Turn context ~30K at a fresh start vs. 100K+ deep into a session | Biggest lever |
| Removed unused MCP servers, plugins, skills | First-turn context 41–44K → 29.5–33K (about −11K per turn) | Do this once |
| RTK (compresses command output) | 11.6K saved over 153 commands (14%) | Small, free, keep |
| headroom (compressing proxy) | 6.8% of cost; 4.4% average compression | Small, keep if already set up |

1. Shorter Sessions
Our fresh sessions started around 30K tokens of context. By the middle of a working day, a typical turn was past 100K, and that whole amount is read again on every message. Nothing we installed came close to the difference between those two numbers.
When to clear
habit
Start a new conversation when you switch to an unrelated task:
/clear
If you need to keep going on the same task but the session is long, summarize it instead:
/compact keep the file paths we changed and the open bugs
The instruction after /compact tells it what the summary must keep.
2. Remove What Loads on Every Turn
Every MCP server, plugin, and skill adds its definitions to the start of the context. We had collected four plugins, five MCP servers, three connectors, and four skills we no longer used. Removing them took the median first turn from 41–44K tokens down to 29.5–33K.
MCP servers are usually the biggest item. When we measured our five no-key starter servers, the two browser servers alone were about 12.3K of their 20.8K tokens of tool definitions.
Step 1 — See what’s loaded
~30 sec
Inside Claude Code:
/context
It breaks the current context down by system prompt, tools, MCP tools, memory files, and messages.
Step 2 — List and remove MCP servers
~1 min
claude mcp list
claude mcp remove <name> --scope user
Use the scope it was added with (user, project, or local). Write down the original claude mcp add line first so you can put it back.
Step 3 — Turn on tool search
~30 sec
Recent Claude Code versions can defer MCP tool definitions and load them only when needed. Add this to the env block of ~/.claude/settings.json:
"ENABLE_TOOL_SEARCH": "true"
This is on in our setup, and the numbers above were measured with it on, so it does not replace removing what you don’t use.
3. RTK: Compress Command Output
RTK is a free CLI that sits in front of shell commands and trims their output before Claude reads it. It installs a Claude Code hook, so it works without changing how you prompt.
rtk init -g
rtk gain
rtk gain shows what it has saved so far. Undo with rtk init -g --uninstall.
| Command type | Output saved |
|---|---|
ls (directory listings) | 60–85% |
grep (search) | 28.5% |
| File reads | 13.3% |
| All 153 commands | 14% (11.6K tokens) |
Big percentages on the noisy commands, but command output is a small part of a session. 11.6K tokens over three days is about one turn’s worth of fixed overhead. Worth keeping because it costs nothing, but it won’t fix running out of limits.
4. headroom: A Compressing Proxy
headroom routes Claude Code’s requests through a local proxy that compresses large tool results before they reach the model. Across 7,519 requests it compressed 5,021, by 4.4% on average, and saved 6.8% of cost. Its best single case shrank a 33K-token result to 2.7K.
It leaves most of the conversation alone on purpose: changing text that’s already cached would break the provider’s cache and cost more. That’s the right call, and it’s also why the savings are modest.
Honest Limits
- One machine, ten days. Your split depends on how you work. Run
ccusageand/contexton your own setup before copying our conclusions. - The before and after weeks weren’t identical work. The first-turn number is the cleanest comparison because it’s measured before any work happens; the per-turn medians move with what we did that day.
- Dollar figures are API list prices. On a subscription plan they show relative usage against your limits, not what you were charged.
- RTK and headroom were measured over a few days. The percentages were stable, but treat the totals as early.
Common Mistakes to Avoid
- Installing a tool before checking where tokens go. If 96% is cache reads, output compression can only touch a sliver of it.
- One session for the whole day. The 30th message pays for the 29 before it.
- Adding every MCP server with
--scope user. Heavy servers you need in one repo belong in that repo’s project scope. - Removing things without an undo. Back up
~/.claude/settings.jsonand note eachclaude mcp addline first.
Q&A
Will these save money on a Pro or Max plan?
Not in dollars, but they stretch your usage limits, which are counted in the same tokens.
Does /compact lose important context?
It can. Tell it what to keep (/compact keep X), and for a truly new task use /clear instead.
Should I install RTK and headroom at all?
RTK is free and harmless, so yes if you run a lot of shell commands. headroom needs a local proxy; set it up only if you’re comfortable with that. Neither replaces the two habits above.
Which MCP servers should I keep?
The ones you used this week. Our starter pack guide lists what each common server costs, and the MCP directory has setup guides for re-adding anything later.
Official Resources
- Claude Code: manage costs —
/context,/compact,/clear - Claude Code MCP docs — scopes and
claude mcp remove - ccusage on GitHub
- RTK on GitHub
- headroom on GitHub
We’ll re-measure in a month. Follow @quickpromptco on X for the update.
