A macOS menu bar app that monitors Homebrew updates and lets you upgrade packages directly from the tray.
Find a file
maxsoch 64b9bae564 surface brew failures instead of reporting a false all-up-to-date
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>
2026-07-09 19:28:09 +02:00
.claude/skills add dev tooling from /init: swiftlint, skills, gitignore; apply swiftformat 2026-07-06 21:07:17 +02:00
asset addind logo as asset 2026-06-30 17:47:46 +02:00
BrewBar surface brew failures instead of reporting a false all-up-to-date 2026-07-09 19:28:09 +02:00
BrewBar.xcodeproj re-release as 0.1: app is still pre-release quality 2026-07-09 18:52:17 +02:00
BrewBarTests fetch outdated as JSON; auto-upgrade only for matching package kinds 2026-07-06 22:27:37 +02:00
Casks re-release as 0.1: app is still pre-release quality 2026-07-09 18:52:17 +02:00
.gitignore add Homebrew cask so BrewBar installs via brew 2026-07-07 06:21:39 +02:00
.swiftlint.yml add dev tooling from /init: swiftlint, skills, gitignore; apply swiftformat 2026-07-06 21:07:17 +02:00
LICENSE Initial commit 2026-06-30 15:16:27 +00:00
README.md update README: features, brew install, build instructions 2026-07-07 06:41:18 +02:00
RELEASING.md re-release as 0.1: app is still pre-release quality 2026-07-09 18:52:17 +02:00

BrewBar's logo

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.