effortLevel "max" in settings.json does not persist across sessions

Resolved 💬 5 comments Opened Apr 3, 2026 by danielcregg Closed Jun 3, 2026

Bug Description

Setting effortLevel to "max" in ~/.claude/settings.json does not persist across new conversations. The effort level reverts (appears as medium/default) when starting a new session, despite the config file correctly containing "max".

Setting effortLevel to "high" in the same file does persist correctly across sessions.

Steps to Reproduce

  1. Set "effortLevel": "max" in ~/.claude/settings.json
  2. Start a new Claude Code conversation
  3. Observe that the effort level is not set to max — it reverts to default

Expected Behavior

"effortLevel": "max" should persist across sessions, just like "high" does.

Actual Behavior

  • "effortLevel": "high" → persists ✅
  • "effortLevel": "max" → does not persist ❌

Environment

  • Platform: Windows 11
  • Model: Claude Opus 4.6 (1M context) — selected as default at startup
  • Auto-updates channel: latest

Additional Context

  • No project-level .claude/settings.json or settings.local.json files are overriding the effort level — the only effortLevel entry exists in the user-level ~/.claude/settings.json.
  • Running /effort max within a session works fine for that session, it just doesn't persist from the config file.
  • Possible cause: the runtime may not be recognizing "max" as a valid persisted value, perhaps because max effort is model-gated to Opus 4.6 and the validation runs before the model selection is applied.

View original on GitHub ↗

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