SMERESKI
  1. PROJECTS
  2. SKILLS
  3. RESUME
  4. BLOG
  5. GAMES
  6. CONTACT

POST · 2026-08-19

2026-08-19 · 5 MIN READ

Where the tokens go

The plugin's benchmark was honest. It still lost me a thousand dollars. The bill was never about output.

aiinfrastructureprocess
AI narration — synthetic voice (Kokoro), not a human recordingAI-assisted text — drafted with Claude, edited and approved by a human
AI narration — synthetic voice (Kokoro), not a human recording · listen, or click any word to play from there

Halfway through this audit I discovered I was running the same cost-saving plugin twice two live installations, each injecting its instructions into every prompt I sent. I had not noticed. Nobody notices. That is the real problem with token costs on coding agents: the spending happens in a layer nobody reads, and the tools that promise to fix it aim at the layer everybody reads.

It started with a post on Code Pointer claiming that the popular token-saver tools rtk, headroom, caveman save about 3.7 percent combined on a real bill, not the 60 to 90 their marketing implies. A strong claim, but a checkable one, because coding agents keep receipts. Every response in the transcript carries the exact token counts the API billed, split four ways: fresh input, output, cache writes, cache reads. So I priced eight weeks of my own traffic. 2,671 sessions. 22.8 billion tokens.

At list rates that traffic is worth $19,745 an accounting unit, not an invoice, since I am on a subscription. The ratios are what matter, and the ratios are lopsided.

Eight weeks of spend, by token type
Cache reads$12,242 · 62.0%
Cache writes$5,706 · 28.9%
Model output$1,501 · 7.6%
Fresh input$296 · 1.5%

List-rate equivalent of 22.8B tokens across 2,671 sessions, priced from per-request usage records. 97.1% of raw tokens were cache reads.

One number runs the show. Sixty-two cents of every dollar went to cache reads the agent re-reading its own setup rather than my code, my questions, or the model's answers. Every request re-sends the entire static prefix: the system prompt, tool definitions for every connected MCP server (one server on my machine ships about three hundred of them), plugin instructions, hooks, rules files. Caching discounts this re-reading to about a tenth of the normal input rate. The discount is real; the volume swallows it. By raw token count, 97.1 percent of everything I sent was the model re-reading things it had already read.

That one chart reframes the whole category. A tool that compresses the model's answers is competing for the 7.6 percent slice. A tool that compresses terminal output is competing for a fraction of the 1.5 percent slice. And the 62 percent slice does not care about either of them. It scales with exactly one thing: the size of what you send on every request.

Still, I wanted to be fair to the biggest of the three claims. Caveman is a plugin that instructs the model to answer in compressed, telegraphic prose, and it publishes a benchmark: answers about 53 percent shorter. I ran its own ten evaluation prompts live against the API, three ways no instruction, a terse control whose entire system prompt is 'Answer concisely.', and the terse control plus the plugin's full style in a clean-room config so nothing else touched the measurement.

Median output length by instruction, relative to none
Mid-tier · no instruction100 · reference
Mid-tier · “Answer concisely.”138 · +38%
Mid-tier · concise + plugin style68 · −51% vs terse
Small · no instruction100 · reference
Small · “Answer concisely.”118 · +18%
Small · concise + plugin style100 · ≈ no effect

Live three-arm A/B on the plugin's own ten evaluation prompts, real API token counts, clean-room config. The plugin's published 53% reproduced at 51%.

The vendor's number is honest. On a mid-tier model the style cut output 51 percent against the terse control; they claim 53. On a small model it did nothing at all one model on ten prompts is an observation rather than a law, but it suggests that following a compression style is itself work a model has to be big enough to do. But look at the control arm, because it hides the strangest result in this audit: telling the model to answer concisely made every answer longer. Thirty-eight percent longer on the mid-tier model. The instruction primes the model to perform brevity to add structure and commentary about being brief instead of being brief. I have no explanation I trust, which is itself the lesson: cost intuitions about prompts are unreliable, including the obvious ones.

Now run the honest 51 percent through the actual bill. Output was $1,501 of the $19,745. Most of that is code, diffs, and tool calls, which a compressor must not touch. The compressible part conversational prose was 31.3 percent of output tokens, about $470. Cut it in half and you have saved $240 in eight weeks. One point two percent of the bill, with the tool performing exactly as advertised. That is the ceiling.

And the ceiling only bounds the upside. The plugin works by injecting its style instructions through hooks a block when a session starts, a reminder on every prompt and this is where I found my two parallel installations, faithfully injecting everything twice. Injected tokens are billed twice in a deeper sense too: once when written, then again on every later turn of the session, because they become part of the context the model re-reads. My transcripts held 16,180 injections carrying about four million tokens of instructions. Writing those tokens cost $27. The re-reads are the expensive part: each injection sits in the context for the rest of its session, so I charged every injection its own token count times the turns that followed it, at the cache-read rate $1,270. The ledger comes to $1,297 against a ceiling of $240.

The plugin's eight-week ledger
Best-case saving (ceiling)$240
Overhead · injections written$27
Overhead · re-read on later turns$1,270

16,180 hook injections, ≈4.06M tokens. Net effect: −$1,057 — the overhead is 5× the ceiling.

Minus $1,057, net. Even a clean single install would have carried about half the overhead still more than double what the tool could ever save. Injection costs compound. Savings do not.

The double install raises a fair objection: if my environment was misconfigured, why trust the rest of the data? Fair question, measurable answer. The plugin came out on July 24, which handed me four clean weeks 6.3 billion tokens with zero injections, confirmed by scanning every transcript for the hook's marker to re-run the headline measurement on.

Replication — spend share, plugin era vs clean month
Cache reads · with plugin62.0%
Cache reads · clean month68.7%
Cache writes · with plugin28.9%
Cache writes · clean month23.9%
Output · with plugin7.6%
Output · clean month7.4%
Fresh input · with plugin1.5%
Fresh input · clean month<0.1%

May 28 – Jul 24 (plugin installed, 22.8B tokens) vs Jul 25 – Aug 19 (plugin removed, 6.3B tokens, zero hook injections). Same transcripts-and-list-rates method.

The clean month tells the same story, slightly louder. Cache reads took a larger share of the bill, not a smaller one. Output stayed under eight cents of every dollar. The injections were gone and the shape did not move, because the composition was never about the plugin it is simply what an agentic environment looks like.

The other two tools never had a chance, through no fault of their own. rtk compresses verbose terminal output before it reaches the model; headroom compresses JSON-shaped context. I measured how much of my traffic they could even see.

Share of tool-result traffic each tool can address
Terminal output (rtk)0.6%
JSON context (headroom)0.4%
MCP responses0.3%
Everything else98.7%

182.6M characters of tool results in the corpus. The addressable surface for terminal and JSON compression is under 1%.

Modern coding agents read files with built-in read and search tools, not shell pipelines. The traffic these tools were built to shrink has mostly left the building.

So the 3.7 percent post was right, and in my environment it was generous. The real lever was sitting in the settings file the whole time: disconnect the MCP servers a project does not use, prune the plugins, audit the hooks duplicates are silent and compact long sessions, because a session re-reads its whole history every turn. A token removed from the static prefix is saved on every request of every session. It is the only compounding in this story that works in your favor.

REFERENCES5 LINKS
  • 01
    Cutting LLM token costs with rtk — Code Pointer

    The post that prompted the audit: 3.7 percent combined, measured on a real bill.

    https://codepointer.substack.com/p/cutting-llm-token-costs-with-rtk

  • 02
    Anthropic — prompt caching

    The pricing mechanics that make cache reads 62 percent of dollars and 97 percent of tokens.

    https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching

  • 03
    caveman on GitHub

    The output-style plugin measured here. Its benchmark reproduced within two points.

    https://github.com/JuliusBrussee/caveman

  • 04
    rtk on GitHub

    Terminal-output compression — 0.6 percent of my tool-result traffic was addressable.

    https://github.com/rtk-ai/rtk

  • 05
    headroom on GitHub

    Context/JSON compression — 0.4 percent addressable in this corpus.

    https://github.com/chopratejas/headroom