Claude Code 2.1.323 removed the subagentStatusLine setting. The official changelog line reads: "Removed the subagentStatusLine setting: subagent rows always use the default look, and settings files that still hold the key load as before." A GitHub issue opened the same morning says that took away the only place where users could see, for each running subagent, its context use, spend, model and reasoning effort. This post covers what is confirmed, what is one user's claim, and what you can do today.
This is a developer-experience story, not a security one. But if you run several background agents, it changes how you watch your bill. Our guide to Claude Code subagents and multi-agent workflows explains why that visibility matters.
TL;DR: the removal in one table #
| Question | Answer | Source |
|---|---|---|
| What was removed? | The subagentStatusLine setting |
Claude Code changelog, 2.1.323 |
| What happens to old settings? | The key still loads; it no longer does anything | Changelog |
| Was there a replacement? | None announced in the changelog | Changelog, GitHub issue #109446 |
| Was there a startup warning? | The reporter says no | Issue #109446 |
| Which version still works? | 2.1.322, per the reporter | Issue #109446 |
| Has Anthropic responded? | Not in the issue at the time of writing | Issue #109446 |
| Is it a security problem? | No, a removed display hook | explainx.ai assessment |
What the changelog says #
The 2.1.323 release is large. Its notes include an experimental opt-in "Code Mode" in which Claude writes JavaScript to call its tools, plugin version ranges through engines["claude-code"], and type checking of plugin hooks in claude plugin validate. In the middle of the list sits the removal line quoted above.
Two other lines in the same release are worth reading next to it. One deprecates a plugin's agent setting: it "still applies, and now warns at startup, in claude plugin list and in claude plugin validate." So Anthropic did add a startup warning for that deprecation in the same version. The removed subagentStatusLine gets no equivalent warning in the changelog, and the reporter says none appears.
The changelog also shows the setting was still being invested in. Earlier entries in the same file:
- "Added reasoning effort to the
subagentStatusLinepayload, so custom agent rows can render model and effort." - "Added
agentTypeto thesubagentStatusLinepayload, so scripts can tell custom subagent types apart." - "Fixed
${CLAUDE_PLUGIN_ROOT}not being substituted in a plugin-providedsubagentStatusLinecommand, which can now reference the plugin's own scripts."
Anyone who read those entries had reason to think the hook was a supported, growing surface. That is the core of the complaint.
What users lost #
The issue, titled as a regression, was opened on November 13, 2026. According to the reporter, subagentStatusLine was a command-based setting. Claude Code ran a user script for each running subagent and drew the script's output as that agent's row in the agent panel. The reporter lists what their script showed per agent:
- live context use against that agent's own window;
- tokens and dollars spent so far;
- the model and the reasoning effort;
- status, age and prompt-cache state.
They paste a row as it looked on 2.1.322. It shows an agent at 8 percent of a 1.0M window, about $2.06 spent, running Opus at medium effort for 5 minutes 40 seconds, with a cache hit rate of 98 percent. After 2.1.323, the reporter says the same row reads only the agent name and the current tool, for example Running grep.
A second commenter, who says they use the same setting, describes a similar script. Theirs showed input, output and cache tokens, an approximate cost, each agent's share of the five-hour and seven-day limits, a nested-agent tree, and which external CLI an agent was driving. They say none of it is visible after the update.
These are user reports. We did not run a multi-agent session on both versions ourselves, so treat the exact before-and-after rows as the reporters' evidence. The changelog line itself, which confirms the removal, is Anthropic's own.
Observability dashboard eye watching rows of agent usage bars, the kind of per-agent view subagentStatusLine drew in Claude Code
Why the loss matters if you run many agents #
A single interactive session rarely needs a per-agent dashboard. A session with several background agents is different. The default row does not tell you which agent is about to fill its context window, which one runs on the expensive model, or which one silently re-pays for an expired prompt cache.
Our Claude Code token efficiency guide covers the cache mechanics. In short, an agent that waits past the cache window pays full price to re-read its context. Our analysis of whether subagents use more tokens shows how quickly that adds up in a multi-agent run. A row that shows cache state and spend per agent is the cheapest way to catch it.
It also connects to an earlier thread we covered. A claimed-versus-verified look at Claude Code's agent summary status line found that background agents generate their own short status text, and that its token cost depends on how many subagents you run. Users who want to measure that kind of overhead need per-agent numbers, which is what the removed hook gave them.
Why the "mods" answer does not fill the gap #
The 2.1.323 notes mention mods, an extension surface with render sites. The issue argues they do not cover this case. The reporter lists the render sites in 2.1.323: AskUserQuestion, UserMessage, AssistantMessage, ToolUse, ToolResult, ToolGroup, ToolProgress, CommandOutput, Spinner, TurnDuration, InfoNotice, SessionMode, PromptHint, AbovePrompt, Pane and Placed. They say none is an agent-panel row, so no mod can draw what the setting drew. They point to an earlier request, issue 105919 from October 29, that asked for exactly that render site and, they say, had no answer.
The second commenter describes a partial workaround. An AbovePrompt band fed by the agent list works, but it shows every agent in a separate band rather than inside the panel. The frontmatter color option, they add, does not reach the panel rows.
Our explainer on Claude Code hooks covers the hook system that remains. The status-line hook was a display surface, not an event hook, so those guides do not replace it.
The documentation question #
The issue says the docs still present the setting as live, pointing to the status line and settings pages on code.claude.com. When we fetched both pages on November 13, 2026, neither contained the string subagentStatusLine. The reporter may have seen a cached or older version, or the docs were updated after the report. We cannot tell which. What we can say is that the changelog, the primary source, is unambiguous about the removal, and that the current docs no longer describe the setting.
That mismatch is itself part of the lesson. When a setting disappears, the docs, the settings schema and the changelog can update at different times. The reporter quotes the schema as calling the key "Deprecated: no longer has any effect." That wording is a user quotation we have not independently checked.
What developers are saying #
The Hacker News thread had 21 points and a handful of comments when we read it. It was small, and the tone was critical:
-
One commenter, matt3210 , said this kind of change without notice has become normal for Claude Code and a similar tool, "in the name of shipping fast."
-
Another, mrd3v0 , tied it to a broader worry that the tool hides more of its process, and said a "Projects" feature wastes tokens while showing little.
-
A third, borzi , replied with a joke about vibe coding. We do not count that as evidence. These are opinions, not tests. No commenter reported an Anthropic explanation. On the issue itself, the reporter and one commenter both say they built real-time observability on the setting and address a maintainer directly. As of this writing we found no maintainer reply there.
What you can do today #
- Check your version. Run
claude --version. If you are on 2.1.323 or later and your agent panel went bare, this is why. - Pin 2.1.322 if you depend on the rows. The reporter says 2.1.322 still runs the command. Pinning costs you the other 2.1.323 changes, including usage-credit menus and the VS Code fixes. Weigh that.
- Keep your script. The key still loads, so leaving it in settings is harmless. If Anthropic restores the hook, nothing breaks.
- Use the remaining surfaces for cost. The main status line, which the changelog does not mention removing, and your provider's billing dashboard give session-level numbers rather than per-agent ones. See ourClaude Code commands reference for what each command reports.
- Reduce what you cannot watch. Cap how many background agents you run, and set each agent's model and effort explicitly in its definition, so the expensive choices are not hidden. Oursteering guide for CLAUDE.md, skills, hooks, subagents and rules shows where to set them.
- Add your voice with data. If you run a multi-agent workflow, add your concrete use case to the open issue. Specific payload fields you need are more useful to maintainers than general complaints.
What is confirmed, and what is not #
| Item | Status |
|---|---|
| The setting was removed in 2.1.323 | Confirmed by the changelog |
| Old settings keys still load | Confirmed by the changelog |
| No startup warning for this removal | Reported by the issue author; not in the changelog |
| 2.1.322 still runs the command | Reported by the issue author |
| No replacement render site for agent rows | Reported; the 2.1.323 notes list none |
| Why Anthropic removed it | Not stated anywhere we found |
| Whether it returns | Unknown |
The wider pattern for tool builders #
Terminal agents ship fast. Claude Code's changelog adds dozens of lines per release, and a few of them remove things. That is normal for a young tool, but it shifts risk to users who build on small surfaces such as a status-line command. A reasonable habit: treat any hook that is not an event or permission API as best-effort, keep a copy of your script outside the tool's config, and read the changelog for "Removed" and "Deprecated" lines on each upgrade.
For Anthropic, the cheap fix the reporter proposes is a deprecation release that warns at startup and a changelog line that says why. The release did exactly that for the plugin agent setting, so the practice exists in the same version. Whether it extends here is the open question.
Details on this page match the Claude Code changelog and the GitHub issue as of November 13, 2026. Versions, docs and Anthropic's response may change.