[BUG] Model picker Ultracode selection reports effort.level "xhigh" to statusline, while /effort ultracode reports "ultracode"

Status Fixed / completed
Reported on v2.1.210
Maintainer reply ✓ Yes — bcherny
Activity 3 comments · opened Jul 15, 2026 · closed Aug 21, 2026
💡 Likely answer: A maintainer (bcherny, collaborator) responded on this thread — see the highlighted reply below.

Environment

  • Claude Code: 2.1.210
  • OS: macOS 26.5.2 (arm64), Terminal TUI
  • Statusline: custom statusLine command that renders effort.level from the stdin JSON verbatim, with "refreshInterval": 1

Summary

Selecting Ultracode in the model picker (Option+P) and selecting ultracode in the /effort menu report different effort.level values to the statusline JSON:

| How ultracode is set | effort.level reported to statusline |
|---|---|
| /effort → ultracode | "ultracode" |
| Option+P picker → Ultracode slider position → Enter | "xhigh" |

Every other effort level (low/medium/high/xhigh/max) chosen via the picker + Enter is reflected in effort.level immediately and correctly. Only Ultracode degrades to "xhigh".

Steps to reproduce

  1. Configure a statusline command that prints .effort.level from stdin JSON (plus "refreshInterval": 1 to see updates quickly).
  2. Run /effort and select ultracode → statusline shows ultracode (the stdin JSON contains "effort":{"level":"ultracode"}).
  3. Open the model picker (Option+P), move the effort slider to Ultracode (✦ Ultracode effort ←/→ to adjust), press Enter → statusline shows xhigh.
  4. For comparison, pick any non-Ultracode level in the picker + Enter → statusline updates to that exact level immediately.

Expected

Both entry points set the same mode, so they should report the same effort.level value (either both "ultracode", or both "xhigh" plus a separate documented flag for the ultracode/workflow state).

Actual

The reported value depends on which UI path was used (see table above). This makes it impossible for a statusline script to reliably indicate whether ultracode is active.

Additional observations

  • The full effort object in the statusline JSON contains only {"level": ...} — captured across 15 concurrent live sessions (2.1.210); no separate ultracode flag is surfaced that could disambiguate.
  • After picking Ultracode in the picker and pressing Enter, the persisted default in settings.json is written as "effortLevel": "xhigh" — consistent with the ultracode flag being dropped somewhere on the picker path.
  • Docs contradiction: statusline.md currently states "Ultracode is not a distinct level and reports as xhigh" — that matches the picker path but contradicts the observed /effort behavior on 2.1.210. Either the docs are stale (if "ultracode" is now an intended distinct reported value) or the picker path loses the flag (if /effort behavior is the intended one).
  • Open question for maintainers: does selecting Ultracode via the picker actually enable workflow orchestration for the current session, or does it silently set plain xhigh? If the latter, this is a functional bug (users believe ultracode is active when it is not), not just an inconsistent status report.

Related issues

  • #69653 — /effort presents ultracode as a top tier while it is xhigh + workflow flag
  • #68754 (closed) — VS Code effort slider not reflecting persisted ultracode
  • #66476 — /clear drops ultracode while the indicator still shows it
  • #75927 — ultracode dropped from --effort during agent dispatch serialization

View original on GitHub ↗

3 Comments

laggarcia · 1 month ago

Could not reproduce on v2.1.215 (Linux/Fedora 44): /effort ultracode confirms with "xhigh + dynamic workflow orchestration", but the statusline stdin JSON receives effort.level: "xhigh" — same as via the /model picker. So on this platform/version both paths collapse to "xhigh", matching the documented behavior; the "ultracode" leak reported here may be macOS-specific or version-specific (reported before 2.1.215). Cross-referencing #69068, which asks for the state to be exposed deliberately.

laggarcia · 1 month ago

Even though I was not able to reproduce the difference in /effort and JSON content, it is indeed confusing that, apparently, there is no way to confirm in the status line that ultracode has been selected. That said, at least to me, ultracode appears highlighted between the window content and the status line when using fullscreen in the CLI.

bcherny collaborator · 9 days ago

I tried to reproduce this on the released CLI 2.1.233 on Linux, using a custom statusline command that logs the raw effort object from stdin JSON with "refreshInterval": 1.

On 2.1.233 both entry points now report the same value: /effort → ultracode and the model picker's Ultracode slider position both report effort.level: "xhigh" to the statusline, while the ultracode session indicator shows in the UI. The per-path inconsistency you saw on 2.1.210 ("ultracode" from one path, "xhigh" from the other) no longer occurs — behavior now matches the documented model that ultracode reports as xhigh in the statusline.

This appears to have been resolved in a recent release (changelog), so I'm closing this. Note the effort object still carries only level — a distinct flag for "ultracode active" that statusline scripts could read would be a feature request (see #69653). If you still see mismatched values between the two paths on 2.1.233 or later, please comment and we can reopen.

🤖 Generated with Claude Code