On This Page8 sections
Key Takeaways
- Claude Opus 5.5 requires Claude Code 2.1.280 or newer. Anthropic added
claude-opus-5-5in Claude Code 2.1.280 and made it the default Opus model. - If Claude Code shows
Opus 5.5 (disabled) — Update to 2.1.280+ to use Opus 5.5, the first thing to check is the local CLI version withclaude --version. - Homebrew can report that Claude Code is fully up to date even when it is behind Anthropic's newest upstream release. As of September 23, 2026, Homebrew's
claude-codecask is 2.1.267 andclaude-code@latestis 2.1.278, both below the 2.1.280 requirement. - Anthropic's npm package has already reached 2.1.280, so switching from the lagging Homebrew cask to the official npm package is a practical fix when immediate Opus 5.5 access is needed.
- If the version is already 2.1.280+ but Opus 5.5 is still unavailable, check for multiple
claudebinaries, shell path caching, organization model restrictions, or a gateway/provider that has not exposed the model yet.
Why Does Claude Code Say Opus 5.5 Is Disabled?
The message is primarily a client-version compatibility warning.
Claude Code 2.1.280 added the model entry claude-opus-5-5. Anthropic's changelog also identifies Opus 5.5 as the new default Opus model and lists a 1M-token context window, API pricing of $4 per million input tokens and $20 per million output tokens, plus $0.20 per million cache-read tokens.
That means an older Claude Code build can know that a newer model exists while still refusing to activate it because the local client does not contain the required model support.
A typical symptom looks like this:
Opus 5.5 (disabled)
Update to 2.1.280+ to use Opus 5.5The important part is 2.1.280+. This is not the same as a generic subscription error. The local executable must first satisfy the minimum client version.
Check it with:
claude --versionIf the result is:
2.1.267 (Claude Code)then the disabled state is expected.
Why brew upgrade claude-code Can Say Nothing Needs Updating
This is the confusing part.
A package manager only knows about the newest version available inside its own repository or channel. It does not necessarily track the newest upstream release in real time.
As of September 23, 2026, Homebrew reports:
claude-code: 2.1.267claude-code@latest: 2.1.278
Meanwhile, Anthropic has published Claude Code 2.1.280, which is the release that adds Opus 5.5.
So this output is internally consistent:
Warning: Not upgrading claude-code, the latest version is already installedHomebrew is effectively saying:
The newest version currently available through this Homebrew cask is already installed.
It is not saying:
No newer Claude Code release exists upstream.
This distinction matters whenever a newly launched model requires a same-day or near-same-day CLI update.
The Fastest Fix on macOS
First confirm the installed version and the binary being executed:
claude --version
which -a claude
type -a claudeIf the active version is below 2.1.280 and it came from Homebrew, one clean approach is to remove the lagging cask and install Anthropic's official npm package.
brew uninstall --cask claude-code
npm install -g @anthropic-ai/claude-code@latest
hash -r
claude --versionAnthropic's setup documentation supports global npm installation and specifically warns against using sudo npm install -g, because doing so can create permission and security problems. The documentation also recommends claude doctor for installation diagnostics.
After installation, the version should be at least:
2.1.280 (Claude Code)Then launch Claude Code again:
claudeInside the session, open the model selector:
/modelClaude Code's command documentation confirms that /model is the interactive model-selection command.
Verify npm Before Changing Anything
Developers who want to avoid changing installation methods blindly can first inspect the npm version:
npm view @anthropic-ai/claude-code versionAt the time of writing, the package has reached 2.1.280.
Then compare it with the local binary:
claude --versionIf npm reports 2.1.280 or newer but Claude Code reports 2.1.267, the problem is no longer model availability. It is an installation or path issue.
Check for Multiple Claude Code Installations
This is one of the most common reasons an upgrade appears to succeed while claude --version remains unchanged.
Run:
which -a claude
type -a claudeOn macOS, several paths may appear, for example:
/opt/homebrew/bin/claude
/Users/yourname/.nvm/versions/node/vXX.X.X/bin/claude
/Users/yourname/.local/bin/claudeThat means more than one Claude Code executable is installed.
Typical sources include:
- Homebrew
- npm installed through the system Node.js
- npm installed through
nvm - Anthropic's native/local installer
- an older binary left in
~/.local/bin
The shell executes the first matching binary in PATH. Updating one copy does not automatically update the others.
Use this sequence to identify the active one:
command -v claude
which -a claude
claude --versionIf an old Homebrew binary appears before a newer npm binary, either remove the old installation or correct the PATH order.
Clear the Shell Command Cache
Zsh and Bash can cache command locations.
After changing installations, run:
hash -rFor Zsh, reopening the terminal is also an easy way to eliminate stale command resolution.
Then verify again:
which -a claude
claude --versionThis small step prevents a surprisingly common false negative where the new package is installed correctly but the current shell still resolves an older command path.
Use claude doctor to Diagnose the Installation
Anthropic provides an installation diagnostic command:
claude doctorThe official setup documentation recommends it for checking the installation type and troubleshooting update problems.
This is particularly useful when Claude Code has been installed through more than one method over time.
A clean troubleshooting order is:
- Check
claude --version. - Check
which -a claude. - Run
claude doctor. - Upgrade or replace the outdated installation.
- Clear the shell command cache.
- Verify the version again.
- Reopen
/model.
What About claude update?
Claude Code supports:
claude updateAnthropic documents this as the manual update command.
It is worth trying first because it is simple and preserves the current setup.
However, package-manager installations can still depend on the package source having the new version available. Claude Code also exposes package-manager-specific update behavior for Homebrew and WinGet installations.
If Homebrew's available cask is still below 2.1.280, repeatedly running brew upgrade claude-code will not create a version that Homebrew has not published yet.
That is why changing to the current official npm package can be the fastest workaround during a release-window mismatch.
Should You Use claude-code@latest Instead?
Normally, this is a reasonable option:
brew uninstall --cask claude-code
brew install --cask claude-code@latestBut at the time of writing, Homebrew lists claude-code@latest as 2.1.278, while Opus 5.5 requires 2.1.280+.
So moving from Homebrew's 2.1.267 stable cask to its 2.1.278 latest cask may make the CLI newer, but it still does not satisfy the Opus 5.5 requirement.
This is a time-sensitive detail. Homebrew may catch up shortly after publication, so always recheck the current package version before switching installation methods.
Why the Model Can Appear in /model Before You Can Use It
A disabled model entry can seem contradictory: if Claude Code is too old, why does it know Opus 5.5 exists?
Modern developer tools often combine local capabilities with server-delivered metadata. A client can therefore display information about a newly available model while still gating activation behind a minimum local version.
The practical model is:
Claude service exposes a new model
↓
Claude Code displays the model entry
↓
Local client version is checked
↓
Client is older than 2.1.280
↓
Opus 5.5 remains disabledThe 2.1.280 changelog confirms that claude-opus-5-5 itself was added in that release, which explains why the minimum-version gate matters.
What Changed in Claude Code 2.1.280?
The most relevant change is straightforward:
Claude Opus 5.5 was added to Claude Code as claude-opus-5-5.
Anthropic also made it the default Opus model. The same changelog records a 1M context window and the model's token pricing.
For developers, the larger context window can matter when Claude Code needs to reason across:
- large monorepos
- long debugging sessions
- multi-file architectural refactors
- extensive logs and test output
- large specifications or migration plans
A larger context window does not mean every session should consume one million tokens. It means the client can preserve substantially more relevant working context before compaction becomes necessary.
Updated to 2.1.280+ but Opus 5.5 Is Still Disabled?
Version compatibility is necessary, but it may not be the only requirement.
Check these possibilities.
1. The wrong binary is still running
which -a claude
claude --versionIf multiple versions appear, resolve the path conflict.
2. The terminal cached the old command
hash -r
claude --version3. Claude Code needs to be restarted
Close the current session and launch a new one after upgrading.
4. The model selector is using managed configuration
Claude Code supports organization-level model controls, custom model mappings, gateways, and an availableModels allowlist. Gateway-discovered models can also be filtered by that allowlist.
If the CLI version is correct but the model is absent or unavailable in a managed environment, check the organization's Claude Code configuration rather than reinstalling repeatedly.
5. A third-party provider or gateway is involved
Claude Code can route through custom Anthropic-compatible gateways and cloud-provider configurations. A local Claude Code update cannot force an external provider or internal gateway to expose a model it does not yet support.
For direct Anthropic users, this layer is usually simpler. For enterprise environments, model rollout can involve both the Claude Code client and the configured provider.
The Permission Wildcard Warning Is a Separate Issue
Another message can appear when starting Claude Code:
Permission allow rule (.claude/settings.local.json) ... has a wildcard before the rest of the command ...This warning is not what disables Opus 5.5.
Claude Code reads project-local configuration from .claude/settings.local.json, including permission rules. Anthropic documents settings.local.json as a project-only local override file, and /permissions can be used to review permission rules interactively.
The warning means an allow rule is broad enough that extra command options could potentially match without another permission prompt.
Review the rule with:
/permissionsor inspect:
.claude/settings.local.jsonThe safe fix is to narrow or remove the over-broad allow rule rather than suppress the warning.
This matters even more when Claude Code is started with:
claude --dangerously-skip-permissionsAnthropic's CLI documentation describes --dangerously-skip-permissions as bypassing permission prompts and explicitly says to use it with caution.
Updating to Opus 5.5 does not require this flag.
Recommended Clean Upgrade Workflow
For a Mac currently running Claude Code 2.1.267 from Homebrew, this is a concise migration path:
claude --version
which -a claude
brew uninstall --cask claude-code
npm install -g @anthropic-ai/claude-code@latest
hash -r
which -a claude
claude --version
claude doctorThen start a fresh session:
claudeAnd select the model:
/modelThe target is simple: the executable actually being launched must report Claude Code 2.1.280 or newer.
Avoid assuming that an installer succeeded merely because it returned without an error. Always verify the executable path and version afterward.
Common Mistakes
- Running
brew upgrade claude-coderepeatedly. If Homebrew has not published 2.1.280 yet, nothing changes. - Installing npm 2.1.280 without removing or checking the Homebrew binary. The older binary may still come first in
PATH. - Using
sudo npm install -g. Anthropic's setup documentation advises against it. - Assuming the permission-rule warning caused the model issue. It is a separate configuration warning.
- Skipping
claude --versionafter upgrading. This makes it easy to miss a stale executable. - Assuming 2.1.280 guarantees access in every enterprise setup. Managed model allowlists and external gateways can independently affect model availability.
Quick Diagnostic Checklist
Run:
claude --version
which -a claude
npm view @anthropic-ai/claude-code version
claude doctorThen interpret the results:
- Claude Code < 2.1.280: upgrade the client.
- npm >= 2.1.280 but local Claude < 2.1.280: likely an installation or
PATHconflict. - Local Claude >= 2.1.280 but model still unavailable: restart Claude Code and check
/model, managed model policy, gateway configuration, and account/provider availability. - Homebrew says latest but local version is 2.1.267: Homebrew's cask is current for its channel but behind upstream.
- A permission wildcard warning appears: fix the permission rule separately; it is not the Opus 5.5 version gate.
Conclusion
The Opus 5.5 (disabled) — Update to 2.1.280+ to use Opus 5.5 message is usually straightforward: the installed Claude Code binary is too old for the new model.
The confusing case is macOS users who installed Claude Code through Homebrew. On September 23, 2026, Homebrew's stable claude-code cask is still 2.1.267 and its claude-code@latest cask is 2.1.278, while Anthropic has already published 2.1.280 with Opus 5.5 support.
For immediate access, verify the current binary, move to an installation source that provides 2.1.280+, clear the shell command cache, and confirm the active executable with claude --version.
The final check is not whether an installer says it succeeded. The final check is whether the Claude Code binary that actually runs is 2.1.280 or newer and Opus 5.5 is selectable from /model.
Continue Reading
More articles connected to the same themes, protocols, and tools.
Referenced Tools
Browse entries that are adjacent to the topics covered in this article.




