buo/homebrew-cask-upgrade
50.8
Weak · 19 September 2026
990
lines of production code
Ruby
primary language
1
measurement over time
What this system is
This system is a command-line utility for managing Homebrew Cask applications, designed to streamline software upgrades on macOS. It provides capabilities for upgrading casks, pinning specific applications to prevent updates, and checking for outdated versions without installing them. The tool supports both interactive and non-interactive modes, allowing users to selectively upgrade applications or run automated reports.
Features
Introduce cask pinning and livecheck commands
This change adds new capabilities to manage cask update preferences and check for updates. Users can now pin specific casks to prevent them from being upgraded, with commands to add, list, remove, export, and load pinned casks from a file. Additionally, a new livecheck command allows users to check for outdated casks without performing an upgrade, and the upgrade command now supports interactive mode where users can pin apps during the update process.
lib/bcu/command · high confidence
New \`brew cu\` command with pinning and interactive mode
Users can now use the \brew cu\ command to upgrade Homebrew Cask applications, featuring a new interactive mode for selective upgrades, the ability to pin specific casks to prevent automatic updates, and options to control Homebrew updates, cleanup, and verbosity. A companion non-interactive wrapper script is also provided to facilitate standard \brew cask upgrade\ workflows.
cmd · high confidence
Behavioural changes
Improved cask resolution and tabular output formatting
The tool now manually loads casks to avoid iteration errors when retrieving installed apps, ensuring more reliable detection of outdated software. Output is presented in a responsive, colorized table that shortens long version strings and conditionally displays detailed information (such as full versions and URLs) only when the verbose flag is enabled, improving readability on smaller terminals.
lib/extend · high confidence
Migrate from legacy Hbc API to Homebrew External Command support
The tool has been rewritten to utilize Homebrew's External Command support, replacing the previous standalone script (lib/brew-cask-upgrade.rb) with a new entry point (lib/bcu.rb). This change removes the direct dependency on the legacy 'hbc' library and its associated vendor forks, instead loading Homebrew's internal cask libraries via the load path and delegating execution to specific command modules (e.g., Upgrade, Pin, Livecheck) based on user arguments.
lib · high confidence
New option parsing and command structure for Homebrew Cask Updater
The tool now uses a dedicated options parser (\lib/bcu/options.rb\) to handle command-line arguments, introducing support for new capabilities such as pinning/unpinning casks (\--pin\, \--unpin\, \--pinned\), including Mac App Store applications (\--include-mas\), and running in report-only mode (\--report-only\). Existing behaviors are adjusted to support flags like \--cleanup\, \--no-brew-update\, \--no-quarantine\, and interactive installation, while deprecated short options for pinning (\-p\, \-u\) are blocked in favor of the new command-based syntax.
lib/bcu · high confidence
Shell script wrapper for Homebrew cask-upgrade
The bin/brew-cask-upgrade script has been rewritten from a Ruby implementation to a shell script that invokes the Homebrew cask-upgrade command. It now checks for the existence of the brew executable and attempts to run the upgrade; if the command fails, it automatically taps the buo/cask-upgrade repository and retries the upgrade operation.
bin · high confidence
Dependencies
Update to version 2.0.2 with Ruby 4.0 requirement
The brew-cask-upgrade gem has been updated to version 2.0.2, which now requires Ruby version 4.0.0 or higher. This change also includes minor metadata updates such as adding a frozen string literal directive and specifying multi-factor authentication requirements for RubyGems.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 51.
Lenses
- Code Health 96
- Architecture 69
- Maturity 52
- Readiness 36
- Security 78
Changes since last survey
- 300 commits — 246 feature/other, 54 fixes
By area
- lib/bcu — 78 commits
- .github/workflows — 68 commits
- (root) — 62 commits
- lib/bcu.rb — 45 commits
- lib/extend — 29 commits
- cmd/brew-cu.rb — 8 commits
- (repo) — 6 commits
- .github/dependabot.yml — 3 commits
- cmd/brewcask-upgrade — 1 commit
Notable commits
- fix: Attempt to fix #205
- fix: CI: pin load - fix execution dir for comparison
- fix: Fix "can't modify frozen Array" crash on brew update
- fix: Fix 'invalid characters' error by filtering hidden directories
- fix: Fix CI for MacOS 15
- fix: Fix RuboCop style violations
- fix: Fix RuboCop violation: Use guard clause in cleanup method
- fix: Fix Rubocop errors
- fix: Fix Style/PartitionInsteadOfDoubleSelect: use partition instead of select/reject
- fix: Fix pinned command
- fix: Fix brew cu --help mangling glob asterisks
- fix: Fix call to deleted method
- fix: Fix casks from third-party taps being resolved against homebrew/cask
- fix: Fix code style violation
- fix: Fix code style violations
- fix: Fix codestyle
- fix: Fix deprecation notice
- fix: Fix empty app selection cases
- fix: Fix eror rescue
- fix: Fix error msg during cleanup
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
buo/homebrew-cask-upgrade was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 38f5e9898c83991accab3a70770c0defcb164c9f — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.