Sprocket
CI status, without the tabs. Sprocket is a tiny macOS menu bar app that watches GitHub Actions across every repo you can see — personal, org, collaborator. One glyph reflects the worst current state across every watched repo (failure → running → rate-limited → success); click for the full list; get notified the moment something turns red.
- Aggregate status — one menu bar glyph reflects the worst current state across every watched repo.
- Live polling — ETag-aware. Default 30 s refresh cadence; repos with running jobs poll every 15 s. Battery-aware backoff.
- Failure first — notified on transitions to failure, timed_out, action_required. Coalesced bursts.
- Bring your own OAuth app — your token never leaves your Mac. No shared rate-limit pool, no analytics.
"I tab into GitHub fifty times a day to check if CI passed. Sprocket replaces that with a glance at the menu bar."
The popover shows your signed-in account, watched repositories, current and recent runs, workflow status, branch/event context, authors, and GitHub rate limit usage.
Requirements
- macOS 26 (Tahoe) or newer
- Apple Silicon
- Swift 6.0 toolchain (Xcode 16+)
Install
Download Sprocket-<version>-macos.zip from the
latest GitHub release, unzip it, and move Sprocket.app to
/Applications.
Or install with Homebrew:
brew tap MRL-00/Sprocket https://github.com/MRL-00/Sprocket
brew install --cask sprocketBuild
swift build # debug
swift build -c release # release
swift test # SprocketKit tests (Swift Testing)Build a runnable Sprocket.app bundle:
./Scripts/package_app.sh # release
VERSION=0.2.0 ./Scripts/package_app.sh # release with bundle version
SPROCKET_SIGNING=adhoc ./Scripts/package_app.sh # ad-hoc codesign
open build/Sprocket.appAuth
Sprocket uses GitHub's device flow. Open the app, follow the
3-step welcome, and paste the OAuth Client ID from your GitHub OAuth App
(make sure Enable Device Flow is checked). Tokens are stored in the
macOS Keychain under nz.matt.sprocket.github.token.
Layout
Sources/SprocketKit/— models and actors shared by the app and CLISources/SprocketApp/— the menu bar app target (moduleSprocket)Sources/SprocketCommandLine/— thesprocketCLI (targetSprocketCLI)Tests/SprocketKitTests/— Swift Testing suitesScripts/package_app.sh— wrapsswift buildoutput intoSprocket.app