Update nag never clears on Homebrew-cask installs when npm release is ahead of the cask

Status Open
Reported on v2.1.221
Maintainer reply None cached
Activity 1 comment · opened Aug 12, 2026

Bug: "Update available" nag never clears on Homebrew-cask installs when npm release is ahead of the cask

Summary

After running brew upgrade claude-code and restarting the CLI, Claude Code still prints Update available! Run: brew upgrade claude-code even though Homebrew reports the cask is fully up to date. The update checker appears to compare the installed version against the latest npm (@anthropic-ai/claude-code) release regardless of install method, instead of checking the channel the binary was actually installed from. Since the Homebrew cask lags behind npm releases, this produces a persistent, unfixable nag for cask/brew users whenever the two channels are out of sync.

Environment

  • OS: macOS (Darwin 25.6.0)
  • Install method: Homebrew cask (brew install --cask claude-code)
  • claude --version: 2.1.221
  • brew list --cask --versions claude-code: 2.1.221
  • brew outdated --cask claude-code: (empty — brew considers it current)
  • npm view @anthropic-ai/claude-code version: 2.1.229

Steps to reproduce

  1. Install Claude Code via brew install --cask claude-code.
  2. Wait until the npm registry publishes a newer version than the current Homebrew cask release (a normal, recurring lag between the two release channels).
  3. Run claude — see Update available! Run: brew upgrade claude-code.
  4. Run brew update && brew upgrade claude-code — brew reports the cask is already current (2.1.221 in this case), because Homebrew's cask hasn't been bumped to the newer npm version (2.1.229) yet.
  5. Restart the claude CLI session — the same "Update available" message still appears.

Expected behavior

  • The update check should compare against the version available through the same channel the binary was installed from (Homebrew cask vs. npm), not unconditionally against npm's latest.
  • Alternatively, if checking npm's latest is intentional, the suggested remediation command should not tell cask users to run brew upgrade when there is nothing newer for brew to install — the message should acknowledge the cask is current and that the newer build is pending in Homebrew, or point users to npm install -g @anthropic-ai/claude-code as an alternative.

Actual behavior

  • The nag persists indefinitely for Homebrew-cask users whenever npm is ahead of the cask, with no action the user can take via brew upgrade to resolve it, since Homebrew already reports the package as current.

Suggested fix

Detect install channel (e.g., by resolving the binary path / checking for the Homebrew Caskroom prefix) and check version freshness against that channel's registry, or track "latest available via your install method" separately from "latest published overall" so the CTA matches an action the user can actually take.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗