Feature: Per-task model routing (Opus for analysis/planning, lighter model for code writing)
Summary
Claude Code currently uses a single globally-configured model for all operations. There is no way to automatically route different task types to different models without manual /model switching.
Problem
The value proposition of Claude Code is removing cognitive overhead from the developer. Requiring users to manually switch models between planning and implementation phases reintroduces exactly the kind of overhead the tool is meant to eliminate.
Proposed Solution
Allow per-task model routing via settings, for example:
{
"models": {
"analysis": "claude-opus-4-6",
"edit": "claude-sonnet-4-6",
"write": "claude-sonnet-4-6",
"bash": "claude-haiku-4-5"
}
}
Or a simpler two-tier approach:
{
"model": "claude-opus-4-6",
"executionModel": "claude-sonnet-4-6"
}
Where executionModel is used for tool calls that write/execute (Edit, Write, Bash), and the primary model handles analysis, planning, and reasoning.
Why This Makes Sense
- Opus excels at reasoning, analysis, and planning — deciding what to do
- Sonnet/Haiku are fast and accurate at executing well-defined tasks — doing the mechanical work of writing the code once the plan is clear
- The model routing would be transparent to the user and could be overridden manually
Current Workaround
Manual /model switching mid-session — which defeats the purpose.
🤖 Generated with Claude Code
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗