Skip to content

Homebrew: claude update advertises version not available in stable cask #41194

Description

@wrburgess

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:packagingbugSomething isn't workinghas reproHas detailed reproduction stepsplatform:macosIssue specifically occurs on macOS

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions