Worktrunk is a CLI for Git worktree management, designed for parallel AI agent workflows.
Worktrunk’s three core commands make worktrees as easy as branches. Plus, Worktrunk has a bunch of quality-of-life features to simplify working with many parallel changes, including hooks to automate local workflows & copy-on-write build caches.
A quick demo:
Context: git worktrees #
Section titled “Context: git worktrees”
AI agents like Claude Code and Codex can handle longer tasks without supervision, such that it’s possible to manage 5-10+ in parallel. Git’s native worktree feature gives each agent its own working directory, so they don’t step on each other’s changes.
But the git worktree UX is clunky. Even a task as small as starting a new
worktree requires typing the branch name three times: git worktree add -b feat ../repo.feat, then cd ../repo.feat.
Worktrunk makes git worktrees as easy as branches #
Section titled “Worktrunk makes git worktrees as easy as branches”
Worktrees are addressed by branch name; paths are computed from a configurable template. Commands that take a branch also accept the path of the worktree it is checked out in.
Start with the core commands
Core commands:
| Task | Worktrunk | Plain git |
|---|---|---|
| Switch worktrees | wt switch feat |
cd ../repo.feat |
| Create + start Claude | wt switch -c -x claude feat |
git worktree add -b feat ../repo.feat && \
cd ../repo.feat && \
claude
|
| Clean up | wt remove |
cd ../repo && \
git worktree remove ../repo.feat && \
git branch -d feat
|
| List with status | wt list | git worktree list (paths only) |
Expand into the more advanced commands as needed
Workflow automation:
- Hooks — run commands on create, pre-merge, post-merge, etc
- LLM commit messages — generate commit messages from diffs
- Merge workflow — squash, rebase, merge, clean up in one command
- Interactive picker — browse worktrees with streaming CI status and diff, log, PR and comment previews
- Share build caches — ten worktrees get
target/,node_modules/, etc without building or copying them (on APFS, btrfs, and XFS) wt list --full—CI status andAI-generated summaries per branch- PR checkout —
wt switch pr:123to jump straight to a PR’s branch - Dev server per worktree —
hash_porttemplate filter gives each worktree a unique port - Aliases & per-branch variables — custom
wt <name>commands and branch-scoped state for hook templates - …and lots more
Multiple parallel agents, same simple commands:
Install #
Homebrew (macOS & Linux):
Shell integration allows commands to change directories.
Cargo:
Windows & other #
Windows. wt defaults to Windows Terminal’s command, so Winget additionally installs Worktrunk as git-wt to avoid the conflict:
Alternatively, disable Windows Terminal’s alias (Settings → Apps → Advanced app settings → App execution aliases → “Terminal”/“Terminal Preview”) to use wt directly.
Free code signing provided by SignPath.io, certificate by SignPath Foundation — policy.
Arch Linux:
Conda / Pixi (community-maintained feedstock):
Or with Pixi: pixi global install worktrunk && wt config shell install.
Quick start #
Create a worktree for a new feature:
This creates a new branch and worktree, then switches to it. Do your work, then check all worktrees with wt list:
The @ marks the current worktree. + means staged changes, ↑1 means 1 commit ahead of main, ⇡ means unpushed commits.
When done, either:
PR workflow — commit, push, open a PR, merge via GitHub/GitLab, then clean up:
Local merge — squash, rebase onto main, fast-forward merge, clean up:
For parallel agents, create multiple worktrees and launch an agent in each:
The -x flag runs a command after switching; arguments after -- are passed to it. Configure post-start hooks to automate setup (install deps, start dev servers).
Next steps #
- Learn the core commands:
wt switch,wt list,wt merge,wt remove - Set up hooks for automated setup
- Explore LLM commit messages ,interactive picker ,Claude Code integration ,CI status & PR links
- Browse tips & patterns for recipes: aliases, dev servers, databases, agent handoffs, and more
- Extending Worktrunk — customize workflows with hooks & aliases
- Watch @DevOpsToolbox’s video on Worktrunk
- Run
wt --helporwt <command> --helpfor quick CLI reference