<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)
> **December 2025**: I've been using Worktrunk as my daily driver, and am releasing it as Open Source this week; I think folks will find it really helpful. It's built with love (there's no slop!). If social proof is helpful: I also created [PRQL](https://github.com/PRQL/prql) (10k stars) and am a maintainer of [Xarray](https://github.com/pydata/xarray) (4k stars), [Insta](https://github.com/mitsuhiko/insta), & [Numbagg](https://github.com/numbagg/numbagg).
Worktrunk is a CLI for git worktree management, designed for parallel AI agent workflows. Git worktrees give each agent an isolated branch and directory; Worktrunk adds branch-based navigation, unified status, and lifecycle hooks. Creating a new agent workspace is as immediate as `git switch`.
Here's a quick demo:

> ## π Full documentation at [worktrunk.dev](https://worktrunk.dev) π
## Context: git worktrees
AI agents like Claude and Codex can increasingly handle longer tasks without supervision, and it's very practical to run several in parallel. But on a single file tree they step on each other's uncommitted changes.
Git worktrees are a great primitive for this: multiple working directories sharing one `.git`.
But git worktrees' UX is clunky: `git worktree add -b feature ../repo.feature`, then `cd ../repo.feature`, then `git worktree remove ../repo.feature`.
## What Worktrunk adds
Worktrunk makes worktrees easy to use β branch-based navigation, unified status, and workflow automation.
**Core commands:**
| Switch worktrees | `wt switch feature` | `cd ../repo.feature` |
| Create + start Claude | `wt switch -c -x claude feature` | `git worktree add -b feature ../repo.feature && cd ../repo.feature && claude` |
| Clean up | `wt remove` | `cd ../repo && git worktree remove ../repo.feature && git branch -d feature` |
| List with status | `wt list` | `git worktree list` (paths only) |
**Workflow automation:**
- **[Lifecycle hooks](https://worktrunk.dev/hooks/)** β run commands on create, pre-merge, post-merge
- **[LLM commit messages](https://worktrunk.dev/llm-commits/)** β generate commit messages from diffs via [llm](https://llm.datasette.io/)
- **[Merge workflow](https://worktrunk.dev/merge/)** β squash, rebase, merge, clean up in one command
- ...and lots more.
## Core commands in practice
Create a worktree for a new task:
```bash
$ wt switch --create fix-auth
β
Created new worktree for fix-auth from main at ../repo.fix-auth
```
Switch to an existing worktree:
```bash
$ wt switch feature-api
β
Switched to worktree for feature-api at ../repo.feature-api
```
See all worktrees at a glance:
```console
$ wt list
Branch Status HEADΒ± mainβ Path Remoteβ
Commit Age Message
@ feature-api + ββ‘ +54 -5 β4 β1 ./repo.feature-api β‘3 28d38c20 30m Add API tests
^ main ^β
./repo β‘1 β£1 2e6b7a8f 4d Merge fix-auth:β¦
βͺ Showing 3 worktrees, 1 with changes, 2 ahead
```
Clean up when done:
```bash
$ wt remove
π Removing feature-api worktree & branch in background (already in main)
```
## Install
**Homebrew (macOS & Linux):**
```bash
$ brew install max-sixty/worktrunk/wt
$ wt config shell install # allows commands to change directories
```
**Cargo:**
```bash
$ cargo install worktrunk
$ wt config shell install
```
## Next steps
- Learn the core commands: [wt switch](https://worktrunk.dev/switch/), [wt list](https://worktrunk.dev/list/), [wt merge](https://worktrunk.dev/merge/), [wt remove](https://worktrunk.dev/remove/)
- Set up [project hooks](https://worktrunk.dev/hooks/) for automated setup
- Explore [LLM commit messages](https://worktrunk.dev/llm-commits/), [fzf-like picker](https://worktrunk.dev/select/), [Claude Code integration](https://worktrunk.dev/claude-code/)
- Run `wt --help` or `wt <command> --help` for quick CLI reference
## Further reading
- [Claude Code: Best practices for agentic coding](https://www.anthropic.com/engineering/claude-code-best-practices) β Anthropic's official guide, including the worktree pattern
- [Shipping faster with Claude Code and Git Worktrees](https://incident.io/blog/shipping-faster-with-claude-code-and-git-worktrees) β incident.io's workflow for parallel agents
- [Git worktree pattern discussion](https://github.com/anthropics/claude-code/issues/1052) β Community discussion in the Claude Code repo
- [git-worktree documentation](https://git-scm.com/docs/git-worktree) β Official git reference
> ## π Full documentation at [worktrunk.dev](https://worktrunk.dev) π