Homebrew: claude update advertises version not available in stable cask
Resolved 💬 19 comments Opened Mar 30, 2026 by wrburgess Closed Apr 2, 2026
Summary
claude update reports a newer version is available and instructs users to run brew upgrade claude-code, but the Homebrew cask formula is pinned to an older stable version. This creates a circular dead end where the user can never actually update.
Steps to Reproduce
- Install Claude Code via Homebrew (
brew install claude-code) — installs 2.1.81 - Set
autoUpdaterChannelto"latest"in~/.claude/settings.json - Run
claude update
Output:
Current version: 2.1.81
Checking for updates to latest version...
Claude is managed by Homebrew.
Update available: 2.1.81 → 2.1.87
To update, run:
brew upgrade claude-code
- Run
brew upgrade claude-code
Output:
Warning: Not upgrading claude-code, the latest version is already installed
Root Cause
- The Homebrew cask tracks the stable release channel (confirmed via
livecheckURL:claude-code-releases/stablewhich returns2.1.81) - The cask formula on GitHub HEAD also says
version "2.1.81" claude updatechecks the latest channel (per user setting), finds 2.1.87, but then tells the user to usebrew upgradewhich can only install what the stable cask providesbrew update --force,brew fetch --force, re-tappinghomebrew/cask, and clearing the API cache all confirm 2.1.81 is the correct stable version
Additional Context
- A second machine (MacBook) with the same Homebrew cask installed shows v2.1.87 — likely because the in-app auto-updater overwrote the binary in-place, which is inconsistent with Homebrew's package management
- The cask's own caveats acknowledge this tension: "This cask tracks the stable release channel. In-app update notifications default to the latest channel regardless."
Expected Behavior
Either:
claude updateshould respect that a Homebrew-managed installation can only update via the stable channel, and not advertise "latest" channel versions with abrew upgradeinstruction that can't fulfill them, OR- The in-app auto-updater should work consistently for Homebrew installations when
autoUpdaterChannelis set to"latest"(updating the binary in-place), OR - The Homebrew cask should track the latest channel instead of stable
Environment
- macOS (Darwin 25.4.0, Apple Silicon)
- Homebrew 4.x
- Claude Code 2.1.81 (via
brew install claude-code) autoUpdaterChannel: "latest"in settings
— Claude Code (Opus 4.6)
19 Comments
In my case it actually downgraded the Claude-code version:
To get the newer version back you can do
brew install claude-code@latest(uninstall old version first)This doesn't really make any sense. I've been using brew-managed claude-code for months and upgrading daily. Only today did it revert from 2.1.85 to 2.1.81
I have a Macbook sitting on same network that upgraded just fine.
Seems like they want to distinguish between the stable and latest release, which explains why installing just
claude-codemaps to 2.1.81 andclaude-code@latestto 2.1.87.Use
brew uninstall claude-codeto uninstall first, thenbrew install claude-code@latestThat worked, but it's rather jarring that the behavior just started out of nowhere.
Why is this topic closed? The incoherent behavior is still present (we still have a warning saying that we can brew upgrade, which wont upgrade). Ok you proposed a workaround if we want to install the latest version, but the original issue is still present.
It occurred in my case as well and needs to be raised to the Claude team.
I've re-opened since other folks are having the issue.
Same issue here:
v2.1.81and Claude CLI tells me that there is a newer versionv2.1.90and wants me to upgrade via homebrew:Running the
brew upgrade claude-codecommand returns:Warning: Not upgrading claude-code, the latest version is already installedThe warning about a new version of Claude Code on the stable release channel is due to the wrong update channel being set by default in the in-app update notifications. There is info about it at https://formulae.brew.sh/cask/claude-code
default to the latest channel regardless. To align notifications with this
cask, set the auto-update channel to "stable" via /config or in
~/.claude/settings.json:
https://code.claude.com/docs/en/setup#configure-release-channel
I mean, come on. Just fix this pls.
Is this a Claude issue or a brew issue?
"completed", is an interesting assessment/status.
At the time of my comment, Brew current version is still on 2.1.81, Claude code 2.1.81 itself is still reporting that an update is available.
I feel the same, Im not sure what the resolution is here, its closing without explanation or resolution.
Just run this on mac:
curl -fsSL https://claude.ai/install.sh | bash
Dont have to uninstall the existing version
<img width="566" height="234" alt="Image" src="https://github.com/user-attachments/assets/e692e867-9770-49df-9cff-da6771258a06" />
This installs via a direct script rather than through Homebrew. I think the request here is specifically for a Homebrew package
It's also kind of BS that this has been closed.
"autoUpdatesChannel": "stable"in my settings.json.brew upgrade claude-codesays the latest is installed.claude updatesays that 2.1.85 is available, but it's managed by homebrew so I need to upgrade via homebrew.This is clearly a bug in the homebrew implementation.
This should be reopened as the behavior in question is still happening.
When running
brew upgrade claude-code,2.1.85is the latest version it upgrades to, not2.1.92which is actually the most recent.I understand that Homebrew's
claude-codetracks the stable version, which is considered to be2.1.85at this moment (https://formulae.brew.sh/cask/claude-code), but the warning to update still remains.This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.