Using GitManager
GitManager scans the folders you configure and shows every Git repository it finds, with each repo's current branch, whether it has uncommitted changes, and how far ahead or behind its upstream it is.
Getting started
- Copy
.env.exampleto.env. - Set
GIT_REPO_ROOTSto the folders that hold your repos. - Run
docker compose upand open the dashboard.
Reading the dashboard
- Branch — the checked-out branch (or
HEADwhen detached). - Dirty — the working tree has staged or unstaged changes.
- Ahead / behind — commits your branch leads or trails its upstream by.
Repository details
Click any repository in the list to open its details on the right: its full path and current branch, its remotes and their URLs, every local branch (with the one you're on marked and its upstream shown), and the 20 most recent commits.
Active project & activity
Clicking a repository also makes it your active project — the one you're currently focused on — shown in the activity panel at the bottom. That panel also lists recent actions by both you and Claude, updating live. When GitManager is connected to Claude, Claude can see your active project and this activity, so you stay on the same page.
Pull requests: Merge & clean up
When a repository is hosted on your Gitea server, its open pull requests appear under the details panel. Each has a Merge & clean up button: it squash-merges the pull request and deletes its branch in one step, so finished work doesn't leave branches lying around. You'll be asked to confirm — it names the pull request and the branch that will be deleted — because it can't be undone (the merged history stays on the server; only the branch is removed). If you don't use a Gitea server, this section stays hidden.
Handing a project off to Claude
When GitManager is connected to Claude, you can hand the current project off. Select the repository (that makes it your active project), then click "Ask Claude to switch to …" in the handoff bar. Claude won't drop what it's doing — it finishes to a safe stopping point (saving any in-progress work) and then switches. You'll see a "waiting…" message while it wraps up, and a confirmation with a short note of where it left the previous project once it has switched. You can Cancel a pending request any time before Claude completes it.
Background refresh
The dashboard refreshes on its own. By default it does not reach
the network — enable SCAN_FETCH_ENABLED if you want
ahead/behind counts kept current via git fetch.