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

  1. Install Claude Code via Homebrew (brew install claude-code) — installs 2.1.81
  2. Set autoUpdaterChannel to "latest" in ~/.claude/settings.json
  3. 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
  1. 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 livecheck URL: claude-code-releases/stable which returns 2.1.81)
  • The cask formula on GitHub HEAD also says version "2.1.81"
  • claude update checks the latest channel (per user setting), finds 2.1.87, but then tells the user to use brew upgrade which can only install what the stable cask provides
  • brew update --force, brew fetch --force, re-tapping homebrew/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:

  1. claude update should respect that a Homebrew-managed installation can only update via the stable channel, and not advertise "latest" channel versions with a brew upgrade instruction that can't fulfill them, OR
  2. The in-app auto-updater should work consistently for Homebrew installations when autoUpdaterChannel is set to "latest" (updating the binary in-place), OR
  3. 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)

View original on GitHub ↗

19 Comments

bartektartanus · 3 months ago

In my case it actually downgraded the Claude-code version:

==> Fetching downloads for: claude-code
✔︎ Cask claude-code (2.1.81)                                                                                                                                                                             Verified    193.3MB/193.3MB
==> Upgrading 1 outdated package:
claude-code 2.1.87 -> 2.1.81
==> Upgrading claude-code
  2.1.87 -> 2.1.81
Ahmad8864 · 3 months ago

To get the newer version back you can do brew install claude-code@latest (uninstall old version first)

wrburgess · 3 months ago
To get the newer version back you can do brew install claude-code@latest (uninstall old version first)
> brew install claude-code@latest
==> Fetching downloads for: claude-code@latest
Error: Cask 'claude-code@latest' conflicts with 'claude-code'.

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.

Ahmad8864 · 3 months ago
brew install claude-code@latest ==> Fetching downloads for: claude-code@latest Error: Cask 'claude-code@latest' conflicts with 'claude-code'. 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-code maps to 2.1.81 and claude-code@latest to 2.1.87.

Use brew uninstall claude-code to uninstall first, then brew install claude-code@latest

wrburgess · 3 months ago
Use brew uninstall claude-code to uninstall first, then brew install claude-code@latest

That worked, but it's rather jarring that the behavior just started out of nowhere.

Jufralice · 3 months ago

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.

krudo-taco · 3 months ago

It occurred in my case as well and needs to be raised to the Claude team.

wrburgess · 3 months ago

I've re-opened since other folks are having the issue.

SC-JBG · 3 months ago

Same issue here: v2.1.81 and Claude CLI tells me that there is a newer version v2.1.90 and wants me to upgrade via homebrew:

claude update
Current version: 2.1.81
Checking for updates to latest version...

Claude is managed by Homebrew.
Update available: 2.1.81 → 2.1.90

To update, run:
  brew upgrade claude-code

Running the brew upgrade claude-code command returns:

Warning: Not upgrading claude-code, the latest version is already installed

lexf · 3 months ago

The 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

This cask tracks the stable release channel. In-app update notifications

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

illutr0n · 3 months ago

I mean, come on. Just fix this pls.

c3foto · 3 months ago

Is this a Claude issue or a brew issue?

nbihan-mediware · 3 months ago

"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.

c3foto · 3 months ago
"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.

awariis · 3 months ago

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" />

Ahmad8864 · 3 months ago
Just run this on mac: curl -fsSL https://claude.ai/install.sh | bash Dont have to uninstall the existing version <img alt="Image" width="566" height="234" src="https://private-user-images.githubusercontent.com/161591187/573599449-e692e867-9770-49df-9cff-da6771258a06.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUyMzc5NTEsIm5iZiI6MTc3NTIzNzY1MSwicGF0aCI6Ii8xNjE1OTExODcvNTczNTk5NDQ5LWU2OTJlODY3LTk3NzAtNDlkZi05Y2ZmLWRhNjc3MTI1OGEwNi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNDAzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDQwM1QxNzM0MTFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03NmE4MDFlMTIzYzg1MzFiYThiZjM4NzE2NjU3OWUzZmY2NzI4Mjg1NGQ5ZjAzZDJmYjNiZDA3ZTYyODI3MWE4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.cvU7hxRP548X2QKILhkTBn4p0Xppvbj4607syi-m8tQ">

This installs via a direct script rather than through Homebrew. I think the request here is specifically for a Homebrew package

craigmiller160 · 3 months ago

It's also kind of BS that this has been closed.

  1. I'm on 2.1.84.
  2. The Claude Code terminal, when I open it, says there's an upgrade available, even after setting "autoUpdatesChannel": "stable" in my settings.json.
  3. brew upgrade claude-code says the latest is installed.
  4. 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.

bgdnandrew · 3 months ago

This should be reopened as the behavior in question is still happening.

When running brew upgrade claude-code, 2.1.85 is the latest version it upgrades to, not 2.1.92 which is actually the most recent.

I understand that Homebrew's claude-code tracks the stable version, which is considered to be 2.1.85 at this moment (https://formulae.brew.sh/cask/claude-code), but the warning to update still remains.

github-actions[bot] · 3 months ago

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.