Worktrunk is a CLI for Git worktree management, designed for parallel AI agent workflows
Worktrunk is a Rust-based CLI tool that simplifies Git worktree management specifically for running multiple AI agents, such as Claude Code and Codex, in parallel without file conflicts. Its three core commands replace verbose Git syntax: `wt switch feat` replaces a multi-step `git worktree add` and `cd` sequence, `wt switch -c -x claude feat` creates a new worktree and launches Claude in one step, and `wt remove` handles teardown including branch deletion. Beyond the basics, it offers lifecycle hooks for automating local workflows, a `wt merge` command that squashes, rebases, and cleans up in a single step, an interactive picker with live diff and log previews, and a cache-copying feature that transfers `target/` or `node_modules/` directories between worktrees to avoid cold build starts. A standout addition is `wt list --full`, which surfaces CI status and LLM-generated summaries of each open worktree. Developers running five to ten concurrent agent sessions on the same repository are the primary audience.
- ✓License: NOASSERTION
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/max-sixty/worktrunk && cp worktrunk/*.md ~/.claude/agents/5 items in this repository
Worktrunk release workflow. Use when user asks to "do a release", "release a new version", "cut a release", or wants to publish a new version to crates.io and GitHub.
Worktrunk-specific guidance for tend CI workflows. Adds codecov polling, Rust test commands, labels, and review criteria on top of the generic tend-* skills. Use when operating in CI.
CLI output formatting standards for worktrunk. Load before editing any code that calls warning_message, hint_message, error_message, info_message, eprintln, or println, or that produces strings the user will see (CLI help, progress UI, snapshot text). Documents ANSI color nesting rules, message patterns, and output system architecture.
Guidance for Worktrunk (the `wt` CLI) — git worktree management, hooks, and config. Load when editing .config/wt.toml or ~/.config/worktrunk/config.toml; adding, modifying, or debugging hooks (post-merge, post-start, pre-commit, pre-merge, post-switch, etc.); configuring commit message generation or command aliases; or troubleshooting wt behavior. Also answers general worktrunk/wt questions.
Create a new worktrunk worktree (optionally in another repo) and switch this session's working directory into it. The branch name is optional — one is picked from the task when omitted. Use when launching a session that should work in its own worktree (e.g. `/wt-switch-create -- <task>`, `/wt-switch-create my-branch -- <task>`, or `/wt-switch-create my-branch ~/workspace/other-repo -- <task>`), or mid-session to move work into a fresh branch.
Subagents overview
<!-- markdownlint-disable MD033 -->
<h1><img src="docs/static/logo.png" alt="Worktrunk logo" width="50" align="absmiddle"> Worktrunk</h1>
[](https://worktrunk.dev)
[](https://crates.io/crates/worktrunk)
[](https://opensource.org/licenses/MIT)
[](https://github.com/max-sixty/worktrunk/actions?query=branch%3Amain+workflow%3Aci)
[](https://codecov.io/gh/max-sixty/worktrunk)
[](https://github.com/max-sixty/worktrunk/stargazers)
[](https://github.com/max-sixty/tend)
> **June 2026**: Worktrunk was [released](https://x.com/max_sixty/status/2006077845391724739?s=20) at the start of the year, and has quickly become the most popular git worktree manager. It's built with love (there's no slop!). Please let me know any frictions at all; I'm intensely focused on continuing to make Worktrunk excellent, and the biggest help is folks posting problems they perceive.
Worktrunk is a CLI for git worktree management, designed for running AI agents in parallel.
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.
A quick demo:

> ### 📚 Full documentation at [worktrunk.dev](https://worktrunk.dev) 📚
<!-- ⚠️ AUTO-GENERATED from docs/content/worktrunk.md#context-git-worktrees..worktrunk-makes-git-worktrees-as-easy-as-branches — edit source to update -->
## 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 give 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
Worktrees are addressed by branch name; paths are computed from a configurable template.
> Start with the core commands
**Core commands:**
<table class="cmd-compare">
<thead>
<tr>
<th>Task</th>
<th>Worktrunk</th>
<th>Plain git</th>
</tr>
</thead>
<tbody>
<tr>
<td>Switch worktrees</td>
<td><pre>wt switch feat</pre></td>
<td><pre>cd ../repo.feat</pre></td>
</tr>
<tr>
<td>Create + start Claude</td>
<td><pre>wt switch -c -x claude feat</pre></td>
<td><pre>git worktree add -b feat ../repo.feat && \
cd ../repo.feat && \
claude</pre></td>
</tr>
<tr>
<td>Clean up</td>
<td><pre>wt remove</pre></td>
<td><pre>cd ../repo && \
git worktree remove ../repo.feat && \
git branch -d feat</pre></td>
</tr>
<tr>
<td>List with status</td>
<td><pre>wt list</pre></td>
<td><pre>git worktree list</pre> (paths only)</td>
</tr>
</tbody>
</table>
> 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 live diff and log previews
- **[Copy build caches](https://worktrunk.dev/step/#wt-step-copy-ignored)** — skip cold starts by sharing `target/`, `node_modules/`, etc between worktrees
- **[`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 <name>` commands and branch-scoped state for hook templates
- ...and **[lots more](#next-steps)**
Multiple parallel agents, same simple commands:

<!-- END AUTO-GENERATED -->
<!-- ⚠️ AUTO-GENERATED from docs/content/worktrunk.md#install..further-reading — edit source to update -->
## Install
**Homebrew (macOS & Linux):**
```bash
brew install worktrunk && wt config shell install
```
Shell integration allows commands to change directories.
**Cargo:**
```bash
cargo install worktrunk && wt config shell install
```
<details>
<summary><strong>Windows & other</strong></summary>
**Windows.** `wt` defaults to Windows Terminal's command, so Winget additionally installs Worktrunk as `git-wt` to avoid the conflict:
```bash
winget install max-sixty.worktrunk
git-wt config shell install
```
Alternatively, disable Windows Terminal's alias (Settings → Privacy & security → For developers → App Execution Aliases → disable "Windows Terminal") to use `wt` directly.
**Arch Linux:**
```bash
sudo pacman -S worktrunk && wt config shell install
```
**Conda / Pixi** (community-maintained [feedstock](https://github.com/conda-forge/worktrunk-feedstock)):
```bash
conda install -c conda-forge worktrunk && wt config shell install
```
Or with [Pixi](https://pixi.sh): `pixi global install worktrunk && wt config shell install`.
</details>
## Quick start
Create a worktree for a new feature:
```console
$ wt switch --create feature-auth
✓ Created branch feature-auth from main and worktree @ ~/repo.feature-auth
```
This creates a new branch and worktree, then switches to it. Do your work, then check all worktrees with [`wt list`](https://worktrunk.dev/list/):
```console
$ wt list
Branch Status HEAD± main↕ Remote⇅ Commit Age Message
@ feature-auth + ↑ +27 -8 ↑1 4bc72dc9 2h Add authentication module
^ main ^⇡ ⇡1 0e631add 1d Initial commit
○ Showing 2 worktrees, 1 with changes, 1 ahead, 1 column hidden
```
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:
```bash
wt step commit # commit staged changes
gh pr create # or glab mr create
wt remove # after PR is merged
```
**Local merge** — squash, rebase onto main, fast-forward merge, clean up:
```console
$ wt merge main
◎ Generating commit message and committing changes... (2 files, +53, no squashing needed)
Add authentication module
✓ Committed changes @ a1b2c3d
◎ Merging 1 commit to main @ a1b2c3d (no rebase needed)
* a1b2c3d Add authentication module
auth.rs | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
lib.rs | 2 ++
2 files changed, 53 insertions(+)
✓ Merged to main (1 commit, 2 files, +53)
◎ Removing feature-auth worktree & branch in background (same commit as main, _)
○ Switched to worktree for main @ ~/repo
```
For parallel agents, create multiple worktrees and launch an agent in each:
```bash
wt switch -x claude -c feature-a -- 'Add user authentication'
wt switch -x claude -c feature-b -- 'Fix the pagination bug'
wt switch -xWhat people ask about worktrunk
What is max-sixty/worktrunk?
+
max-sixty/worktrunk is subagents for the Claude AI ecosystem. Worktrunk is a CLI for Git worktree management, designed for parallel AI agent workflows It has 5.4k GitHub stars and was last updated today.
How do I install worktrunk?
+
You can install worktrunk by cloning the repository (https://github.com/max-sixty/worktrunk) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is max-sixty/worktrunk safe to use?
+
Our security agent has analyzed max-sixty/worktrunk and assigned a Trust Score of 90/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains max-sixty/worktrunk?
+
max-sixty/worktrunk is maintained by max-sixty. The last recorded GitHub activity is from today, with 39 open issues.
Are there alternatives to worktrunk?
+
Yes. On ClaudeWave you can browse similar subagents at /categories/agents, sorted by popularity or recent activity.
Deploy worktrunk to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/max-sixty-worktrunk)<a href="https://claudewave.com/repo/max-sixty-worktrunk"><img src="https://claudewave.com/api/badge/max-sixty-worktrunk" alt="Featured on ClaudeWave: max-sixty/worktrunk" width="320" height="64" /></a>More Subagents
The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
The agent that grows with you
Java 面试 & 后端通用面试指南,覆盖计算机基础、数据库、分布式、高并发、系统设计与 AI 应用开发
Production-ready platform for agentic workflow development.
The agent engineering platform.
🤯 LobeHub is your Chief Agent Operator, organizing your agents into 7×24 operations by hiring, scheduling, and reporting on your entire AI team.