I disagree because with their subscriptions and people using Opus I doubt the majority of users are hitting their limits often so this would just burn compute on their end
That only applies to subscriptions. Enterprise customers pay API rates and therefore per-token. Being wasteful would directly increase Anthropic's profit, assuming they're not selling them at a loss.
If they are literally sending the entire transcript and asking for a summary, wouldn't almost all of the tokens be cache hit, and therefore fairly cheap?
They enabled it for everyone in a recent Claude Code update, but you can turn it off (I did).
I am definitely getting frustrated with a lot of the changes they keep making in Claude Code. It's one thing to find settings have changed during your next interactive session, it's another when it changes how overnight unattended sessions behave. I really should be spending more time building my own harness again.
Check your idleCompaction line in /config to make sure it's off -- several times they've toggled new features on by default for me. This one isn't in the VS Code extension so I don't know if it shipped default-on.
Claude lovers are either early adopters not well informed/lazy to experiment ("why, it's still the best, right?"), or millionaires or devs with unlimited budgets, who often ask on HN "why would you use anything else than Opus on xhigh".
I was handed 150$/mo budget and no subs, and while it was frustrating at first, with better tooling, context management and especially OAI models it's a breeze now and not even using 70% mostly while achieving a lot in a small team.
I tested it, and it looks real but more nuanced. It is just for subagents; workflows do not seem affected. I guess many new users prefer workflows (ultracode), so the impact is less than the report suggested.
Moreover it is mostly cached reads, so subagents with short context cost little, while long-context ones cost much more.
In my Claude Code sessions, it looks more like ~8% at most.
About 6 months ago I embarked upon building a little mac native app to monitor all my claude code sessions and alert me/surface sessions that were going to go stale so I could go ping them if I wanted to keep things cached. I named it CREAM.
That eventually grew into what is now my 'software factory' and I've realized, eventually, it's still C.R.E.A.M. (I named it flower) but it's _context_ rules everything around me.
Opus 5.5 burns tokens like there's no tomorrow! Meanwhile, GPT 6.1 Sol on Extra High feels unlimited! Opus (on Max 20x) munches my weekly quota in a day, or two at best. Meanwhile, working with Codex and reviewing with a $50/mo Muse Code Wonder Full seems like it can go own forever (on the same codebase, the same skills, etc.) I am highly disappointed by the overly glorified Opus and Claude Code in general - there's no commit in which Codex or Muse Code or GitHub Pilot don't find critical flaws! I have long sessions of Claude Code having over 100 review cycles of Codex and still not addressing all the valid issues that Codex finds in Claude Code's work! Claude Code keeps injecting British English into prose and identifiers with nothing being able to stop it! Of course, there are almost never resets for Claude Code either - they would rather me focus on Codex being my primary and Claude Code being the reviewer (it works much better than in reverse). Anyway, enver trust a single model! Always review with another frontier one!
Background agents only have 5 minutes' cache TTL, but I'm guessing this doesn't help extend it (not that it would be too useful anyway, especially considering the extra burn).
Also, the claim "15-20% of your tokens" seems unclear; of all tokens, or of tokens spent on background agents? Poorly edited AI writing strikes again!
I now run Jev in front of claude code and the results so far have been very good. It picks Haiku far far more often than I would think to use it and it works very well.
Because the result is the same. We did split test and when something is wrong we retry with fable or opus to see what it would do. But I did say seem; I am not a researcher, just someone running a business and it seems faster, cheaper and with the same outcomes so far. Subscriptions last much longer now for no visible degradation yet.
i think its not the status line at the bottom of the terminal, but actually the few words summary claude generates for each background agents in the agents panel. so if we mostly run one plain session we wont pay for this? i do run claude code with disableAgentView on in my settings. does anyone know if that helps to stop the summary calls or just hides the panel?
It's how they finally become profitable: You burn through your token quotas so you have to buy them per request now. Oh, and also Enterprise seats are selling like bubble gum.
Claude Code's (CC) status summaries used 16.4% of our token spend in a week! We have investigated a source of overhead in CC: it's an agent_summary query that calls your current session/subagent model approximately every 30 seconds for a few words in CC’s status line.
Our DRIM system flagged the anomaly in CC's OTEL traces. Grouping requests by query_source showed that over one measured week agent_summary accounted for: 16.4% of total estimated spend (versus 15.7% for the main conversation), and 19.7% of all API requests with approximately 9,000 input tokens per output token.
Most requests reuse the prompt cache, but repeatedly reading a large cached transcript still has a cost. Longer contexts and more concurrent agents increase the overhead.
We couldn’t find a supported setting that disables only these summaries while preserving background agents and forks. Disabling those capabilities also stops the summaries, but changes the workflow we want to keep.
Our workaround is a small Bun preload that intercepts the summary timer without modifying the CC binary. It identifies the timer callback by source-text anchors and leaves other timers alone.
In controlled tests on Linux (from ver 2.1.257 to 2.1.312), the same workload produced five summary calls without the hook and zero with suppression enabled. On our current production setup, agent_summary calls remained at zero with the hook enabled. Background agents and forks continued running. The only visible change was that their generated status summaries stopped updating.
The workaround depends on implementation details. An update can break the callback matching and silently restore the requests. macOS and Windows are untested. If someone could help us with testing there, it would be much appreciated.
I work on Claude Code. You've got the basic mechanism right, but to be super clear, this only applies to background agents that are actively working. They get a summary call about every 30 seconds, and idle background agents don't. These summaries are used for both you and Claude Code to track what each background agent is working on, without reading transcripts.
Your 16.4% sounds like it was for a team running mostly background agents, and doesn't seem like a typical session. (Feel free to send me the session ID at edwinarbus@anthropic.com and we can dig further.)
Last week, across Claude Code users who send us telemetry, agent_summary was about 2% of cost at API list prices and just under 4% of requests. In the terminal, where nearly all of these calls happen, it was about 6% of cost.
That said, we agree that's a lot for a status line. We just rolled out a fix for the most expensive case, summaries that miss the prompt cache (2.1.311+), and right now we're working on a much cheaper mode that sends short notes to a smaller model instead of the full transcript.
That helps put the 16 percent in context. I think it would be better to add a real setting to turn agent summaries off... in the current binary, both the sdk option and the env var can only switch them on
You're telling us there are frequent scheduled summary calls to agents that burns tokens like this is common knowledge. Is it? And is this documented somewhere?
Perhaps this is terminology confusion, but the official docs explicitly state that status lines "[Run] locally and [do] not consume API tokens." [0] _If_ that documentation is talking about the same thing that TFA is talking about, then I'd say that this is very much not common knowledge.
I also wonder if the fix that they "just rolled out" is actually activating the 'short' mode that TFA mentions...
With the ever-increasing amount of paper cuts one gets from using their products, I wonder how long this will really go on?
After all, for most of the work people seem to be doing daily, Claude kinda isn't.. necessary?
In fact, for a lot of tasks, not using it leads to better results in my experience.
There are things that only it can reasonably accomplish, but if every interaction with it hurts you in various ways (like this one), then, eventually, I do not see that working out for them anymore.
But perhaps this is just a way to push the numbers a bit further up for the IPO?
That would make a lot of sense to me.
i use opus 5.5 to delegate to sol and luna via codex-thread-bridge (https://github.com/saidelike/codex-thread-bridge). these days i’m experimenting with opus using luna as “hands” and it’s largely resolved the tokens per output issue with my Anthropic subscription.
¯\_(ツ)_/¯ it’s not efficient but yeah it’s the best
https://www.reddit.com/r/ClaudeCode/comments/1xhqvzn/opus_55...
You can remove it with a simple plugin https://github.com/AlexErrant/claude-code-no-email/blob/main...
Time to start questioning the motivations of model providers shipping their own harnesses.
If it happens 10 times you have already accepted the same cost as the entire session fresh prefill.
People on HN are either too rich or wayyy too rich
Do you disagree with the numbers and conclusion in the -pretty obviously bot-generated- Fine Article?
Looks like what I remembered was a bug.
I'm on pro. Two days ago, 100% 5 hour was using 25% of my weekly. Today, 100% 5 hour is like 13% so something was fixed.
They’ve got that IPO coming up so they’re turning up the fraud in preparation.
I am definitely getting frustrated with a lot of the changes they keep making in Claude Code. It's one thing to find settings have changed during your next interactive session, it's another when it changes how overnight unattended sessions behave. I really should be spending more time building my own harness again.
I was handed 150$/mo budget and no subs, and while it was frustrating at first, with better tooling, context management and especially OAI models it's a breeze now and not even using 70% mostly while achieving a lot in a small team.
Having limited resources teaches you a lot.
Absolutely.
Moreover it is mostly cached reads, so subagents with short context cost little, while long-context ones cost much more.
In my Claude Code sessions, it looks more like ~8% at most.
Cache rules everything around me.
That eventually grew into what is now my 'software factory' and I've realized, eventually, it's still C.R.E.A.M. (I named it flower) but it's _context_ rules everything around me.
Also, the claim "15-20% of your tokens" seems unclear; of all tokens, or of tokens spent on background agents? Poorly edited AI writing strikes again!
Similarly to “one language is best,” saying “one harness is best” is shortsighted in the best possible case.
That being said, Claude Code is bloatware.
It's the same addiction script again and again.
Our DRIM system flagged the anomaly in CC's OTEL traces. Grouping requests by query_source showed that over one measured week agent_summary accounted for: 16.4% of total estimated spend (versus 15.7% for the main conversation), and 19.7% of all API requests with approximately 9,000 input tokens per output token.
Most requests reuse the prompt cache, but repeatedly reading a large cached transcript still has a cost. Longer contexts and more concurrent agents increase the overhead.
We couldn’t find a supported setting that disables only these summaries while preserving background agents and forks. Disabling those capabilities also stops the summaries, but changes the workflow we want to keep.
Our workaround is a small Bun preload that intercepts the summary timer without modifying the CC binary. It identifies the timer callback by source-text anchors and leaves other timers alone.
In controlled tests on Linux (from ver 2.1.257 to 2.1.312), the same workload produced five summary calls without the hook and zero with suppression enabled. On our current production setup, agent_summary calls remained at zero with the hook enabled. Background agents and forks continued running. The only visible change was that their generated status summaries stopped updating.
The workaround depends on implementation details. An update can break the callback matching and silently restore the requests. macOS and Windows are untested. If someone could help us with testing there, it would be much appreciated.
If you want to try it - the script, full technical explanation, test results, and installation instructions are on GitHub: https://gist.github.com/flamerix-ai/c3905705cc4205e5de3011fa...
Your 16.4% sounds like it was for a team running mostly background agents, and doesn't seem like a typical session. (Feel free to send me the session ID at edwinarbus@anthropic.com and we can dig further.)
Last week, across Claude Code users who send us telemetry, agent_summary was about 2% of cost at API list prices and just under 4% of requests. In the terminal, where nearly all of these calls happen, it was about 6% of cost.
That said, we agree that's a lot for a status line. We just rolled out a fix for the most expensive case, summaries that miss the prompt cache (2.1.311+), and right now we're working on a much cheaper mode that sends short notes to a smaller model instead of the full transcript.
Are you aware of any updates on the SDK using more session usage vs claude code (https://github.com/anthropics/claude-code/issues/97074)?
I also wonder if the fix that they "just rolled out" is actually activating the 'short' mode that TFA mentions...
[0] <https://code.claude.com/docs/en/statusline#how-status-lines-...>
After all, for most of the work people seem to be doing daily, Claude kinda isn't.. necessary? In fact, for a lot of tasks, not using it leads to better results in my experience.
There are things that only it can reasonably accomplish, but if every interaction with it hurts you in various ways (like this one), then, eventually, I do not see that working out for them anymore.
But perhaps this is just a way to push the numbers a bit further up for the IPO? That would make a lot of sense to me.
¯\_(ツ)_/¯ it’s not efficient but yeah it’s the best