Patchly sits in the menu bar and scans every app in /Applications (plus /Applications/Utilities and ~/Applications), checking each one against the Mac App Store, Homebrew, or its own Sparkle update feed — whichever applies — and shows you which ones actually have an update waiting.
- macOS 26 (Tahoe) on Apple Silicon
Build from source:
git clone https://github.com/mberrishdev/Patchly.git
cd Patchly
open Patchly.xcodeproj # ⌘ROr headless:
xcodebuild -project Patchly.xcodeproj -scheme Patchly -configuration Debug buildRun the tests the same way CI does:
xcodebuild test -project Patchly.xcodeproj -scheme Patchly -destination 'platform=macOS'Or via Homebrew:
brew tap mberrishdev/patchly https://github.com/mberrishdev/Patchly
brew trust --tap mberrishdev/patchly
brew install --cask patchlyClick the menu bar icon to see the list. Apps with an update available sort to the top, with a badge count next to the icon so you don't even need to open it to know something's out of date. Click any app to reveal it in Finder. A manual Refresh button is always available; Patchly also refreshes automatically on a timer and whenever your Mac wakes from sleep.
Patchly reports update status — it does not install updates for you (yet). See CONTEXT.md for exactly why and how each app's status is determined.
Patchly/App/— composition root and app settingsPatchly/Scanner/— app discovery and the three-source update aggregatorPatchly/UpdateSources/— Mac App Store, Homebrew Cask, and Sparkle Feed checkersPatchly/Support/,Patchly/Persistence/,Patchly/State/,Patchly/UI/
CONTEXT.md is the domain doc — binding terminology and behavior.
Scaffold Xcode project + folder layoutdone- Scanner + all three Update Sources + Aggregator, unit-tested independently
- Cache-first UI with manual/auto Refresh
- One-click update actions per source