GitManager

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

  1. Copy .env.example to .env.
  2. Set GIT_REPO_ROOTS to the folders that hold your repos.
  3. Run docker compose up and open the dashboard.

Reading the dashboard

Right-click commands

Right-click any repository for a menu of plain-language commands — no git knowledge needed:

What each command did shows up in the activity panel. (Get latest / Publish / Check for updates need your server to have git credentials; until then they'll report a sign-in error.)

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.