Run 5 AI agents in parallel — zero index.lock conflicts. git-parsec gives every agent its own isolated worktree, tied to your issue tracker. No retries, no wasted tokens, no merge chaos.
When AI agents run in parallel on the same repo, they collide on .git/index.lock — crashing mid-task, burning tokens on retries, and leaving broken state. Worktrees solve isolation, but lack the lifecycle management agents need.
Parallel git operations collide on .git/index.lock, blocking agents and developers.
Create branch, add worktree, remember paths, clean up manually. Error-prone and tedious.
Branches and worktrees have no link to your issue tracker. Context gets lost.
Parallel work silently edits the same files. You only find out at merge time.
Each ticket gets its own isolated worktree. No lock contention, ever.
parsec start creates everything. parsec ship pushes, PRs, and cleans up.
Jira and GitHub Issues built in. Branches auto-named, PR titles auto-filled.
parsec conflicts warns when worktrees touch the same files -- before you merge.
parsec log shows everything parsec has done. parsec undo rolls back the last step if something goes wrong.
A focused toolset for the complete worktree lifecycle -- from creating isolated workspaces to shipping production-ready PRs.
parsec start PROJ-123 creates an isolated worktree, fetches the title from your tracker (Jira · GitHub Issues · GitLab Issues · Bitbucket), and names the branch consistently. parsec adopt and --branch bring existing branches under management. Sibling layout (../repo.ticket/) keeps directories clean and IDE-friendly.
Chain workspaces with parsec start CHILD --on PARENT. parsec stack --submit opens every PR in the stack in topological order. Auto-posted "← prev / next →" navigation comments let reviewers walk the chain without leaving the PR view. --sync rebases the whole chain when the base moves.
Full PR lifecycle on GitHub, GitLab, and Bitbucket Cloud. CI status from Actions, GitLab CI, and Bitbucket Pipelines — all surfaced through the same parsec ci and parsec pr-status commands. Auto-detected from the remote URL.
parsec ship pushes, opens the PR, and removes the worktree. parsec merge waits for CI, merges, and cleans up. parsec clean sweeps already-merged branches. parsec conflicts flags cross-worktree file overlap before push. parsec undo reverses the last operation. Every mutating command supports --dry-run.
--json on every command. Structured error codes (E001–E013) for programmatic handling. parsec log --export emits JSONL with execution IDs and per-step timing. --offline and headless modes for CI / air-gapped environments. The config JSON Schema is published to schemastore.org for editor autocomplete.
[worktree].shared_cache shares target/, node_modules/, .venv/ from the main repo to new worktrees via symlink (default) or copy — eliminates cold-build cost on parsec start. Shell integration auto-cd's, tab completions ship for zsh / bash / fish / powershell, parsec doctor validates your setup.
parsec sync rebases or merges the latest base branch into one or all worktrees.parsec log shows every action with timestamps; filter by ticket or last N.parsec undo reverses the last start / ship / clean. Use --dry-run to preview.parsec open launches the PR or ticket page (GitHub / GitLab / Jira / Bitbucket).parsec diff compares any worktree to its base branch (--stat, --name-only).parsec compress squashes commits into one tidy commit before shipping.ship --template reads .github/PULL_REQUEST_TEMPLATE.md.ship --reviewer / --label at PR creation time, or set defaults in config.[ship].draft = true opens every PR as a draft for WIP review.cargo test, npm run lint, etc. before ship via [hooks].pre_ship.parsec board renders the active Jira sprint as a Kanban board in the terminal.parsec create / new-issue opens tickets in your tracker; --start immediately creates a worktree.parsec release merges develop → main, tags, and creates a GitHub Release.[policy] blocks ships to protected branches and restricts allowed targets.--yes and TTY auto-detection skip prompts in CI / agent environments.dunce crate.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 | -- | -- | -- |
Three commands from install to your first PR.
Install via cargo. A single binary, no runtime dependencies.
Run interactive setup. Enable shell integration for auto-cd and merge recovery.
Create a worktree from any ticket. Code, commit, and ship when ready.
A single Rust binary. No runtime dependencies, no node_modules, no Python virtualenvs.
Join developers and AI teams who use parsec to run parallel agents on the same repo — isolated worktrees, no index.lock fights, fewer retries.