A label that re-reads everything
The feature has a modest job. When several background agents are running, the agents panel shows a short line under each one saying what it is doing, so a user can follow the work without opening transcripts. Claude Code generates that line by asking the agent's own model to describe its most recent action in three to five words.
The cost sits in how often the question is asked and how much is attached to it. The timer fires about every 30 seconds for each actively working background agent, and each call carries the agent's entire transcript. A long-running agent with a large context therefore pays near-full-context prices, at prompt-cache rates for most calls, to produce a handful of words. Flamerix's ratio makes the shape plain: roughly 9,000 input tokens for every output token, with 96% of the spend on Opus.
Two details in the gist explain why the bill concentrates where it does. About 98% of these calls re-read the transcript from the prompt cache, which keeps most of them cheap per call. The roughly 2% that miss the cache carry, by the gist's account, over a third of the total cost. Anthropic says the cache-miss case has been fixed in version 2.1.311 and later. That addresses the most expensive case described in the gist, but does not by itself eliminate the recurring summary calls or establish how much overhead remains for a particular workload.
One naming trap is worth clearing up, because the gist's headline invites it. Anthropic's documented terminal status line, the bar a user can customise, runs locally and uses no API tokens. The spend here belongs to a different feature, the per-agent summary in the agents panel, identified in telemetry as query_source agent_summary. The gist adds that Anthropic's documentation describes Agent View's row summaries as a Haiku-class model refreshing every few minutes. Its own measurements show the agent's own model, usually Opus, on a roughly 30-second timer.
Two numbers, and why both can be true
Flamerix's 16.4% and Anthropic's 2% are not measuring the same population, and neither side disputes the other's arithmetic outright.
Anthropic's reply narrows the claim in two useful ways. First, only background agents that are actively working get a summary call; an idle agent gets none. Second, the 16.4% week, in its words, sounds like a team running mostly background agents, and does not seem like a typical session. Across users who send telemetry, it puts agent_summary at about 2% of cost at API list prices last week and just under 4% of requests, rising to about 6% of cost in the terminal, where nearly all of these calls happen.
That leaves a straightforward reading. The overhead scales with the number of background agents, how long they run, and how large their transcripts grow. A single foreground session sits at the low end of the range, a fleet of long-running agents at the high end, and the four independent measurements the gist cites, 18–26%, come from users heavy enough to go looking. Anthropic also concedes the underlying point in plain terms: that is a lot for a status line.
How to check your own usage
Start with the version. The cache-miss fix Anthropic describes is in 2.1.311 and later, and the gist's tested range runs to 2.1.312, so updating is the first step either way.
Then measure, because the session logs will not help. These requests are not written to the logs on disk, so transcript-based cost tools miss them entirely. The route Flamerix used is the OpenTelemetry export: group the claude_code.api_request events by query_source and compare the agent_summary share of cost and of requests against your main conversation. If background agents are a small part of your work, expect a small number, and stop there.
If the share is large, the gist's workaround is a Bun preload of about 80 lines, published under the MIT license. It loads through BUN_OPTIONS=--preload, leaves the Claude Code binary unmodified, and intercepts the summary timer by matching the callback's source text, returning an inert handle instead of arming it. In the gist author's Linux tests, the same workload produced five summary calls without the hook and none with it enabled, across tested versions 2.1.257 to 2.1.312. That demonstrates suppression in the tested setup, not compatibility with future releases or untested operating systems.
Read its limits before using it. The matching depends on implementation details, so an update can break it and the summaries return silently; the author tells users to re-verify after every update. The agents panel stops updating, and SDK task_progress carries no summary. macOS and Windows are untested. And the gist itself flags that changing a client's runtime behaviour may conflict with the terms of the service, and leaves that check to the user.
What happens next is Anthropic's call
The gist found no documented user-facing setting that disables agent summaries while leaving background agents running. It reports that the interval is controlled by a server-side flag, while the available environment-variable workarounds disable broader background-agent or subagent functionality. Anthropic has not described a supported, user-facing switch for summaries alone in the materials reviewed here. The gist puts the server-set interval between 30 and 240 seconds. The blunt options the gist names, CLAUDE_CODE_FORK_SUBAGENT=0 and CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1, stop the summaries only by disabling fork subagents or background tasks altogether.
Anthropic has shipped the cache-miss fix in version 2.1.311 and later. That is separate from the cheaper "short" mode described in the gist. According to Flamerix, version 2.1.310 already contains an implementation that sends roughly 2,000 tokens of notes instead of the full transcript, but the mode is disabled by default and can be enabled only through server-side flags. Anthropic's reply describes a cheaper mode as in progress; the available evidence does not establish that it is generally enabled for users.
Until one of those changes becomes the default, the practical position for a heavy background-agent user is unglamorous: run 2.1.311 or later, read your own query_source split once, and decide from that number whether an unofficial hook is justified. Everyone else can file this under a cost they now know exists, which is more than the documentation reviewed for this article made clear before October 29.
Sources
- [1] Flamerix AI, "Claude Code burns ~15-20% of your tokens on a 3-word status line: a Bun preload that turns agent_summary off", GitHub gist (October 29, 2026; read in full October 29, 2026)Read source
- [2] Hacker News discussion of the gist, including the reply by edwinarbus of Anthropic's Claude Code team (October 29, 2026; read October 29, 2026)Read source
- [3] GitHub issue #86879 on the Claude Code repository, collecting independent agent_summary measurements, as cited in the gist (not read separately this run; the 18–26% range is the gist's summary of it)