Model picker shows duplicate "Opus 4.7" and "Opus 4.7 1M" entries that map to the same model
Summary
The model picker in Claude Code shows two separate entries — "Opus 4.7" and "Opus 4.7 1M" — even though they appear to map to the same underlying 1M-context model on the Max plan. The duplicate entry creates real confusion: I selected "Opus 4.7" expecting a 200K cap and was alarmed when the status bar showed /1.0M. I assumed the bar was buggy, when in fact the menu is the misleading surface.
Repro
- On a Max plan account, open the model picker (
/modelor the menu shortcut). - Observe two entries: "Opus 4.7" and "Opus 4.7 1M".
- Select plain "Opus 4.7" (no "1M" suffix).
- Look at the status bar: it shows the context denominator as
1.0M, not200k.
Expected: the picker either shows one entry, or two entries that actually differ.
Actual: two entries that appear to behave identically — the selection has no observable effect on the context window denominator.
Why this is confusing
The two surfaces seem to read from different sources that don't cross-check:
- The picker reflects a static list of model entries (which still contains both "Opus 4.7" and "Opus 4.7 1M").
- The status bar reflects the runtime
context_windowof the loaded model.
So the picker keeps suggesting a choice between two context sizes that no longer exists in practice. Users assume picking "Opus 4.7" caps them at 200K when it doesn't.
Related (closed) issues
This is adjacent to but distinct from:
- #49931 —
/contextshows 200k denominator instead of 1M on Max plan (closed COMPLETED 2026-04-17) - #36725 — Status line shows ~200k context remaining when using 1M context window model (closed COMPLETED 2026-03-20)
- #50716 — Opus 4.7 1M context window unreachable in VS Code extension (closed DUPLICATE 2026-04-24)
Those issues addressed the denominator display. The picker duplication itself wasn't fixed — it persists in 2.1.123.
Suggested fix (one of)
- Collapse the duplicate entry — show only "Opus 4.7" if both options point to the same 1M context window on the user's plan.
- Label clearly — if the two entries genuinely differ on some plans/regions, indicate that inline (e.g. "(same as Opus 4.7 on Max)" or grey out the redundant one).
- Make selection observable — if the menu choice does affect something (cost, cache TTL, anything), surface that in the picker UI so the choice has meaning.
Environment
- Plan: Max
- Claude Code: 2.1.123
- OS: macOS (Darwin 25.4.0)
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗