False positive 'Update available' banner when already on latest version
Status Fixed / completed
Reported on v2.1.92
Maintainer reply ✓ Yes — ashwin-ant
Workaround ✓ Mentioned in thread ↓
Activity 5 comments · opened Apr 16, 2026 · closed Apr 18, 2026
💡 Likely answer: A maintainer (ashwin-ant, collaborator)
responded on this thread — see the highlighted reply below.
Description
The status bar (bottom right) persistently shows "Update available! Run: brew upgrade claude-code" even though the installed version is already the latest.
Steps to Reproduce
- Install claude-code via Homebrew (
brew install claude-code) - Observe the "Update available" banner in the bottom-right of the Claude Code window
- Run
brew upgrade claude-code— reports already up to date - Run
brew reinstall claude-code— banner persists after restart
Environment
- Installed version: 2.1.92 (confirmed via
claude --version) - Homebrew cask version: 2.1.92 (confirmed via
brew info --json=v2 claude-code) brew outdated claude-code: returns nothing (no update available)- Platform: macOS (Darwin 24.6.0, Apple Silicon)
- Install method: Homebrew cask
Verification
All of the following confirm no update is actually available:
$ claude --version
2.1.92 (Claude Code)
$ brew info claude-code
==> claude-code (Claude Code): 2.1.92
Installed: 2.1.92
$ brew outdated claude-code
(no output)
Expected Behavior
The "Update available" banner should not appear when the installed version matches the latest available version.
Actual Behavior
The banner persists across restarts and even after brew reinstall. There is no local cache file to clear that resolves it. The update check mechanism appears to be out of sync with the actual latest version.
5 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
try
brew uninstall --cask claude-code
brew install --cask claude-code@latest
I dug into the binary to figure out what's actually going on here. The root cause is pretty straightforward.
There are two Homebrew casks:
claude-code(stable) andclaude-code@latest. ThePackageManagerAutoUpdaterdetects the Homebrew install by checking if the exec path contains/Caskroom/, then extracts the cask name from the path. Since the cask name isn'tclaude-code@latest, it defaults the update channel to"stable". It then fetches the latest version from npm'sstabledist-tag — currently 2.1.112 — and compares it against the installed 2.1.92. Naturally2.1.92 < 2.1.112, so it renders the "Update available" banner telling you tobrew upgrade claude-code.The problem is that
brew upgrade claude-codeonly has 2.1.92. The CLI never actually checks what version Homebrew has available — it just compares against npm and assumes brew can deliver it.A fix would be either:
homebrew, querybrew info(or the Homebrew API) for the actual available cask version, and only show the banner if that version is newer than what's installedbrew upgradewould be a no-op (i.e. installed version matches the cask version)For now, users on the stable cask can work around this by installing
claude-code@latestinstead:This was fixed in v2.1.101 — Homebrew installs now check the actual cask version on formulae.brew.sh, eliminating false 'Update available' banners. If you're still seeing this in the latest version, please comment with your version and repro and we'll reopen.
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.