[FEATURE] Per-agent-type model configuration in settings.json
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
There is no way to configure which model each built-in subagent type uses in settings.json. The model field applies globally to the main Claude Code session, and all subagents (general-purpose, Explore, Plan, claude-code-guide) inherit the parent model with no way to override per agent type.
This means users who want to save costs by routing simpler subagent tasks to a cheaper model (e.g. Haiku) have no way to do so without affecting the main session model or manually specifying the model on every Agent tool call — which is unreliable and itself costs tokens in context.
Proposed Solution
Add an agentModels key to settings.json that maps built-in agent type names to model IDs:
{
"agentModels": {
"general-purpose": "claude-haiku-4-5-20251001",
"Explore": "claude-haiku-4-5-20251001",
"Plan": "claude-sonnet-4-6",
"claude-code-guide": "claude-sonnet-4-6"
}
}
This would allow users to configure cost/capability trade-offs per agent type without changing the main session model.
Alternative Solutions
- Setting
modelglobally — changes the main session model too, not just subagents. - Creating
~/.claude/agents/general-purpose.mdwith model frontmatter — tested this; does NOT override built-in agents. - Passing
model: "haiku"per Agent tool call — works per-call but requires the LLM to remember every time, which costs tokens and is unreliable across sessions.
Priority
Medium - Would be very helpful
Feature Category
Configuration and settings
Use Case Example
_No response_
Additional Context
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗