runBrew now reports the process exit status to its completion handler. refreshAll and fetchOutdated stop on failure and show "Check failed — see Logs": NWPathMonitor cannot see a network that is up but broken (captive portal, dead DNS, git host down), while the exit code of the brew command itself catches every failure mode. Upgrade commands keep ignoring the flag on purpose — a failed upgrade leaves the package in the outdated list at the next fetch, so the final state stays correct. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .claude/skills | ||
| asset | ||
| BrewBar | ||
| BrewBar.xcodeproj | ||
| BrewBarTests | ||
| Casks | ||
| .gitignore | ||
| .swiftlint.yml | ||
| LICENSE | ||
| README.md | ||
| RELEASING.md | ||
BrewBar
A macOS menu bar app that monitors Homebrew updates and lets you upgrade packages directly from the tray.
Features
- 🔄 Periodic update checks — configurable from 30 minutes to 24 hours, or any custom interval
- 📋 Outdated package list with versions (
wget 1.21 → 1.22), one-click single upgrades - 📦 Upgrade All, with an optional confirmation dialog
- 🤖 Optional auto-upgrade, separately configurable for formulae and casks
- 👀 Self-updating casks (
--greedy) included in checks, can be disabled - 🔔 Optional notification when new updates appear
- 🔢 Optional outdated count next to the menu bar icon
- 🔑 Native password dialog naming the app when an upgrade needs admin rights
- 📜 Log window with the full brew output
- ⚙️ Launch at login
Install
brew tap maxsoch/brewbar https://forgejo.socheleau.fr/maxsoch/BrewBar.git
brew install --cask maxsoch/brewbar/brewbar
xattr -dr com.apple.quarantine /Applications/BrewBar.app
The xattr line is needed because the app is not notarized — without it,
Gatekeeper blocks the app on any Mac that didn't build it. Repeat it after
upgrades.
Requires: macOS 13+ (Ventura) and Homebrew.
Build from source
git clone https://forgejo.socheleau.fr/maxsoch/BrewBar.git
cd BrewBar
xcodebuild -project BrewBar.xcodeproj -scheme BrewBar -configuration Release -destination "platform=macOS" build SYMROOT=build
open build/Release/BrewBar.app
No dependencies — plain AppKit, no SPM/CocoaPods/Carthage.
Releases are documented in RELEASING.md.