Claude Sonnet 5 Not Showing in Claude Code? Here’s the Fix (July 2026)

Last updated: July 4, 2026 — tested on Windows 11, updating Claude Code v2.1.179 → v2.1.201

Claude Sonnet 5 launched on June 30, 2026 and became the default model in Claude Code — but if your /model picker still tops out at Sonnet 4.6, you’re not alone. I hit exactly this today: my CLI was on v2.1.179, and Sonnet 5 simply wasn’t in the list. Here’s the fix, with screenshots from my actual terminal, including one trap that almost fooled me.

TL;DR: Update to Claude Code v2.1.197 or later (claude update), then restart your terminal — an already-open session keeps running the old version even after updating. If the picker labels it “custom model” on some versions, /model claude-sonnet-5 works anyway.

Why Sonnet 5 isn’t showing up

Three causes, in order of likelihood:

  1. Your CLI is older than v2.1.197. Sonnet 5 support shipped in 2.1.197 on June 30. Mine was 2.1.179 — close, but not enough.
  2. You updated but didn’t restart the terminal. The running session keeps the old binary in memory (more on this below — it’s sneaky).
  3. You’re on 2.1.197+ but hit the “custom model” labeling bug (issue #72692) — the CLI accepts Sonnet 5 but doesn’t display it as a named preset.

Step 1: Check what you’re actually running

claude --version

Anything below 2.1.197 can’t show Sonnet 5. Here’s what my /model picker looked like on 2.1.179 — Opus 4.8, Fable 5, Sonnet 4.6, Sonnet 4.6 (1M), Haiku 4.5. No Sonnet 5 anywhere:

Claude Code 2.1.179 model picker showing Sonnet 4.6 but no Sonnet 5

Step 2: Update — and don’t fall for the trap I fell for

Run:

claude update

Here’s where it got interesting. My update said:

Current version: 2.1.201 — Claude Code is up to date (2.1.201)

…while my session banner clearly said v2.1.179. Both were true. The native installer had already auto-updated the binary on disk in the background — but my open terminal was still running the old version from memory.

claude update reporting 2.1.201 is installed while the session was still on 2.1.179

The fix is stupidly simple: close the terminal completely and open a new one.

claude --version
new terminal showing claude --version 2.1.201 after restart

If a new terminal still shows the old version, you likely have two copies installed (npm + native). Run where.exe claude (Windows) or which claude (macOS/Linux) and remove the stale one — the native install lives at ~/.local/bin/claude.

Update commands for other install methods:

  • npm: npm install -g @anthropic-ai/claude-code@latest (not npm update -g — the docs warn it may not move you to newest)
  • Homebrew: brew upgrade claude-code (stable cask runs ~a week behind)
  • winget: winget upgrade Anthropic.ClaudeCode

Also check nothing is pinning you back: the DISABLE_AUTOUPDATER env var or "autoUpdatesChannel": "stable" in settings will keep you behind.

Step 3: Confirm Sonnet 5 is there

Start a new session and type /model. On 2.1.201, here’s the updated picker:

Claude Code 2.1.201 model picker with Sonnet 5 listed as the Sonnet preset

Two things worth noticing in the new list:

  • Sonnet now means Sonnet 5 (“Efficient for routine tasks”).
  • The separate “Sonnet (1M context)” entry is gone. That’s not a bug — Sonnet 5’s 1M-token context window is native. There’s no 200K variant, no [1m] suffix to select, and no usage credits required on any plan. The old 4.6-era distinction just stopped existing.

Select it and you’ll get the confirmation:

Set model to Sonnet 5 and saved as your default for new sessions
Sonnet 5 set as default and generating a Python function in a real session

Still seeing “custom model” instead of a named preset?

On some builds (reported on 2.1.185, issue #72692, still open), the CLI accepts Sonnet 5 but the picker displays it as “custom model” instead of a named entry — while the VS Code extension shows it properly. It’s cosmetic. The workaround from the issue thread:

/model claude-sonnet-5

The CLI confirms with “Kept model as claude-sonnet-5” and you’re running Sonnet 5 regardless of the label. The same pattern happened at Opus 4.8’s launch (#63456) — the CLI’s preset list ships inside the binary, so it can lag model launches.

Set it permanently

Four ways, in order of precedence:

Launch flag (one session):

claude --model claude-sonnet-5

Environment variable:

export ANTHROPIC_MODEL=claude-sonnet-5

settings.json (persistent):

{
  "model": "claude-sonnet-5"
}

Or just the /model picker — since v2.1.153, pressing Enter saves your choice as the default for new sessions (‘s’ keeps it session-only).

The exact model ID is claude-sonnet-5 — no date suffix. Aliases sonnet-5 and plain sonnet also resolve to it. One caveat: if your organization enforces a default model, it can override your personal settings — you’ll see “Org default” in the picker.

Does Sonnet 5 burn your limits differently?

It’s cheaper per token than Opus 4.8 — $2/$10 per million tokens promotional through August 31, 2026, then $3/$15, versus $5/$25 for Opus — and Anthropic says rate limits were raised for it. One open bug to watch on Max plans: issue #57050 reports Sonnet-only usage draining both the “Sonnet only” and “All models” weekly pools. If your all-models bar moves on pure-Sonnet days, that’s the one.

For the full picture of Claude Code’s 5-hour and weekly limits — including what changes on July 13 — see our Claude Code usage limits guide.

FAQ

Is Sonnet 5 the default now? Yes — v2.1.197 made it the default in Claude Code. If you’d pinned a different model in settings.json, your pin wins.

Sonnet 5 shows in the picker but I can’t select it. Update anyway — early reports noted it being visible but unusable until 2.1.197+.

Do I need to enable the 1M context window? No. It’s native and always on for Sonnet 5, on every plan.

Does /model sonnet-5 work too? Yes — it’s an official alias for claude-sonnet-5.

WorkflowDen is an independent site, not affiliated with or endorsed by Anthropic, PBC. Every step in this post was run on my own machine — version numbers are visible in the screenshots.