Worktrunk: A CLI for Git worktree management, designed for AI agent workflows Worktrunk, a new command-line tool for Git worktree management, launched with three core commands — `wt switch`, `wt remove`, and `wt list` — designed to let developers run 5-10+ parallel AI coding agents such as Claude Code and Codex without their changes conflicting. The tool addresses Git's native worktree UX, which requires typing a branch name three times to create and enter a worktree, by addressing worktrees by branch name and computing paths from a configurable template. Worktrunk adds hooks, LLM-generated commit messages, copy-on-write build cache sharing on APFS, btrfs and XFS, and per-worktree dev server ports, and is installable via Homebrew, Cargo, Winget, Arch Linux, and Conda/Pixi. Worktrunk 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” 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” 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 https://worktrunk.dev/hook/ — run commands on create, pre-merge, post-merge, etc - LLM commit messages https://worktrunk.dev/llm-commits/ — generate commit messages from diffs - Merge workflow https://worktrunk.dev/merge/ — squash, rebase, merge, clean up in one command - Interactive picker https://worktrunk.dev/switch/ interactive-picker — browse worktrees with streaming CI status and diff, log, PR and comment previews - Share build caches https://worktrunk.dev/step/ wt-step-copy-ignored — ten worktrees get target/ , node modules/ , etc without building or copying them on APFS, btrfs, and XFS - wt list --full https://worktrunk.dev/list/ full-mode — CI status https://worktrunk.dev/list/ ci-status and AI-generated summaries https://worktrunk.dev/list/ llm-summaries per branch - PR checkout https://worktrunk.dev/switch/ pull-requests-and-merge-requests — wt switch pr:123 to jump straight to a PR’s branch - Dev server per worktree https://worktrunk.dev/tips-patterns/ dev-server-per-worktree — hash port template filter gives each worktree a unique port - Aliases https://worktrunk.dev/extending/ aliases & per-branch variables https://worktrunk.dev/config/ wt-config-state-vars — custom wt