Claude Code Background Subagents Use Less of Your Limit: Haiku 5.5 Now Writes the Status Line in 2.1.316 (Upgrade, Check, Configure)

According to Anthropic's @ClaudeDevs, the status line a Claude Code background subagent refreshes every 30 seconds used to re-read the subagent's whole conversation each time. Haiku 5.5 now writes it from short notes, so each refresh takes about 99% less, sessions with background subagents use about 5% less of the limit and get about 6% more prompts. It needs v2.1.316+. This guide covers who gets it, how to upgrade and check your version, a hands-on run of a background subagent on Claude Code 2.1.318 with an API Key, and how to set the subagent model with CLAUDE_CODE_SUBAGENT_MODEL, agent files and /tasks.

9 分钟阅读
Claude Code Background Subagents Use Less of Your Limit: Haiku 5.5 Now Writes the Status Line in 2.1.316 (Upgrade, Check, Configure)

TL;DR

  • According to Anthropic's @ClaudeDevs account (posted November 4, US time): a running background subagent refreshes its status line every 30 seconds, and each refresh used to re-read the subagent's whole conversation. Now Haiku 5.5 writes it from short notes, so each refresh takes about 99% less.
  • According to the follow-up post: the subagent itself keeps its own model; sessions with background subagents used about 5% less of the limit, so the same limit gets about 6% more prompts. It is live for most Pro, Max and Ultra users and everyone on Team and Enterprise, and needs Claude Code v2.1.316 or later.
  • The only thing to do: run claude --version and upgrade if you are below 2.1.316. According to AlphaSignal, no configuration change is needed.
  • We tested on November 5 with an aicodewith API Key on Claude Code 2.1.318. The background subagent's status line did change about every 30 seconds ("Reading shop and test files" → "Re-running tests on test_shop.py"), and the subagent finished in 1 min 46 s with the right file:line. Over an API Key, the status refresh requests we captured used the subagent's own model. To put both the subagent and its status line on Haiku 5.5, set CLAUDE_CODE_SUBAGENT_MODEL; /tasks then shows "Haiku 5.5".

Create an API Key and run background subagents in Claude Code →

What changed

ItemBeforeFrom v2.1.316 (per Anthropic)
Refresh intervalAbout every 30 s while a background subagent worksSame
What a refresh readsThe subagent's whole conversation, growing as it runsShort notes the subagent keeps as it works
Who writes the lineThe subagent's own modelHaiku 5.5
Per refreshGrows with the conversationAbout 99% less
Whole session—About 5% less of the limit, about 6% more prompts
Model the subagent works onThe one you configuredUnchanged

This comes from the @ClaudeDevs main post and follow-up. According to METAL, Anthropic also posted a 6.6-second explainer video; according to AlphaSignal, the post went up on November 4, US time.

The "status line" here is not the bottom bar you customize with /statusline. It is the short "what it is doing now" text after each background subagent in the panel under the prompt. According to developer Gabriel Anhaia's write-up on DEV, that text used to come from sending the subagent's conversation to the subagent's own model and asking for a 3–5 word summary of its latest action. It only fires for background subagents that are actively working. So the more subagents you run, and the longer they run, the more it adds up.

The Claude Code changelog shows earlier fixes to the same line: 2.1.128 fixed progress summaries missing the prompt cache, 2.1.274 fixed a summary turning into a multi-paragraph reply, and the latest 2.1.318 fixed the "Now using usage credits" notice reappearing about every 30 seconds while a background subagent runs.

Who is affected

Your setupEffect
Pro, Max or Ultra plan, background subagents oftenLive for most users per Anthropic; on 2.1.316+ the same limit gives about 6% more prompts
Team or EnterpriseLive for everyone per Anthropic
Rarely use subagentsAlmost no change; only the background subagent status line changed
Claude Code with an API Key (ANTHROPIC_BASE_URL)Metered by tokens, not the plan limit. In our test, refreshes still followed the subagent's model; to save tokens, put subagents on Haiku 5.5 (below)

For how the limits work, including the 5-hour window and the weekly limit, see Claude Code usage limits and Max 20x.

Upgrade to 2.1.316+ and check your version

Check what you run now:

bash
claude --version
2.1.318 (Claude Code)

If it is below 2.1.316, upgrade the way you installed. According to the Claude Code setup docs, native installs update in the background, while Homebrew and WinGet do not update on their own by default:

bash
# Native or npm install: update to the newest version
claude update
# Homebrew: the claude-code cask is the stable channel, usually about a week behind; use @latest to get new versions right away
brew upgrade claude-code@latest
# Windows WinGet
winget upgrade Anthropic.ClaudeCode
# Check install method, auto-update status and the last update result
claude doctor

Open a new terminal and run claude --version again. Anthropic's posts mention no new switch or setting, so just use background subagents as usual after upgrading.

Hands-on: a background subagent in Claude Code with an API Key

Tested on November 5, 2026, Claude Code 2.1.318 on Linux, main session on Opus 5.5. We used a clean HOME directory so no existing config was touched.

Step 1: create an API Key and connect Claude Code

  1. Sign up at aicodewith.ai, sign in, then click "Key Management" in the left navigation bar.
  2. Click "Create key" and give it a clear name, for example "Claude Code subagents".
  3. Copy the full key right away. Once the dialog closes, the full key is not shown again. See the Create API Key docs.

Create an API Key →

Put the key in ~/.claude/settings.json:

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
    "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY"
  }
}

For other ways to connect, see How to use Claude Code with a third-party API.

Step 2: give it a task that runs for a while

The demo repo is a small Python project: 3 files under shop/ and 7 tests under tests/. Each test's setUp waits 6 seconds, so one run of the suite takes about 42 seconds, and shop/pricing.py hides a threshold bug: "10 or more units" written as qty > 10. Send this in Claude Code:

text
Use a general-purpose subagent in the background for a read-only review of this repo:
first run python3 -m unittest discover -s tests -v (about 45 seconds), then read every
file in shop/ and tests/ one by one, then run the test suite a second time, and finally
report each failing test with file:line, a one-line fix, and two other risks you notice.
The subagent must not edit any file. While it runs, just tell me it started.

Step 3: watch the background subagent's status line

The main session replies right away that it started, and the subagent panel appears under the prompt. Here is the same row at different times, in order:

text
● Agent(Read-only repo review)
  ⎿  Backgrounded agent (↓ to manage · ctrl+o to expand)
✻ Waiting for 1 background agent to finish

  ● main
  ◯ general-purpose  Read-only repo review                 48s · ↓ 12.0k tokens
  ◯ general-purpose  Reading shop and test files        1m 10s · ↓ 14.0k tokens
  ◯ general-purpose  Re-running tests on test_shop.py   1m 40s · ↓ 14.1k tokens

● Agent "Read-only repo review" finished · 1m 46s

It first shows the task name "Read-only repo review". At 1 min 10 s it becomes "Reading shop and test files", at 1 min 40 s "Re-running tests on test_shop.py", about 30 seconds apart, and the subagent finishes at 1 min 46 s. In another run that only ran the tests once (subagent on the main session's Opus 5.5), it finished in 59 s and the line changed from the task name to "Preparing shop unittest discovery run".

The subagent's final report (excerpt):

text
Tests: 7 ran and 1 failed. Both runs gave the same results, so nothing looks flaky.
Failing test: test_bulk_at_threshold (tests/test_shop.py:10)
- It expects 10 units at 1.0 to total 9.5, but the code returns 10.0.
- The cause is shop/pricing.py:3, which uses if qty > 10.
- Fix: change > to >= at shop/pricing.py:3.
Two other risks:
1. Overselling (shop/inventory.py:4-7): reserve() checks stock and then sets it with no lock.
2. Missing input checks (shop/cart.py:5, shop/cart.py:9).

Both shop/pricing.py:3 and the > to >= fix are correct, and no file was changed.

Step 4: which model writes the status line?

We put a local pass-through in front of the API that only logged the model name and message count:

WhenRequestModelConversation sentOutput
Around 1 min 10 sStatus refreshclaude-haiku-5-5 (the subagent's model)Subagent's current conversation, 7 messages"Reading shop and test files", 10 tokens
Around 1 min 40 sStatus refreshclaude-haiku-5-5 (the subagent's model)Subagent's current conversation, 8 messages"Re-running tests on test_shop.py", 15 tokens

So in our test over an API Key through ANTHROPIC_BASE_URL, the refresh still sent the subagent's current conversation to the subagent's own model, which matches the old behavior Anthropic described. Anthropic says the new behavior is live for most plan users and does not mention API Key setups. For API Key users, the most direct fix is to put subagents on Haiku 5.5: both the work and the status refreshes then run on Haiku 5.5.

How to set the subagent model

According to the Claude Code subagent docs, the subagent model is picked in this order:

  1. The model parameter Claude passes for that call;
  2. The model field in the subagent's definition (inherit means the main session's model);
  3. The CLAUDE_CODE_SUBAGENT_MODEL environment variable;
  4. The main session's model.

Option 1: a default model for all subagents

Add one line to env in ~/.claude/settings.json. This is the config we used in Step 3:

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
    "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
    "CLAUDE_CODE_SUBAGENT_MODEL": "claude-haiku-5-5"
  }
}

It is only a default: subagents whose definition sets model, or calls where Claude passes a model, override it. On its own it also does not change the built-in Explore and Plan subagents.

Option 2: a model for one subagent

Create a Markdown file in your project's .claude/agents/ or your own ~/.claude/agents/:

markdown
---
name: test-runner
description: Runs the test suite and reports failing tests with file:line. Read-only.
tools: Read, Grep, Glob, Bash
model: haiku
effort: medium
---
Run the tests, read only the files you need, and report each failing test
with file:line and a one-line fix. Never edit files.

model accepts haiku, sonnet, opus, inherit or a full model ID such as claude-haiku-5-5. For a fuller read-only subagent, see Claude Code subagents on Haiku 5.5: setup.

Option 3: force one model on every subagent

json
{
  "env": {
    "CLAUDE_CODE_SUBAGENT_MODEL": "haiku",
    "CLAUDE_CODE_SUBAGENT_MODEL_FORCE": "1",
    "CLAUDE_CODE_SUBAGENT_EFFORT": "medium"
  }
}

CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1 ignores model in definitions (needs v2.1.257+). CLAUDE_CODE_SUBAGENT_EFFORT is new in 2.1.316 and sets the default effort for subagents instead of inheriting the session's.

Check that it worked

While the subagent runs, type /tasks and select it to see the model it actually uses. Our output:

text
/tasks
  general-purpose › Read-only repo review
  1m 1s · 14.0k tokens · 8 tools · Haiku 5.5
  Progress
    Read(shop/cart.py)
    Read(shop/inventory.py)
    Read(shop/pricing.py)
    Read(tests/test_shop.py)
  › Bash(python3 -m unittest discover -s tests -v 2>&1; echo "EXIT=$?")

"Haiku 5.5" at the end of the second line is the model the subagent runs on. For which jobs suit Haiku 5.5 or Sonnet 5.5, see Claude Haiku 5.5 vs Sonnet 5.5.

Other ways to use less

FAQ

Do I need to change any setting?

Anthropic only asks you to update to v2.1.316 or later, and the posts mention no new switch. According to AlphaSignal, no configuration change is needed.

Will my subagents now run on Haiku?

No. According to Anthropic, Haiku 5.5 only writes the status line; the subagent works on the model you configured. To run the subagent itself on Haiku, set CLAUDE_CODE_SUBAGENT_MODEL or write model: haiku in its definition.

How do "99% less" and "5% less" relate?

99% is per status refresh; 5% is for the whole session. Status refreshes are a small share of a session, so the session saves about 5%, which means about 6% more prompts on the same limit.

How do I see what a background subagent is doing?

The subagent panel under the prompt has one row per background subagent with its status, elapsed time and tokens. Select it with ↓, press Enter to open its transcript, and use /tasks to see its model, tool calls and progress.

Does the new behavior apply when I connect with an API Key?

Anthropic's posts only name Pro, Max, Ultra, Team and Enterprise. In our API Key test on 2.1.318, status refreshes followed the subagent's model; with the subagent on Haiku 5.5, the refreshes ran on Haiku 5.5 too.

Create an API Key and start using Claude Code background subagents →

Related reading

相关文章

Conductor is shutting down: run several Claude Code / Codex agents in parallel without it (git worktree guide)

Conductor is shutting down: run several Claude Code / Codex agents in parallel without it (git worktree guide)

Meta has acquired Conductor. According to the official announcement, Conductor Cloud goes read-only on November 13 and shuts down on November 20, when cloud data starts being deleted, while the local Mac app keeps getting updates until early 2027. This guide covers the timeline and what to export, then shows how to do the same thing without Conductor - one git worktree per task, one Claude Code or Codex session per worktree, an API Key, then merge, verify and clean up - with tests of claude --worktree, codex --worktree, a merge conflict, and alternatives such as Orca, Emdash and Claude Squad.

Did Postman install plugins into Claude Code and Codex? 3-step check and removal (plugins, hooks, MCP, config.toml)

Did Postman install plugins into Claude Code and Codex? 3-step check and removal (plugins, hooks, MCP, config.toml)

According to GitHub issue #14370 and The New Stack, the Postman desktop app (macOS 12.33.4 and 12.35.1) installed its plugin into Claude Code and Codex during an existing-user upgrade and wrote a trusted_hash into ~/.codex/config.toml so its own SessionStart hook runs. This guide covers what happened and Postman's response, a 3-step check for Claude Code, Codex and Cursor, the official removal command and the leftovers it does not remove, plus our reproduction with Postman's official installer in an isolated home directory.

How to Use DeepSeek Harness Creator Mode: Install, Connect a Third-Party API and Build Your First Plugin

How to Use DeepSeek Harness Creator Mode: Install, Connect a Third-Party API and Build Your First Plugin

On November 2 the official DeepSeek Harness account showed off Creator Mode, where you describe a tool in one sentence and the agent writes the plugin, installs it into Harness and checks that it loaded. This guide explains what Creator Mode is, how to start Harness with npx, how to connect an OpenAI-compatible third-party API (aicodewith base URL + key) to use Claude, GPT and DeepSeek models, and walks through building a todo_scan plugin with Creator Mode, with real outputs, common errors and the Claude Code / Codex equivalents.