Git Repo Tracker
A small menu-bar app for noticing local git repositories that are behind their remote branch.
I built a small menu-bar app because I was tired of discovering that a repository had moved without me.
git fetch, git status, pull, rebase, continue. Nothing dramatic. The annoying part was realizing it late, after the local context was already gone. Someone pushed changes, my repo was behind, and now I had to rebase while also remembering what I was doing two days ago.
This is not a big app, and I do not want it to be one. git-repo-tracker is a small reminder sitting in the tray. It watches local git repositories and tells me which ones are behind their remote branch.
I made it because I keep too many repositories around: work projects, side projects, deployment bits, tools, half-finished experiments, and things I apparently cared about for one weekend. Some are active every day. Some I touch once a month. Git is very good at telling me what changed, but only after I ask. My problem was that I often asked too late.
You configure roots, usually something like ~/projects, and it scans for repos under them. It fetches remote-tracking refs in the background, without touching working trees, and shows the status in a small searchable popover. If a repo is safely fast-forwardable, there is a pull action. If not, it leaves it alone.
That last part matters to me. I do not want a background tool doing clever git operations. Fetching remote-tracking refs is fine. Updating my working tree without me explicitly asking is not fine. Pulls are --ff-only, because the app should be a reminder, not a tiny merge-conflict generator hiding in the menu bar.
There is also a cache so it can show the last known state immediately after startup. Not especially fancy, but it makes the app feel less like a spinner with ambitions. It opens, shows what it knew before, and refreshes in the background.
The whole thing is intentionally narrow. It is not meant to replace the terminal, an editor git panel, or a real git client. It answers one question: "which of my local repos are no longer up to date?" That is enough. The point is to notice stale repos while the context is still fresh, not a few days later when updating becomes another small archaeology session.
It is on GitHub. On macOS, install with:
brew install --cask laszukdawid/tap/git-repo-tracker
Then launch it once, point it at your projects directory, and let it be mildly judgmental about your local clones. Small nags with good boundaries are underrated.