Claude Code, a command-line tool for interacting with Anthropic's models, includes a background feature that provides real-time status updates for subagents. Every 30 seconds, the tool sends an agent's entire conversation transcript to a model (typically Claude 3 Opus) to generate a brief 3-5 word summary. This summary is used exclusively to update the status line in the agents panel and does not affect the actual conversation or the model's primary tasks. However, because these calls include the full transcript and tool schemas, they can account for a significant portion of a user's token consumption—reaching as high as 16.4% to 26% of total spend in subagent-heavy sessions.

A graphic illustrating how Claude Code consumes tokens on status lines and a Bun preload solution.
A community-shared graphic explaining the token consumption of agent summaries and the proposed Bun preload workaround.gist.github.com

The image illustrates the core problem of high token costs for cosmetic status updates and the community-developed solution.

While the feature provides a visual UX for users watching the terminal, it is often unnecessary for automated scripts, CI/CD pipelines, or unattended sessions. Currently, there is no official configuration setting to disable these specific summary calls without also disabling background agents entirely. This discrepancy was identified through OpenTelemetry exports, which revealed that the `agent_summary` query source was sometimes costing more than the main conversation itself. Because these calls are excluded from standard session logs, the cost is often invisible to users unless they monitor raw telemetry.

A GitHub issue page requesting a way to disable the agent_summary timer in Claude Code.
A GitHub issue from the Claude Code repository requesting an official configuration to disable the agent_summary timer.github.com

This image shows the community's request for an official setting to manage the background summary calls.

To address this, a community-developed Bun preload script (`no-agent-summary.js`) has been shared to intercept and neutralize the summary timers. The script works by wrapping the `setTimeout` and `setInterval` functions; when it detects a callback containing the specific internal anchor for the summary timer, it returns an inert handle that never fires. This allows the tool to continue running subagents normally while skipping the expensive summary requests. Users can apply this by setting the `BUN_OPTIONS` environment variable to preload the script. While effective, the fix is a workaround; because the tool is updated regularly, users must verify that the internal string anchors remain unchanged in newer versions of the binary.