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
- Set
"effortLevel": "max"in~/.claude/settings.json - Start a new Claude Code conversation
- 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.jsonorsettings.local.jsonfiles are overriding the effort level — the onlyeffortLevelentry exists in the user-level~/.claude/settings.json. - Running
/effort maxwithin 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 becausemaxeffort is model-gated to Opus 4.6 and the validation runs before the model selection is applied.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗