Feature request: per-model default effort levels
Is your feature request related to a problem?
Effort level is a single global setting (effortLevel / /effort / CLAUDE_CODE_EFFORT_LEVEL), while /model switches models freely. Users who run different models at different effort levels (e.g. a top-tier model at medium for cost, a smaller model at high) must remember to run /effort after every /model switch — an easy step to forget, with real cost/latency consequences in both directions.
Describe the solution you'd like
Allow per-model effort defaults in settings.json, e.g.:
{
"model": "fable",
"effortLevel": "high",
"modelEffortDefaults": {
"claude-opus-5": "medium",
"claude-fable-5": "high"
}
}
Semantics: switching models via /model (or --model) applies that model's default effort if one is mapped, else the global effortLevel. An explicit /effort in-session still overrides until the next model switch.
Describe alternatives you've considered
- Shell aliases wrapping
CLAUDE_CODE_EFFORT_LEVEL=<x> claude --model <y>— works only at launch, not in-session. - Manually pairing
/model+/effort— works but is forgettable; surfacing effort in the statusline mitigates detection, not the extra step. - Per-agent
effort:frontmatter — covers subagents, not the interactive session.
🤖 Filed with Claude Code on the user's behalf.