[BUG] /effort changes a permanent, global setting without disclosing that it does

Resolved 💬 1 comment Opened Jun 2, 2026 by marcuswanner Closed Jun 6, 2026

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

  1. Run /effort and choose high. The entry shows no scope label.
  2. Check ~/.claude/settings.json: effortLevel is now high.
  3. 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 — max silently downgraded because it's absent from the picker.
  • #37773 — status bar showing the wrong level (display lag).

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗