[FEATURE] Per-phase effort levels for opusplan (separate plan-mode and execution effort)

Open 💬 0 comments Opened Jul 7, 2026 by r0ny123

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

opusplan switches the model automatically at the plan boundary (planner model in plan mode, sonnet for execution), but effort level is a single session-wide value that does not switch with it. There is no way to configure e.g. "plan at low effort, execute at medium/high effort".

This matters because the two phases have opposite cost/depth profiles: with ANTHROPIC_DEFAULT_OPUS_MODEL=claude-fable-5, opusplan lets a large frontier model do the planning — where a low/medium effort is often sufficient and keeps token spend controlled — while the execution model (Sonnet 5) benefits from higher effort on the actual implementation.

The manual workaround is also blocked at exactly the wrong moment: while the plan-approval dialog is displayed, the input box belongs to the dialog, so /effort cannot be run at the plan→execute transition. The only options are interrupting execution right after accepting (Esc → /effort high → "continue") or re-setting effort before the final planning turn.

Proposed Solution

Allow effort to be specified per phase for opusplan (and any future hybrid aliases), for example:

{
  "model": "opusplan",
  "effortLevel": { "plan": "low", "execute": "medium" }
}

(keeping the current string form as shorthand for both phases). Equivalent /effort plan low / /effort execute medium commands and --effort flag forms would make it adjustable mid-session. When the model switches at the plan boundary, Claude Code would apply the phase's configured effort automatically.

Alternative Solutions

  • Per-model effort memory: persist the last /effort chosen per model and re-apply it when opusplan switches models. Less explicit, but requires no new settings shape.
  • Allow /effort (and /model) to be invoked while the plan-approval dialog is open, so the user can adjust at the boundary manually.
  • Current workarounds: session-wide medium as a compromise; ultrathink keyword per prompt; accept → Esc → /effort high → "continue".

Priority

Medium — workflow friction and token-cost control for hybrid-model users; workarounds exist but are clunky.

Feature Category

Model configuration / settings

Use Case Example

  1. User sets model: opusplan with ANTHROPIC_DEFAULT_OPUS_MODEL=claude-fable-5 (documented alias redirection), so Fable 5 plans and Sonnet 5 executes.
  2. User wants planning at low effort (Fable 5 is strong enough at low for most plans; high-effort Fable planning is expensive) and execution at medium/high.
  3. Today: one effortLevel applies to both; the approval dialog prevents changing it at the transition; user must interrupt execution to bump effort, then remember to lower it again before the next planning session (effort persists across sessions).

Additional Context

Docs referenced: https://code.claude.com/docs/en/model-config (opusplan, ANTHROPIC_DEFAULT_OPUS_MODEL resolving the plan-phase model, single effortLevel, per-model effort defaults applied on first run).

View original on GitHub ↗