Do Claude Code subagents burn your usage limit faster?
Downshift by Tiago Vilas Boas. Updated
Downshift here is a Go tool for AI coding agents, not the React downshift autocomplete library and unrelated to any car transmission.
TL;DR
They can. Anthropic's docs say each subagent starts with a fresh context and sends its own requests, which count toward the same usage limits as your main conversation. Unless something sets its model, a subagent runs on your main model, and setting CLAUDE_CODE_SUBAGENT_MODEL does not change the built-in Explore and Plan agents. Putting routine subagents on Haiku is the lever Anthropic itself names.
Why subagents use more of your limit
Three facts from Anthropic's subagent docs explain it:
- Fresh context. Each subagent starts with a fresh, isolated context window. It does not see your conversation history or the files Claude has already read, so it may read them again.
- Its own requests. A subagent sends its own requests, which count toward the same usage limits as your main conversation.
- Results come back. When subagents complete, their results return to your main conversation. Many subagents that each return detailed results can consume significant context, and each one spends tokens of its own while it runs.
None of that is a bug. It is what isolation costs. The question is which model pays for it.
Which model a subagent runs on
When the agent file does not fix the model, Claude Code picks it in this order:
- The per-invocation
modelparameter. - The subagent definition's
modelfrontmatter, whereinheritselects the main conversation's model. - The
CLAUDE_CODE_SUBAGENT_MODELenvironment variable. - The main conversation's model.
So if nothing else sets a model, a subagent runs on your main model: Opus or Fable in many sessions. The docs add that CLAUDE_CODE_SUBAGENT_MODEL is a default, so a subagent's definition or a model Claude passes still wins over it.
The Explore trap
The built-in Explore agent is a fast, read-only agent for searching and analysing a codebase. It runs on the main conversation's model. When the main conversation runs Fable on a Claude subscription, Explore runs on Opus. And setting CLAUDE_CODE_SUBAGENT_MODEL by itself does not change the model Explore and Plan run on.
Search is the most mechanical work a session does, and on a large model it is the easiest usage to waste. Anthropic's help center says Opus costs several times more per turn than Sonnet, and Sonnet more than Haiku, and that spending Opus on routine work is the fastest way to drain a daily limit.
How to put subagents on a smaller model
| Lever | Where | Applies to | Catch |
|---|---|---|---|
| Name the model on the call | Claude passes model when it spawns | One spawn | Claude has to choose it every time |
model: haiku in an agent file | .claude/agents/<name>.md | Every spawn of that agent | One model for the whole agent type |
CLAUDE_CODE_SUBAGENT_MODEL=haiku | Environment or settings env | Subagents nothing else sets | Does not change Explore or Plan |
Your own agent named Explore | .claude/agents/Explore.md with model | Every Explore spawn | Replaces the built-in Explore definition |
CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1 | Environment | Every subagent | Overrides every per-task choice, including Claude's |
To move Explore itself, define your own agent named Explore. The docs say a user or project subagent with that name and its own model field overrides the built-in one:
---
name: Explore
description: Read-only codebase search. Finds files, reads them and reports back.
model: haiku
---
Search and read the codebase to answer the question. Do not edit files.
For every other subagent that sets nothing, one variable is enough:
export CLAUDE_CODE_SUBAGENT_MODEL=haiku
Also spawn fewer, narrower subagents. Each one re-reads context and each result lands back in your main conversation.
Choosing per task instead of per agent
Every lever above fixes one model for a whole agent type. A rename and an architecture review that use the same agent type get the same model.
Downshift is a free, open-source hook that applies the model Claude chose for each spawn, inside a policy you declare, and keeps the requested model when in doubt. downshift policy init offers an explore profile that sends Explore to the small tier and shows which model that resolves to before it writes anything. The profile arrived after version 0.11.0. Like any declared profile it also applies when a call names a model, so delete it if you want Claude to choose for Explore.
downshift report then shows, per harness, how many billable tokens ran below your session model. It reports tokens, not dollars, and it does not measure your plan limit.
Frequently asked questions
Do Claude Code subagents count against my usage limit?
Yes. Anthropic's docs say a subagent sends its own requests, which count toward the same usage limits as your main conversation.
Does CLAUDE_CODE_SUBAGENT_MODEL change the Explore subagent?
No. The docs say setting it by itself does not change the model the built-in Explore and Plan agents run on. Define your own agent named Explore with a model field instead.
Which model does a subagent use by default?
The main conversation's model, unless the call, the agent file or CLAUDE_CODE_SUBAGENT_MODEL sets another, in that order.
Will Haiku subagents do worse work?
On search, file reading and mechanical edits Anthropic itself suggests routing to Haiku. Keep judgment work, such as design and risky changes, on your main model. In one controlled Downshift trial on mechanical tasks, routing alone ran about 24% fewer tokens per accepted run (pre-O8 study) (2026-10-21, one operator, 46 runs, interval +2.1% to +46.7%).
Install
Run downshift setup --dry-run first to preview every change. downshift setup --undo restores your backups.
curl -fsSL https://raw.githubusercontent.com/tiagovilasboas/downshift-ai/main/install.sh | sh && downshift setupClaude Code plugin
/plugin install downshift --marketplace tiagovilasboas/downshift-aiRelated guides
Sources
- Anthropic docsmeasured
code.claude.com/docs/en/sub-agents
fresh context, model resolution order, Explore model, usage limits, cost advice; the first 100,000 of 116,722 characters read (fetched 2026-11-07) - Anthropic Help Centermeasured
Models, usage, and limits in Claude Code
relative cost of Opus, Sonnet and Haiku per turn; CLAUDE.md prepended to every turn (fetched 2026-11-07) - Downshift repomeasured
docs/guides/policy.md
the explore profile offered by policy init; profile precedence - Downshift repomeasured
docs/guides/evidence.md
what each saving figure means and which are unproven