Manage all your git repositories at once.
A fast, native git client for the folder full of repos you actually work in — GitHub Desktop's everyday workflow, plus the multi-repo superpowers it never had. One self-contained binary. No Electron.
Most git clients open one repository. ChitHub opens a folder of them — a microservices checkout, a pile of side projects, a “monorepo of repos” — and shows the state of every one at a glance. Fetch, pull, push, stage and commit per repo, in bulk, or by stepping through a guided review so nothing slips through.
It’s a single Go binary with an embedded web UI: no Node, no runtime, nothing to
install. Git operations shell out to your real git, so your existing
credentials just work.
- A live dashboard of every repo in a collection — ahead / behind / diverged / dirty status, last commit, last fetch, with filters and search.
- Auto-refresh: the UI updates itself the moment anything changes on disk — a commit, a fetch, a branch switch, or an edit from another tool.
- A genuinely readable diff: line numbers, syntax highlighting, word-level (intra-line) diff, and expandable context.
- Stage by file, by hunk, or by individual line — and discard by file or
hunk — like
git add -p, but you can see it. - Commit, amend, undo the last commit; discards go to a recoverable stash.
- Paginated history with a commit graph.
- Revert, cherry-pick, tag, and a guided reset (soft / mixed / hard) that explains each mode and can leave a safety branch behind first.
- Branch switch / create / rename / delete, merge, rebase, with a built-in conflict-resolution UI.
- Fetch, pull (fast-forward / rebase / merge), push (with
--force-with-leaseand a warning before pushing tomain). - Sync — fetch → pull → push in one click — publish a new branch, and clone from a URL.
- Review — walk through every repo that needs a commit, push, or pull, one at a time.
- Bulk commit / branch-switch / sync across all selected repos.
- Cross-repo search (
git grepeverywhere), run a command in every repo, and workspace snapshots that save and restore which branch each repo is on.
- A fuzzy command palette (
⌘K), light / dark themes, and one-click open in browser, editor, terminal, or Finder.
Download ChitHub-<version>.dmg from the latest release,
drag ChitHub into Applications, and open it.
The build is ad-hoc signed, so the first launch needs a right-click → Open (or run
xattr -dr com.apple.quarantine /Applications/ChitHub.app).
brew install Amirhat/tap/chithub
chithubLaunch ChitHub and it opens in its own window. Point it at a collection — a folder that contains your repositories — and it scans every repo inside.
- Collections — track several parent folders and switch between them from the picker under the title. Removing a collection only forgets it; nothing on disk is touched.
- Commit — click a repo to open its diff drawer, pick the files / hunks / lines to include, and commit. Unselected changes are left exactly as they were.
- Review — the
▶ Reviewbutton steps through repos that need attention so you can clear them one by one (commits & pushes, or pulls). - Bulk — select repos with the checkboxes (or none = all visible) and use the top-bar actions or the bottom bar to act on the whole selection at once.
| Shortcut | Action |
|---|---|
⌘K / Ctrl+K |
Command palette |
⌘↵ / Ctrl+Enter |
Commit |
R |
Refresh / rescan |
Esc |
Close the open dialog or drawer |
Collections and preferences live in ~/.chithub.json and are edited through the
⚙ Settings panel: theme, default pull mode, background-fetch interval, font
size, warn before pushing to main, and discard → stash.
Command-line flags override the saved config:
| Flag | Description |
|---|---|
-root <dir> |
Scan a specific folder |
-port <n> |
Listen on a different port (default 7171) |
-browser |
Open the UI in your web browser instead of the native window |
-no-open |
Don’t open a window on start |
-dev <dir> |
Serve the UI from disk instead of the embedded copy |
-version |
Print the version and exit |
On macOS, ChitHub opens in a native window with its own Dock icon — closing
the window quits the app. Pass -browser (or run on Linux) to open it as a
browser window instead.
ChitHub needs only Go 1.24+ and git on your PATH.
go build -o chithub . # build a standalone binary
./run.sh # build, scan the parent folder, and open the app
go run . -dev ./web # develop with the UI served live from diskThe web UI is embedded with go:embed, so the resulting binary is fully
self-contained.
A 29-case end-to-end suite drives the real HTTP API against throwaway git repos (local bare repos stand in for remotes, so it runs offline) and asserts the git state after every operation.
go test ./...CI runs the suite on every push.
Releases are cut by GoReleaser from a tag — it builds
the macOS (universal) and Linux binaries, publishes a GitHub Release, updates the
Homebrew tap, and attaches the .dmg.
git tag v0.1.0 && git push origin v0.1.0The .dmg ships ad-hoc signed (clean launch on Apple Silicon, one right-click on
first open). For a fully Gatekeeper-clean app, set a MACOS_SIGN_IDENTITY
(Developer ID) secret and add a notarytool step — packaging/make-dmg.sh
already uses the identity when present.
Bug reports, feature ideas, and pull requests are all welcome — ChitHub grows with what people actually need.
See CONTRIBUTING.md for how to set up, build, and test, and the Code of Conduct for community guidelines.
MIT © ChitHub contributors
