/effort presents 'ultracode' as a top effort tier, but it's xhigh + a workflow flag — and nothing at selection says so
Preflight Checklist
- [x] I have searched existing issues — this consolidates and reframes #65156, #66860, #68860, #63468, and #69068 around a labeling/transparency problem none of them states head-on.
- [x] This is a single bug report.
- [x] I am using the latest version of Claude Code.
What's Wrong?
The /effort selector presents ultracode as the top option in the same list as the real reasoning tiers. /effort's own error string spells it out:
Valid options are: low, medium, high, xhigh, max, ultracode, auto
Seated there, above max, every reasonable user reads ultracode as "the highest-reasoning setting." It is not an effort level at all, and three independent surfaces confirm that:
- The docs: "Ultracode is a Claude Code setting rather than a model effort level: it sends
xhighto the model and additionally has Claude orchestrate dynamic workflows… it is not an additional API effort level." - The shipped CLI (v2.1.183): the real effort set is exactly
low / medium / high / xhigh / max;ultracoderesolves toxhighand is tracked as a separate session boolean. - Every other entry point rejects it:
--effort ultracode(#65156) and setting it as a default viaCLAUDE_CODE_EFFORT_LEVEL(#68860) both fail withlow, medium, high, xhigh, max; the status line reportsxhigh, with no ultracode signal (#69068).
So the most powerful-looking choice actually means **xhigh — one tier below max — plus automatic workflow orchestration the user never separately asked for, and only for the current session.** A user who picks ultracode over max to "get the most reasoning" silently gets less reasoning than max. None of this is disclosed where the choice is made.
That is the real problem, and it deserves more than a doc edit. In #63468 a maintainer closed the matching status-line report as "the current behavior is expected" and said they would "fix our doc." But users aren't misled by the docs — they're misled by the picker. Quietly repurposing a control that sits in the effort list so that it means "xhigh + a behavior change," without saying so at the point of selection, is exactly the kind of opacity that erodes trust: it reads as the tool quietly deciding what's good for the user instead of telling them and letting them choose. People notice, and in a market where switching is one command away, being straight with users at the point of choice is not a nice-to-have.
What Should Happen?
Make the picker honest where the user actually selects it. Any of:
- Visually separate
ultracodefrom the reasoning tiers (a divider, or a "Modes" subsection) so it is not read as "the rung abovemax." - Annotate it inline with what it is — the CLI already ships the exact words: "xhigh + dynamic workflow orchestration."
- Disclose that it is session-scoped (unlike
max, which persists), so the silent revert toxhighon the next session is not a surprise. - Either give
ultracodereal flag / env / status-line parity, or stop presenting it as if it were a peer effort level.
None of this changes behavior — it just stops the UI from implying something false.
Steps to Reproduce
- Run
/effort(orclaude --effort ultracode). - See
ultracodeoffered alongsidelow / medium / high / xhigh / max, abovemax. - Select
ultracode. Observe: it runs atxhigh(status line showsxhigh), adds workflow orchestration, and reverts toxhighin a new session — whilemaxwould have persisted. Nothing at selection time discloses any of it.
Is this a regression?
No — a design/labeling issue present since ultracode was added to the effort selector.
Claude Code Version
v2.1.183
Platform
Claude Code CLI (native install). The same labeling surfaces appear in the desktop app / VS Code per #66083, #66860, #68754.
Operating System
Windows 11
Terminal/Shell
PowerShell / Windows Terminal
---
Related: #65156, #66860, #68860, #63468, #69068, #66083, #68754
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗