/effort setting is global across sessions instead of per-session
Summary
The effort level set via /effort (and the underlying effortLevel in settings.json) applies globally across all running Claude Code sessions, rather than scoping to the session where it was set. Changing effort in window A immediately changes it in window B.
Repro
- Open two Claude Code sessions (separate terminal windows / projects)
- In session A run
/effortand pickxhigh - In session B run
/effort— current effort showsxhigh(inherited from A) - In session B set effort to
high - Back in session A, current effort is now
high
Expected
Each session retains its own effort selection for its lifetime. /effort should act as a session-local override of the configured default in settings.json, not mutate the global setting.
Actual
/effort writes to settings.json globally, so the most recent change wins across all live sessions. There's no way to run two sessions at different effort levels simultaneously (e.g. xhigh for a hard debugging window, medium for an everyday window).
Workaround
Per-skill effort: frontmatter overrides on a per-invocation basis, but there's no per-session default.
Environment
- Platform: darwin (macOS 25.4.0)
- Model: Opus 4.7 (1M context)
This issue has 9 comments on GitHub. Read the full discussion on GitHub ↗