/effort setting is global across sessions instead of per-session

Resolved 💬 9 comments Opened Apr 26, 2026 by devanshh-garg Closed May 8, 2026

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

  1. Open two Claude Code sessions (separate terminal windows / projects)
  2. In session A run /effort and pick xhigh
  3. In session B run /effort — current effort shows xhigh (inherited from A)
  4. In session B set effort to high
  5. 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)

View original on GitHub ↗

This issue has 9 comments on GitHub. Read the full discussion on GitHub ↗