Claude Code burned a sixth of one company's budget re-describing its own agents
A gist claims Claude Code re-sends every background agent's full transcript every 30 seconds for a three-word status line, at 16.4% of one firm's spend.

On 29 October, Flamerix AI published a gist claiming Claude Code spends about a sixth of its estimated API budget re-describing background agents to themselves: every 30 seconds it ships each working agent's entire transcript to that agent's own model and asks for three to five words that only fill a status line. An Anthropic engineer confirmed the mechanism on Hacker News the same day.
What the numbers actually measure
Flamerix found it in Claude Code's OpenTelemetry export, grouping claude_code.api_request events by query_source. In the week before its workaround, agent_summary requests were 16.4% of its estimated spend, against 15.7% for the main conversation, and 19.7% of all API requests. Ninety-six per cent ran on Opus, at roughly 9,000 input tokens per output token. It has been on by default since 2.1.232 in August 2026, with no supported setting that disables it while keeping background agents.
Spend is Claude Code's own per-request estimate, not an invoice; on a subscription the loss is rate-limit headroom. And 16.4% is one company's week. The gist says issue 86879 collects four independent measurements of 18 to 26 per cent.
The argument is about price, not existence
The thread split along that seam. edwinarbus, who works on Claude Code, agreed the mechanism was right but scoped it: only agents that are actively working get a summary call, idle ones do not, so 16.4% "doesn't seem like a typical session". He put the fleet-wide figure near 2% of cost at list prices.
Others attacked the unit economics. HeavenFox asked: "wouldn't almost all of the tokens be cache hit, and therefore fairly cheap?" jakozaur tested it, called it real but mostly cached reads, and measured about 8% in his own sessions. creamyhorror objected that the gist's 15 to 20 per cent range never says whose tokens it counts.
A fix that pattern-matches a compiled binary
Flamerix's workaround is roughly 70 lines of JavaScript loaded through Bun's preload flag. It wraps only the global setTimeout; when a callback's source text contains a summariser anchor, it returns an inert handle set to 2^31-1 milliseconds, the largest delay Node and Bun honour; anything larger fires immediately. Other timers pass through untouched.
The authors counted summary forks falling to zero on Linux across Claude Code 2.1.257 to 2.1.312. macOS works for others but was not measured, and an update can silently undo the hook, since it depends on strings surviving inside precompiled bytecode.
Nobody has put it in writing
Anthropic's engineer said the company had shipped a fix for summaries that miss the prompt cache and was building a cheaper mode that sends notes to a smaller model. That is a comment, not documentation. As of publication there is no Anthropic statement or changelog entry, and no confirmation that the timer has been removed.

