Bug description
Subagent model routing does not work. All documented mechanisms for routing subagents to a different model (e.g. Sonnet) are silently ignored — subagents always run on the parent session's model (Opus).
Tested mechanisms (all failed)
| # |
Mechanism |
Doc reference |
| 1 |
Agent(model: "sonnet") per-invocation param |
Subagent docs |
| 2 |
Custom agent .claude/agents/*.md with model: sonnet frontmatter |
Subagent docs |
| 3 |
CLAUDE_CODE_SUBAGENT_MODEL=claude-sonnet-4-6 env var |
Model config docs |
| 4 |
CLAUDE_CODE_SUBAGENT_MODEL=sonnet env var (alias) |
Same |
| 5 |
settings.json top-level "env": { "CLAUDE_CODE_SUBAGENT_MODEL": "sonnet" } |
Model config docs |
Reproduction
- Start Claude Code on a Max plan with Opus as the main model
- Note the "Sonnet only" usage % on the dashboard
- Spawn subagents with any of the above mechanisms
- Check dashboard — Sonnet stays flat, Opus session usage increases
We ran 5 separate tests (15 subagents total, 3 per test). Sonnet stayed at 2% across all tests while Opus increased each time.
Expected behavior
The subagent docs document a resolution order:
CLAUDE_CODE_SUBAGENT_MODEL env var (highest priority)
- Per-invocation
model parameter
- Subagent definition's
model frontmatter
- Main conversation's model (fallback)
At least one of these should actually route the subagent to the specified model.
Impact
Max plan users have a separate "Sonnet only" quota that is currently unusable from Claude Code. All subagent work (search, exploration, scaffolding) consumes the shared Opus weekly limit instead, leading to faster throttling.
Related issues
Environment
- Claude Code desktop app (Windows 11)
- Opus 4.6 (1M context) as main model
- Max plan (5x)
- Tested 2026-04-05
Bug description
Subagent model routing does not work. All documented mechanisms for routing subagents to a different model (e.g. Sonnet) are silently ignored — subagents always run on the parent session's model (Opus).
Tested mechanisms (all failed)
Agent(model: "sonnet")per-invocation param.claude/agents/*.mdwithmodel: sonnetfrontmatterCLAUDE_CODE_SUBAGENT_MODEL=claude-sonnet-4-6env varCLAUDE_CODE_SUBAGENT_MODEL=sonnetenv var (alias)settings.jsontop-level"env": { "CLAUDE_CODE_SUBAGENT_MODEL": "sonnet" }Reproduction
We ran 5 separate tests (15 subagents total, 3 per test). Sonnet stayed at 2% across all tests while Opus increased each time.
Expected behavior
The subagent docs document a resolution order:
CLAUDE_CODE_SUBAGENT_MODELenv var (highest priority)modelparametermodelfrontmatterAt least one of these should actually route the subagent to the specified model.
Impact
Max plan users have a separate "Sonnet only" quota that is currently unusable from Claude Code. All subagent work (search, exploration, scaffolding) consumes the shared Opus weekly limit instead, leading to faster throttling.
Related issues
Environment