[BUG] /effort changes a permanent, global setting without disclosing that it does
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
There's a Claude part below, human typing for now!
This issue matters to me because I went from xhigh to low for a quick test and got stuck there when I changed the same exact /effort command back to ultracode. Yeah, the UI shows it on load/during thinking so I kept changing it manually back to ultracode, but that setting doesn't persist. I just had no idea that the real actual effort levels (not the bolted-on special ones) were a persistent setting that I could change, because that's not surfaced in the UI anywhere.
Choosing a standard level in the /effort picker (low / medium / high / xhigh) writes effortLevel to ~/.claude/settings.json — a default applied to every future session. Nothing in the picker indicates this: no confirmation, no "saved as default," no mention of scope. The session-only modes (ultracode / max / auto) are suffixed "(this session only)"; the persistent ones are suffixed nothing. So the action that permanently changes a global setting is the action the picker says nothing about.
What Should Happen?
The parentheses-tips should be opposite: (THIS SETTING IS GLOBAL AND PERMANENT) on the global permanent options instead of (this session only) on the session-limited ones. Or just have obvious UX-distinct workflows for permanent and temporary settings in some other way?
Error Messages/Logs
Steps to Reproduce
- Run
/effortand choosehigh. The entry shows no scope label. - Check
~/.claude/settings.json:effortLevelis nowhigh. - Open a new, unrelated session: it starts at
high. Nothing in step 1 indicated it would.
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.160
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Other
Additional Information
Not a duplicate of:
- #56262 / #53331 — those argue /effort shouldn't persist at all. This isn't about whether it persists; it's that the picker gives no sign that it does.
- #30726 —
maxsilently downgraded because it's absent from the picker. - #37773 — status bar showing the wrong level (display lag).
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗