Stop thrashing your
working directory.
GitMonster is the worktree-first Git client for developers who run multiple branches in parallel. Every branch gets its own folder, its own terminal, its own state — all in one fast, native desktop app.
Also available for Windows and Linux · Native, not Electron
@@ -18,6 +18,9 @@
const q = new Queue();
-q.retries = 3;
+q.concurrency = 4;
+q.onDrain(flushPending);
+q.resume();❯ pnpm test worker/queue
PASS worker/queue.test.ts (14 tests, 1.2s)
❯ _Switching branches shouldn't mean stashing your afternoon.
You're halfway through a feature. A reviewer pings you on a PR. A hotfix drops. The old way: stash, checkout, hope your half-done work survives the round trip, then dig it back out and realize you dropped a file.
Every traditional Git GUI — GitHub Desktop, Sourcetree, GitKraken, Fork — is built around a single checkout. One folder, one branch, one working state. Context-switching means blowing away what you had loaded.
Worktrees fix this at the plumbing level. But git worktree add is clunky, tracking them across the filesystem is its own job, and no GUI makes the workflow first-class. So most developers never touch them.
The same Git you already know, with the parts that waste your time removed.
GitMonster is a fast, native desktop Git client that treats worktrees as first-class citizens. Open every branch you care about in its own isolated folder, run them side by side, and jump between them in a single click.
One repo. Every branch. All open at the same time.
The worktree dashboard is the center of gravity in GitMonster. Every branch you care about is a row: branch name, path, sync status, staged/unstaged/untracked counts, clean or dirty. Pick a row, start working. Pick another, keep working.
A dashboard, not a tree of branches
Every worktree lists its ahead/behind status and file counts at a glance. Click any badge to open a filtered file browser scoped to that worktree — staged, modified, untracked, or all.
Create in one form
Pick a base branch, name the new branch, and GitMonster proposes a path like repo-feature-name. Override it with a browse dialog if you want. No terminal, no flags to remember.
Per-worktree terminal, one click
Open Terminal on any worktree and a new tab opens in the bottom strip, cwd'd to that worktree's folder. Your shell, your env, your dotfiles.
Merge, remove, prune — safely
Merge a worktree into another branch, force-remove it if it's dirty, or prune stale entries. Destructive actions get a confirm dialog. You won't blow away work by accident.
Keep a feature branch, a hotfix, and the PR you're reviewing all open simultaneously — no stashing, no checkout churn.
A real terminal. In the app. Per worktree.
No separate terminal app required. GitMonster ships a full xterm.js terminal along the bottom of the window — native shell, full ANSI color, responsive resize, Catppuccin Mocha by default.
One tab per session
Spawn a terminal in any worktree's directory with one click. Rename tabs, close tabs, collapse the whole strip when you want more room for the diff viewer.
Your shell, your env
Uses your native $SHELL — zsh on macOS, pwsh on Windows, whatever's in your env on Linux. Spawned via portable-pty so it behaves like a real terminal, not a shim.
Color and resize that actually work
Full ANSI and 256-color support. Resize the strip and the PTY resizes with it — so vim, tmux, and htop render correctly every time.
gregj gm-queue feat/queue-refactor
❯ pnpm test worker/queue
PASS worker/queue.test.ts (14 tests, 1.2s)
✓ drains in order
✓ respects concurrency
✓ emits onDrain once
❯ git status -sb
## feat/queue-refactor...origin/feat/queue-refactor [ahead 2]
M worker/queue.ts
M worker/queue.test.ts
❯ _Review and ship PRs without leaving the app.
GitMonster talks to the GitHub REST API directly — and falls back to the gh CLI when you prefer. Browse PRs, read the diff, check CI status, leave comments, and merge with the method you actually want.
Three auth methods, never locked in
- 1OAuth device flow — recommended. No token ever hits your disk.
- 2Personal access token with
reposcope, stored in the OS keychain. - 3gh CLI passthrough — if you're already logged in,
ghdoes the auth.
All the standard Git workflows, just polished.
Worktrees are the headline, but the rest of the client is complete. You won't fall back to the terminal for the basics.
Branches
Local and remote lists, checkout, merge, rebase, force-delete, ahead/behind.
Commits
100 most recent, with message, author, date, and per-file diffs.
Stash
Create with a message, pop, drop — and the quick 'Stash Changes' action.
Tags
Annotated or lightweight. Newest first. Create and delete inline.
Remotes & sync
Fetch, pull, push. Auto-upstream on first push. Ahead/behind indicators everywhere.
Cherry-pick
Grab any commit from history and lift it onto the current branch.
Revert
One-click revert with auto-commit. Safe, traceable, no guesswork.
Rebase
Standard rebases, interactive where it counts. No surprise rewrites.
Merge
Fast-forward or merge commit — and conflict resolution when it isn't.
Diff viewer
Color-coded unified diffs, used everywhere — changes, commits, PRs, conflicts.
New repos
Init with README, .gitignore, and license templates. Or clone from URL.
Live status
Staged / unstaged / untracked, color-coded by M/A/D/?. Commit with ⌘+Enter.
Guided conflict resolution. Or a clean abort if you need out.
When a worktree merge conflicts, GitMonster drops you into a guided flow: a banner with the list of conflicted files, a click-through diff for each one, and the commit button right there when you're done.
@@ worker/queue.ts @@
<<<<<<< HEAD
q.concurrency = 4;
=======
q.concurrency = 8;
>>>>>>> feat/queue-refactorSee exactly what's in conflict
Every conflicted file is listed with the full diff. Resolve in your editor of choice — GitMonster picks up the cleaned file and marks it ready.
Commit the merge from inside the app
Once everything's resolved, one button finishes the merge. Your commit message is pre-filled with something sensible.
Abort cleanly if it's not worth it
Changed your mind halfway through? Hit Abort merge and you're back on your original branch with your working tree intact.
No Electron. No Chromium overhead. A real desktop app.
GitMonster is built on Tauri and Rust. The binary is small, the cold-start is fast, the memory footprint is low, and the window uses real native conventions — traffic-light positioning, vibrancy, overlay titlebars on macOS.
A handful of knobs. None of them in your way.
Try GitMonster.
Native binaries for macOS, Windows, and Linux. Grab one and have your worktrees open in under a minute.
Signed binaries · auto-update on macOS and Windows