Early Preview · Open Source

Git built for
parallel work.

SproutGit makes worktrees the default — so humans and AI agents can build in parallel without context collisions.

Unsigned macOS preview build

While we are in early development, SproutGit for macOS is not signed or notarized yet. Because of that, macOS may show warnings such as "can’t be opened" or "is damaged and can’t be opened," even when downloaded from our official release page.

By launch, we plan to ship signed builds so this warning goes away. For now, if you downloaded SproutGit from our official site or GitHub releases, follow the steps below to allow this app.

  1. Open the downloaded `.dmg` and drag SproutGit into Applications.
  2. In Finder, open Applications and Control-click SproutGit.
  3. Choose Open, then confirm Open again in the system dialog.
  4. If it still says "is damaged", remove quarantine in Terminal: xattr -dr com.apple.quarantine /Applications/SproutGit.app
  5. Then try opening SproutGit again (or run: open /Applications/SproutGit.app).
Platform macOS · Linux · Windows
License MIT · Open Source
my-project · 3 worktrees active
feature/auth bugfix/nav agent/refactor HEAD
Active Worktree
feature/auth
~/worktrees/feature-auth
Background Task
agent/refactor
Running hooks…

In action

See SproutGit at work.

Commit graph

Lane-based history with worktree markers, ref badges, and right-click actions.

The problem with branch-first tools

Your working directory is a shared resource.
It shouldn't be.

Traditional Git clients treat branches as the unit of work. But branches are just pointers — they all share the same directory. So context-switching means stashing, checking out, losing state.

Without SproutGit
~/projects/myapp/
├── src/
├── node_modules/
└── .git/
  • Switch branch → stash everything first
  • Two features? Hope you remember context
  • AI agent running? Collides with your edits
  • Merge conflicts from unrelated changes
With SproutGit
~/projects/myapp/
├── root/ # protected main checkout
├── worktrees/
│ ├── feature-auth/ # you
│ ├── bugfix-nav/ # teammate
│ └── agent-refactor/ # AI agent
└── .sproutgit/
  • Every task gets its own isolated directory
  • Switch instantly — no stash, no lost state
  • Agents work in parallel without collision
  • Merge when ready, from a clean foundation

This is native Git. git worktree has been in Git since 2.5 (2015). SproutGit makes it the default workflow with a clean directory layout, visual management, and lifecycle hooks — no terminal required.

What's in the box

Everything you need for parallel Git work.

No AI gimmicks, no subscription. Just a fast, honest Git client that treats worktrees as a first-class concept.

Core

Worktree-first workflow

Create, switch, and manage Git worktrees in a clean prescribed directory layout. Managed vs external worktrees are visually distinct. The primary checkout is protected.

Core

Interactive commit graph

Lane-based SVG commit graph with search, selection, ref badges, and context menus. Worktree branches are highlighted with distinct markers.

Core

Diff viewer

Single-commit and multi-commit range diffs with file list and syntax-highlighted unified diff. Built with Monaco and highlight.js.

Core

Branch management

Checkout, reset (soft, mixed, hard), and create branches from any ref. Default action creates a branch and a managed worktree together.

Automation

Workspace lifecycle hooks

Run scripts before and after worktree create, remove, and switch operations. Hooks support dependency ordering and critical/non-critical policy — every hook runs in an interactive terminal tab.

Workflow

Editor integration

Open any worktree in your configured editor. Respects GIT_EDITOR, core.editor, VISUAL, and EDITOR in that order — your preference, not ours.

UI

Automatic dark mode

Follows system preference. Light and dark themes with the same brand palette and full contrast compliance. No toggle required.

Platform

Lightweight native app

Built with Tauri v2 — a Rust backend and native webview. Small bundle, fast startup, low memory. No Electron, no extra runtime.

macOS
11+
Linux
x64 / arm64
Windows
10+
MIT License
Open source forever
Rust + Tauri v2
No Electron

Open source · Early preview

Try it. Break it.
Help us ship it.

SproutGit is an early prototype under active development. The best way to support it is to star the repo, open issues, and contribute.