Effort level 'max' should be persistable in settings.json for Max plan subscribers
Problem
Max plan subscribers ($200/month) cannot persist the "max" effort level in settings.json. After every "Clear Conversation" in VSCode extension, effort resets from 99/100 back to 85/100 ("high"), requiring manual slider adjustment each time.
Current behavior
settings.jsonwith"effortLevel": "high"→ effort 85/100 ✅ (persists)settings.jsonwith"effortLevel": "max"→ effort 85/100 (treated as "high", no error)- CLI
--effort max→ rejected:Error: Effort level "max" is not available for Claude.ai subscribers - UI slider → can be set to max (99/100) ✅ but resets after Clear Conversation
Expected behavior
Max plan subscribers should be able to set "effortLevel": "max" in settings.json and have it persist across conversation clears, just like the model setting persists.
The VSCode extension webview already supports 4 effort levels internally ({low:1, medium:2, high:3, max:4}), but the CLI validation blocks "max" for Claude.ai subscribers, causing a mismatch.
Workaround
After every Clear Conversation, manually click the effort slider to set it back to max. This is needed ~50 times/day for active users.
Environment
- Claude Code VSCode Extension v2.1.74
- Max plan subscriber
- Windows 11
- Settings configured in both
~/.claude/settings.jsonand.claude/settings.json
Showing cached comments. Read the full discussion on GitHub ↗
6 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Just chiming in that yes, right now, max seems unreliable. It can be set using the
/modelhowever, it cannot be set other ways but most notablyultrathinktriggers high effort instead of max. Not veryultrawhen youthinkabout it.Related to issue: https://github.com/anthropics/claude-code/issues/34077
Does
maxeffort level actually still exist? CHANGELOG of 2.1.72 says it was removed:Yes,
maxstill exists. Just tested in CLI (Claude Code 2.1.86, Opus 4.6):/effort max→ accepted, output: "Set effort level to max: Maximum capability with deepest reasoning (Opus 4.6 only)"/effort→ shows "Current effort level: max"Behavioral confirmation from Claude's side: when effort is "high", Claude receives a
<system-reminder>tag saying "The user has requested reasoning effort level: high." When effort is "max", no such tag appears — reasoning is unrestricted.The CHANGELOG note may refer to removing
maxas a separately tagged effort level — it now appears to be the unrestricted default (no system reminder tag), whilelow/medium/higheach inject a tag that constrains reasoning.it always return 'max' on not only statusline but also manual check on /effort command:
<img width="1792" height="392" alt="Image" src="https://github.com/user-attachments/assets/f6818724-5671-4e5c-8042-e790b70849b8" />
follow-up to my earlier screenshot — found a workaround that actually sticks across restarts.
on v2.1.116,
claude --helpnow explicitly listsmaxas a valid--effortflag value:settings.json
effortLevel: "max"still silently falls back toxhighfor me (schema enum hasn't been updated to accept max), but the CLI flag path is honored. so the cleanest fix is a shell alias that forces it per-session:the
commandprefix prevents recursion if there's a pre-existing claude alias. verified the argument parser accepts--effort maxon v2.1.116 / macOS 14 / opus 4.7 1M context, and the picker showsmaxhighlighted after the alias is in place.caveat worth flagging — per #40093, banner display and runtime effort have drifted apart before. haven't personally verified the
/v1/messagespayload carrieseffort: "max"via mitmproxy, so runtime correctness still needs independent confirmation. but the help-text documentation ofmaxas an accepted value is a good signal that this path is the one being maintained.in the meantime, keeping
"effortLevel": "xhigh"in~/.claude/settings.jsonas a valid baseline + the alias gives a stable setup that survives restarts without touching the UI.