[FEATURE] Bind effort level to permission mode (xhigh in plan mode, default elsewhere)

Status Open
Reported on v2.1.252
Maintainer reply None cached
Activity 1 comment · opened Sep 2, 2026

Preflight Checklist

  • [x] I have searched existing issues. Related: #75389 (per-phase effort for opusplan), #90222 (per-activity effort). This request is narrower and needs no model switch: bind effort to the permission mode so that any model runs at a higher effort in plan mode.
  • [x] This is a feature request, not a bug report.

Problem Statement

There is no way to bind the effort level to the permission mode. I want plan mode to run at xhigh effort and the other modes (default, acceptEdits, auto) to run at their default effort automatically.

Today this needs a manual /effort toggle each way. Since 2.1.252 /effort persists per model, so a forgotten revert leaks into future sessions. 2.1.257 added s in /effort for session-only changes, which helps, but the toggle is still manual on every Shift+Tab. No hook event fires on a permission-mode change, and no hook or setting can set effort programmatically (hooks receive effort.level / $CLAUDE_EFFORT read-only).

Proposed Solution

A settings key that maps permission modes to effort levels, for example:

"effortLevel": "medium",
"effortByPermissionMode": {
  "plan": "xhigh"
}

When the permission mode changes (Shift+Tab, --permission-mode, ExitPlanMode), Claude Code applies the mapped effort for that mode and restores the previous effort when the mode is left. Modes not listed keep the current effort.

Alternative Solutions

  • A PermissionModeChanged hook event plus a hook output field that can set effort. More general, but heavier for users.
  • Extending opusplan semantics. Rejected: this request is model-independent.

Priority

Medium

Feature Category

Configuration / settings

Use Case Example

  1. /effort medium is the saved default.
  2. Press Shift+Tab into plan mode. Effort becomes xhigh automatically. The plan is written with deep reasoning.
  3. Accept the plan (ExitPlanMode). Effort returns to medium for implementation.
  4. Nothing to remember, nothing leaks into the next session.

Additional Context

  • Claude Code 2.1.258, macOS (arm64), native install.
  • Prior art for mode-conditional behavior: opusplan already switches the model in plan mode.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗