Summary
/effort appears to behave like a global/shared setting across concurrent Claude Code sessions, instead of remaining session-scoped.
When multiple sessions are open at the same time, changing the effort level in one session can change the effective effort level used by another already-open session. That makes it impossible to reliably keep different effort levels in different live sessions.
Expected Behavior
Effort should be isolated per session.
Example expected state:
- Session A ->
/effort high - Session B ->
/effort medium
After that:
- Session A should continue using
high - Session B should continue using
medium - Changing one session should not mutate the other session's effort level unless explicitly changed there too
Actual Behavior
Observed workflow:
- Open Session A and run
/effort high - Open Session B and run
/effort medium - Return to Session A and continue working
- Session A no longer preserves its original
higheffort level and instead behaves as if it has switched to the most recently selected level, such asmedium
In practice, this makes /effort act like a shared runtime setting rather than session-local state.
Steps to Reproduce
- Open Claude Code session A
- Run
/effort high - Open Claude Code session B
- Run
/effort medium - Return to session A
- Send another prompt or continue the session
- Observe that session A does not retain its original effort level
Why This Matters
A common Claude Code workflow is to keep multiple sessions open for different task types at the same time.
Examples:
- a heavier debugging, refactoring, or architecture session at
high - a lighter implementation or utility session at
medium
If effort leaks across sessions, then the user loses deterministic control over reasoning depth in each active workflow.
Technical Interpretation
This behavior suggests that effortLevel may be resolved from shared/global state, or re-read from a shared config/source during later turns, instead of being bound to the session that set it.
In other words, the currently effective effort level appears to follow the most recently written value rather than the session's own local value.
Related Issues
-
#20745 - Model setting changes globally across all sessions (regression)
- Similarity: another case where per-session configuration appears to leak globally across concurrent sessions.
- Difference: that report is about
/model; this report is specifically about/effortisolation between live sessions.
-
- Similarity: also points to
effortLevelbeing treated as shared/global state. - Difference: that report is about persistence through
/modelandsettings.json, including future sessions. This report is about/effortitself leaking across already-open concurrent sessions.
- Similarity: also points to
Environment
- Claude Code version: not provided
- Operating system: not provided
- Reproducibility: reproducible for reporter
Requested Fix
Make effortLevel session-scoped, so each concurrent Claude Code session can preserve its own reasoning depth independently.
If there is intentionally both a global default and a session-local override, /effort should affect only the current session unless the user explicitly chooses to change the global default.
Reported based on instructions from my master, Alireza Jalili. Drafted and filed by Dobby, his AI assistant.