Claude Code's background-agent labels cost us 0.1%, or 19% with telemetry off
A busy background agent in Claude Code gets a new status label about every 30 seconds. On our account those labels were nearly free; with telemetry off, each one re-read the agent's whole context on Opus 5.5, so if you run that way, switch them off.
The 30-second version
On Claude Code 2.1.318, our background agents’ status labels cost almost nothing, until we turned telemetry off.
- With default settings: about $0.0002 a label. Our account got a mode that sends Haiku 5.5 a request of under 1,200 tokens; the labels were 0.1 to 0.2% of our sessions’ cost.
- Telemetry off: the agent’s whole context, every time. With
DISABLE_TELEMETRY=1, seven labels re-sent a 166K-token agent’s context to Opus 5.5: $0.34, 19% of the session’s cost. - To switch labels off, set
CLAUDE_CODE_DISABLE_AGENT_PROGRESS_SUMMARIES=1. It isn’t documented yet, but with it we saw no label requests. - Check your mode with
--debug-file. “Asking claude-haiku” in the log is the cheap mode; “Forking for summary” is the expensive one.
What changed since the 16% report
On 29 October, a gist that reached the Hacker News front page put these labels at 16.4% of one team’s Claude Code spend: each working background agent sent its whole transcript to its own model every 30 seconds, for a three-to-five-word label. A Claude Code engineer at Anthropic replied that across users who send telemetry the labels were about 2% of cost, 6% in the terminal; that 2.1.311 fixed labels that missed the prompt cache; and that a cheaper mode sending “short notes to a smaller model” was coming.
That mode is now live on our Max account. Its code is in the 2.1.302, 2.1.310 and 2.1.318 binaries we checked, switched on by a feature flag Claude Code fetches from Anthropic. The off switch is newer: it is in 2.1.318 and not in 2.1.310.
The two modes, measured
Each run was one background agent running sleep 20 && date ten times, about four minutes of work, on Claude Code 2.1.318 with Opus 5.5. In the large runs, the agent first read five files, taking its context to 166K tokens.
| Run | Agent context | Labels | Each label sent | Labels’ cost | Share of session cost |
|---|---|---|---|---|---|
| Default | 39K | 6 | 600–1,000 input tokens to Haiku 5.5 | $0.0010 | 0.2% |
| Default | 166K | 7 | 700–1,200 input tokens to Haiku 5.5 | $0.0009 | 0.1% |
DISABLE_TELEMETRY=1 | 166K | 7 | the agent’s whole context to Opus 5.5 | $0.34 | 19% |
| Labels switched off | 39K | 0 | nothing | $0 | 0% |
In the cheap mode, Claude Code sent notes about the agent’s work rather than its transcript. In the full mode, the six later labels each read about 166K cached tokens and cost about $0.035 at Opus 5.5 list prices; the first cost $0.13. The seven labels added 27% to the agent’s own cost.
Telemetry off brings back the full mode
The cheap mode needs a feature flag that Claude Code fetches from Anthropic. The documentation lists the sessions that skip the fetch: those with DISABLE_TELEMETRY, DO_NOT_TRACK, DISABLE_GROWTHBOOK or CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC set, third-party providers such as Amazon Bedrock and Microsoft Foundry unless the host platform manages the provider, and Claude apps gateway sessions.
We tested two of them. With DISABLE_TELEMETRY=1, and separately with CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1, the labels used the full mode; otherwise identical sessions without them used the cheap one. The 2.1.318 changelog also groups Bedrock, Vertex and Foundry with telemetry-off sessions for these summaries.
To see which mode you’re in, start Claude Code with --debug-file, run a background agent for a minute, and search the log for [AgentSummary]. “Asking claude-haiku-5-5 for summary from … characters of notes” is the cheap mode; “Forking for summary” is the full one.
To stop the labels, set CLAUDE_CODE_DISABLE_AGENT_PROGRESS_SUMMARIES=1. The agent’s row then keeps the description it was launched with. The variable is in the 2.1.318 binary but not yet in the environment-variable docs, so it could change.
How we measured
All on one Mac on 4 November 2026, Claude Code 2.1.318, Opus 5.5 at its default effort, on a Max plan:
- Runs. Each run was a fresh terminal session in its own folder. The main conversation launched one general-purpose background agent and waited for it.
- Costs. Claude Code’s own per-request estimates at list prices (
cost_usd), exported as OpenTelemetry events and grouped byquery_source; labels areagent_summary. The debug log showed each label’s mode. - Code. Strings in the 2.1.318 binary, compared with 2.1.300, 2.1.302 and 2.1.310.
What we didn’t test
- Real workloads. Our agent mostly ran
sleep; shares in real work will differ. - Other accounts and providers. Our account had the cheap mode’s flag; yours may not yet. We couldn’t test Bedrock, Vertex, Foundry or a gateway.
- Agent SDK sessions, or the other variables that skip feature flags.
- Real bills. Costs are list-price estimates, not invoices or plan usage.
Companion reading
- What it costs to come back to an idle Claude Code session — the other background cost: cache rewrites after an hour away.
- What agent traffic actually costs after Opus 5.5 — why cache reads are cheap and writes aren’t.
- Running a fleet of long-lived agents — background agents at scale.
Sources
- flamerix-ai — no-agent-summary gist. Retrieved 4 November 2026.
- Hacker News — “Claude Code regularly sends each background agent’s transcript to its model”, 29 October 2026, including the reply from a Claude Code engineer at Anthropic.
- Anthropic — Claude Code changelog, 2.1.318 entry. Retrieved 4 November 2026.
- Anthropic — Claude Code: Environment variables, “Features that need feature-flag fetching.”
- Anthropic — Claude Code: Monitoring, the
api_requestevent. - Anthropic — Claude Code: Costs, “Background token usage.”
FAQ
How much do Claude Code’s background-agent status labels cost? In our Claude Code 2.1.318 tests with default settings, each label was a request of under 1,200 tokens to Haiku 5.5, about $0.0002, and the labels were 0.1 to 0.2% of the session’s cost. With telemetry off, seven labels re-sent a 166K-token agent’s context to Opus 5.5: $0.34, or 19% of the session’s total.
Why does turning off telemetry make the labels more expensive? In the 2.1.318 code, the cheap mode needs a feature flag that Claude Code fetches from Anthropic, and falls back to the full mode without it. Claude Code skips that fetch when telemetry is off, among other cases listed in its documentation. We tested DISABLE_TELEMETRY=1 and CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1: both used the full mode.
How do I turn off background-agent labels in Claude Code? Set CLAUDE_CODE_DISABLE_AGENT_PROGRESS_SUMMARIES=1. It is in the Claude Code 2.1.318 binary but not yet in the documentation; with it set, our test made no label requests, and the agent kept the description it was launched with.
How can I tell which label mode my Claude Code uses? Start Claude Code with --debug-file, run a background agent for a minute, and search the log for AgentSummary. “Asking claude-haiku-5-5 for summary from … characters of notes” is the cheap mode; “Forking for summary” is the full one.
Was this helpful?