[FEATURE] Per-agent-type model configuration in settings.json

Resolved 💬 2 comments Opened Mar 18, 2026 by nocturnal-bot Closed Mar 18, 2026

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

  1. Setting model globally — changes the main session model too, not just subagents.
  2. Creating ~/.claude/agents/general-purpose.md with model frontmatter — tested this; does NOT override built-in agents.
  3. 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_

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗