Built with Rust

From ticket to PR
in one command.

git-parsec manages the full lifecycle of git worktrees tied to your issue tracker. Start a ticket, code in parallel, ship a PR, and clean up -- all without leaving your terminal.

parsec -- zsh
# Start working on a Jira ticket $ parsec start CL-2283 Created worktree for CL-2283 Title: Collect HeuristicCompletionException handling Branch: feature/CL-2283 Path: ../myproject.CL-2283   # Work in parallel on another ticket $ parsec start CL-2290 Created worktree for CL-2290   # Ship it -- push, create PR, cleanup $ parsec ship CL-2283 Pushed feature/CL-2283 PR created: github.com/org/repo/pull/42 Worktree cleaned up  
Git wasn't built for
parallel workflows.

Multiple developers or AI agents on the same repo fight over index.lock. Worktrees solve isolation, but lack lifecycle management.

Without parsec
  • Lock contention

    Parallel git operations collide on .git/index.lock, blocking agents and developers.

  • Manual worktree management

    Create branch, add worktree, remember paths, clean up manually. Error-prone and tedious.

  • No ticket connection

    Branches and worktrees have no link to your issue tracker. Context gets lost.

  • Invisible conflicts

    Parallel work silently edits the same files. You only find out at merge time.

With parsec
  • Zero-conflict parallelism

    Each ticket gets its own isolated worktree. No lock contention, ever.

  • One-command lifecycle

    parsec start creates everything. parsec ship pushes, PRs, and cleans up.

  • Ticket tracker integration

    Jira and GitHub Issues built in. Branches auto-named, PR titles auto-filled.

  • Early conflict detection

    parsec conflicts warns when worktrees touch the same files -- before you merge.

  • Full operation history

    parsec log shows everything parsec has done. parsec undo rolls back the last step if something goes wrong.

From ticket to PR in 60 seconds.
git-parsec demo showing start, list, switch, log, undo, and clean commands
Everything you need.
Nothing you don't.

A focused toolset for the complete worktree lifecycle -- from creating isolated workspaces to shipping production-ready PRs.

Sibling Worktree Layout

Worktrees placed adjacent to your repo as ../repo.ticket/. Clean, predictable, and compatible with your IDE.

One-step Shipping

parsec ship pushes your branch, creates a GitHub PR or GitLab MR with the ticket context, and cleans up the worktree. One command, done.

Cross-worktree Conflict Detection

Detect when multiple worktrees modify the same files before you merge. Catch conflicts early, not at review time.

Shell Integration & Completions

Auto-cd with parsec switch, tab-completions for zsh/bash/fish/powershell, and a man page — all built in.

Branch Sync

Keep worktrees fresh with parsec sync — rebase or merge the latest base branch into one or all worktrees at once.

Adopt Existing Branches

Already have a branch in flight? parsec adopt imports it into parsec management so you get full lifecycle tracking without starting over.

$ parsec adopt PROJ-99 --branch fix/payment-timeout

Attach to Existing Branch

Need to work on a branch that already exists? parsec start --branch creates a managed worktree from any local or remote branch. Fetches remote-only branches automatically.

$ parsec start CL-2208 --branch feature/CL-2208

Operation History

Every parsec action is logged. Use parsec log to review your full operation history, filter by ticket, or inspect the last N operations at a glance.

$ parsec log --last 5   # or: parsec log PROJ-1234

Undo Last Operation

Made a mistake? parsec undo reverts the most recent operation. Use --dry-run to preview exactly what will be rolled back before committing.

$ parsec undo --dry-run

Open in Browser

parsec open launches the PR or ticket page in your browser. Works with GitHub, GitLab, and Jira.

$ parsec open PROJ-1234

PR Status Dashboard

parsec pr-status shows CI checks, review approvals, and merge state for all shipped PRs in one color-coded table.

$ parsec pr-status PROJ-1234

CI Pipeline Dashboard

parsec ci shows individual check runs, durations, and overall status. Use --watch to poll until completion.

$ parsec ci --watch

Merge from Terminal

parsec merge merges PRs directly from your terminal. Waits for CI to pass, supports squash and rebase, and cleans up automatically.

$ parsec merge PROJ-1234

Worktree Diff

parsec diff shows changes in any worktree compared to its base branch. Supports --stat and --name-only views.

$ parsec diff --stat
How parsec stacks up.

parsec fills the gap between bare git worktree commands and tools that don't connect to your issue tracker.

Feature parsec worktrunk git worktree git-town GitButler
Ticket tracker integration Jira + GitHub Issues -- -- -- --
Physical isolation (worktrees) Yes Yes Yes -- Virtual branches
Cross-worktree conflict detection Yes -- -- -- --
One-step ship (push + PR/MR + clean) GitHub + GitLab -- -- Yes --
Operation history & undo Yes -- -- Yes (undo) Yes
JSON output for AI agents Yes -- -- -- Yes
CI monitoring Yes (--watch) -- -- -- --
Stacked PRs Yes -- -- Yes Yes
Post-create hooks Yes Yes -- -- --
Auto-cleanup merged worktrees Yes -- Manual -- --
Forge support GitHub + GitLab GitHub -- GH, GL, Gitea, BB GitHub + GitLab
Zero config start Yes Yes -- -- --
Up and running in 60 seconds.

Three commands from install to your first PR.

01

Install

Install via cargo. A single binary, no runtime dependencies.

cargo install git-parsec
02

Configure

Run interactive setup, enable shell integration and tab-completions.

parsec config init
eval "$(parsec config completions zsh)"
03

Start building

Create a worktree from any ticket. Code, commit, and ship when ready.

parsec start PROJ-42
full workflow demo
# Create isolated workspace from Jira ticket $ parsec start CL-2283 Created worktree for CL-2283 Branch: feature/CL-2283 Path: ../myproject.CL-2283   # Switch into the worktree $ parsec switch CL-2283 cd ../myproject.CL-2283   # ... do your work, commit as usual ...   # Check for conflicts with other worktrees $ parsec conflicts No file conflicts across 3 active worktrees   # Ship it -- push, create PR, cleanup $ parsec ship CL-2283 Pushed feature/CL-2283 (4 commits) PR #42 created: github.com/org/repo/pull/42 Worktree cleaned up
Install parsec.

A single Rust binary. No runtime dependencies, no node_modules, no Python virtualenvs.

Cargo cargo install git-parsec Available
Homebrew brew install git-parsec Coming soon
From source git clone && cargo build --release Available
Stop managing worktrees.
Start shipping tickets.

Join developers who use parsec to work on multiple tickets in parallel without the overhead.

Star on GitHub
$ cargo install git-parsec