Every repo’s git status, in your menu bar.
Point it at the folders where your code lives and it tells you, for every repo
inside them, what you left uncommitted, what you never pushed, and what you
still have to pull — with the branch and the remote. One glance instead of
cd-ing through fifteen directories.
Already have Toolbox? Open this widget
Give it your code folders. It finds the repos.
Add one or more parent folders — ~/Code, a clients directory, a
scratch directory — one per line. The widget looks one level down inside
each of them and treats everything that is a git repo as a row. That mirrors how
people actually keep code: a folder full of project folders, not repos nested
arbitrarily deep.
Every time you open the popover it re-scans, and the scan is local only: branch, remote, working-tree state and your position relative to the upstream ref you already have on disk. Repos are read in parallel, so this stays instant with dozens of them. The heavy lifting runs in the app’s native core rather than in the widget — the widget is just the list.
- Several root folders, one per line
- Finds git repos one level down inside each
- Re-scans every time you open the popover
- Click a repo to open it in Finder / File Explorer
- Pop it out into its own window to keep it visible while you work
“Behind” is the one that needs the network — so it asks first.
Uncommitted changes and unpushed commits are facts about your own disk: they are
free to read and always true. Being behind is different — it means the
remote moved, and finding that out requires a git fetch, which needs
connectivity and credentials. Doing that silently on every popover open would be
slow, chatty, and would fail in ways you would never see.
So the widget splits the two. The instant scan tells you the local truth and marks the behind column as possibly stale. Press Refresh and it fetches first, then reports the real numbers. If a remote needs a credential this machine does not have — an Azure DevOps repo, a work account you never set up — it says the fetch failed instead of reporting a comfortable zero.
- {n} uncommitted — changes in the working tree
- {n} to push — local commits the remote does not have
- {n} to pull — commits on the remote you do not have
- Calls out no upstream, no remote and detached HEAD
- Says fetch failed (credential?) rather than a false zero
A git GUI shows you one repo. This shows you all of them.
GitHub Desktop, Fork, Sourcetree and Tower are built around the repo you have
open: stage this, amend that, resolve a conflict. They are good at it. But the
question that actually costs people work is the one they answer worst —
which of my repos did I leave in a mess? Answering it means opening each
repo, or looping git status in a terminal, which is exactly the chore
nobody keeps up.
This widget is not competing with those tools; it sits on top of them. It is the dashboard you glance at before you close the laptop, and it is honest about being read-only. If something needs doing, you click through to the folder and do it in whatever tool you already like.
- Nothing to keep open — it lives in the menu bar
- Answers across every repo at once, not one at a time
- Read-only by design: no accidental commit, push or checkout
- Useful before a laptop wipe: finds what only exists locally
Installed from the catalog, in one click.
Git Status isn’t bundled into the app — it’s a widget in the Webstarted Toolbox catalog. Download Toolbox, open the catalog tab (🧰), press the “+” next to Git Status, and it lands in your Dev tools tab. It’s also readable by an agent through the MCP server. Here are a few of its neighbors:
Questions, answered.
How does it know the status of my repos?
It runs your own installed git, the same way you would in a terminal — there is no git reimplementation and no service in the middle. You give it one or more parent folders (for example ~/Code) and it looks one level down inside each of them for anything that is a git repo, then reads the branch, the remote, the uncommitted changes and how far ahead or behind the upstream you are. Repos are read in parallel, so a folder with thirty of them still opens instantly.
Why is “behind” not always up to date?
Because knowing you are behind requires talking to the remote, and that means the network plus your credentials — not something that should happen every time you glance at your menu bar. So the scan that runs when you open the popover is purely local: instant, and truthful about your own machine. When you want the real number, press Refresh and it runs git fetch first. Until you do, the widget labels the behind column as possibly stale rather than quietly showing you a zero.
Is this a git client? Can it commit or push for me?
No, and deliberately so. It is read-only: it never commits, pushes, pulls, stashes or checks anything out. It answers one question — “where did I leave things?” — across all your repos at once, and then gets out of the way. Clicking a repo opens its folder in Finder or File Explorer so you can pick up in whatever tool you actually work in.
What does it show per repo?
The branch, the remote, and whichever of these apply: uncommitted changes, commits to push, commits to pull. A repo with none of them says “up to date”. It also calls out the states that quietly bite you: a branch with no upstream, a repo with no remote at all, and a detached HEAD. If a fetch fails because a remote needs a credential you do not have on this machine, it says that instead of reporting zero.
Can Claude read my repo status?
Yes, if you allow it. Toolbox runs a local MCP server, and Git Status was the first installable widget to expose a tool through it: an agent can ask for the status of your folders, optionally asking for a fetch first. It is opt-in per widget and read-only — the agent gets the same report you see, and cannot commit or push. See the MCP page for how the permission model works.
Does it work on Windows?
Yes — macOS menu bar and Windows system tray, both. It is desktop only: it reads folders on the machine it runs on, which is not something a phone can do. It needs git available on your PATH, which it already is if you use git from a terminal.
Is it free?
Yes. Webstarted Toolbox is free and needs no account, and Git Status is a free widget in its catalog — one click from inside the app installs it, with no app update needed.
Get Webstarted Toolbox
Free to use. Download the app, then add Git Status from the catalog in one click. macOS 12+ and Windows 10+.
One icon, many small tools
This is just one of the widgets in Webstarted Toolbox. Here are the rest: