Native macOS Menu Bar App

Before you close your laptop or switch machines.

Every developer leaves work behind by accident: a half-finished fix sitting uncommitted in an obscure repo, two commits ahead of origin you forgot to push, or an accidental detached HEAD from a bisect. GitMon surfaces them all in your menu bar with zero subprocess polling.

macOS 14 (Sonoma) or later • 14-day unrestricted trial • No account required

$brew install --cask suresk/tap/gitmon
GitMon
3 NEED ATTENTION
api-service 3 dirty • ↑3
feat/oauth2-refresh
web-dashboard Never pushed
feat/dark-mode (no upstream)
worker-engine Detached HEAD
HEAD at 7c3d19e

Zero Friction, Zero Spurious Subprocesses

Built for developers with dozens of repositories.

Other tools loop git status across hundreds of folders in background shell scripts, pegging your CPU fans. GitMon reads the Git index, refs and pack files directly, about 10 ms per repository, in parallel.

⚡ Direct Git Index Parsing

Reads .git/HEAD, loose and packed refs, pack files, and the binary index natively in Swift. Finds modified, staged, deleted, conflicted and untracked files — honouring your .gitignore — without spawning bash or git processes.

🚀 Ahead & Behind Upstream

Traces commit graphs against upstream remote tracking branches so you always know when local commits need a git push before you close your laptop.

🧹 Stale Branch & Detached Auditing

Flags detached HEAD states immediately and surfaces branches that were merged weeks ago or untouched for 30+ days, keeping your tab completion clean.

Safety & Architecture

Completely rootless. 100% read-only.

GitMon requires zero elevated privileges, installs no background system daemons, and performs zero writes to your Git repositories. It will never run automated commits, rebases, or destructive pushes that could lose your code.

Jump directly into any repository in your favorite terminal (Terminal, iTerm, Ghostty, Warp), editor (VS Code, Cursor, Xcode), or Finder with one click.

# Subprocess-free inspection
$ open -a GitMon
# Measured on an M-series Mac
✓ 96 repositories scanned in 0.9s
# Nothing polling in the background
$ ps -o %cpu,comm -p $(pgrep GitMon)
0.0% GitMon (popover closed)

Simple, Transparent Pricing

Own it forever.

$19 one-time

Includes 12 months of updates • Optional $9/year renewal to extend updates

  • Use on up to 3 Macs simultaneously
  • Self-service activation reset portal
  • Exact ahead/behind counts against your upstreams
  • Detached HEAD, conflict & stale branch audit
  • 14-day fully-featured offline trial
  • 14-day no-questions-asked refund guarantee
Buy GitMon — $19 Download 14-day free trial

Frequently Asked Questions

Everything you need to know.

Will GitMon drain my battery or burn CPU in the background?

No. GitMon scans once at launch so the menu bar count means something, and then only while the popover is open or when you click refresh. With the popover closed there is no polling loop and no filesystem crawler running.

Does GitMon shell out to `git status`?

No. Shelling out to git hundreds of times in subprocesses is notoriously slow on macOS. GitMon parses Git metadata directly from the .git directory in pure Swift: it compares the working tree against the index to find edits, the index against HEAD to find staged work, and walks the commit graph — loose objects and pack files alike — to count exactly how far ahead or behind each branch is.

Can GitMon commit or push my code automatically?

No. GitMon is strictly read-only by design. It will never perform automated commits, amends, stashes, or pushes that could accidentally clobber or alter your working tree.

How does GitMon find my repositories?

By default, GitMon scans common developer folders such as ~/personal, ~/Projects, ~/dev, ~/src, and ~/code. You can easily add or remove custom folders in Settings.