mrkeyoor.com_
Tue 01 Sept 17:40 UTC
Dev Toolsevaluationupdated 26 Aug 2026

worktrunk review

Worktrunk is a Rust command-line tool that makes Git worktrees easier to create, inspect, merge, and remove. It is designed for developers running several coding agents or feature branches at once, with hooks, per-worktree status, shell integration, and agent activity markers.

+125stars / 7d
Verdict

Our Worktrunk build took 169 seconds and 3,054 of 3,056 tests passed, with both failures leaving the cargo test command at exit 101. It is a good choice for experienced Git users who run parallel agents often enough to justify automated setup, status, and cleanup. Learn its approval and removal behavior on a disposable repository before trusting the one-command merge path with valuable uncommitted work.

We ran it

Lab card: what happened when we ran worktrunkScreenshot of worktrunk (worktrunk.dev)
Install✓ · 43s382 packages
Build✓ · 169s
Tests✗ · 180s3054 passed · 2 failed of 3056 (cargo test)
Repo1659 files~253,876 lines of source · 15.1 MB · 15 CI workflows · tests dir

Answers from our run

Does worktrunk build from source?

Dependencies installed in 43 seconds (382 packages), and the build succeeded in 169 seconds. We cloned commit 50245a5 into a clean Debian container with 3 CPUs and no project-specific setup.

Do worktrunk's tests pass?

Not all of them: 3054 of 3056 passed and 2 failed when we ran the project's own test command (cargo test). Some failures need services or credentials a bare container does not have.

Who should not use worktrunk?

Git beginners who would struggle to recover from an incorrect merge or removal: wt merge can commit, rebase, fast-forward, and clean up in one command.

What are the alternatives to worktrunk?

Git worktree, gwq, lazygit. Our Worktrunk build took 169 seconds and 3,054 of 3,056 tests passed, with both failures leaving the cargo test command at exit 101.

Setup4/5Many binary installers; source build took 169 seconds
Docs5/5Commands, hooks, approvals, agents, and platform quirks are explicit
Community5/56,648 stars with same-day pushes and detailed issue activity
Maturity4/5Fast release work and deep tests, with 2 failures in our run

Discussed on

  1. hnWorktrunk – CLI for Git worktree management14 points
  2. hnWorktrunk – A CLI tool to manage multiple worktrees in Git repositories3 points

Who it’s for

Developers who regularly run Claude Code, Codex, or other agents on parallel branches.
Teams that already understand Git branches, worktrees, rebasing, and clean versus dirty state.
Terminal users who want one command to create a worktree and launch its task.
Maintainers willing to review project hooks before approving their execution.

Who it’s NOT for

Git beginners who would struggle to recover from an incorrect merge or removal: wt merge can commit, rebase, fast-forward, and clean up in one command.
Teams that cannot audit repository-provided hooks and aliases: Worktrunk has an approval system because those commands can execute local processes.
Users who require every supported agent to have automatic activity tracking: issue 3847 says Copilot CLI has no plugin, only a manual marker convention.
Windows users who must keep the wt Windows Terminal alias: the README installs Worktrunk as git-wt unless that alias is disabled.
Projects using unborn linked worktrees unless they verify the fix: our tests failed when git worktree add found no valid HEAD.

Setup reality

Our sandbox installed 382 Rust packages in 43 seconds. The build succeeded in 169 seconds. Tests exited 101 after 180 seconds: cargo reported 3,054 passed and 2 failed out of 3,056. The shown failure created a linked worktree whose git worktree add command said HEAD was not a valid object name.

Most users can install a binary through Homebrew, Winget, Arch Linux, Conda, or the release script, then add shell integration. Building from source needs the Rust toolchain. LLM commit messages, CI status, and agent plugins may also need their respective CLIs or credentials.

Hooks can install dependencies, start servers, or run custom commands in each worktree. They are useful precisely because they execute local processes. Project approval, worktree path templates, branch cleanup rules, and trash behavior should be tested on a disposable repository first.

Worktrunk turns branch names into working directories

Git worktrees let several branches exist in separate directories without cloning the repository repeatedly. The underlying command is capable, but creating a branch, choosing a sibling path, moving into it, and later cleaning both the worktree and branch takes care. Worktrunk computes paths from branch names and wraps that sequence in wt switch, wt list, wt merge, and wt remove. For frequent parallel work, the saved bookkeeping is real.

The clearest use case is agent concurrency. One command can create a branch and worktree, enter it through shell integration, launch Claude Code or another process, and pass the task text. Developers can start 3 agents on separate branches without sharing a working directory. wt list then shows dirty state, ahead and behind counts, commits, age, CI status, and optional activity markers instead of only printing filesystem paths.

Hooks save setup time after you approve their commands

A new worktree often needs dependencies, copied environment files, caches, a database, and a development server. Worktrunk hooks can run on creation, before or after start, and around merge steps. It can copy ignored build caches such as node_modules or Rust's target directory so every branch does not pay the same cold start. Per-worktree port templates help several servers coexist.

Those hooks execute commands on the machine, so Worktrunk asks users to approve project configuration. Release 0.74.0 added wt config approvals add --yes for non-interactive containers and CI, while still failing if it cannot save the approval. Treat approval as code review, especially in a repository you just cloned. A convenient post-start command can install dependencies or launch a server because it has the same local process access as your shell.

What happened when we ran it

Our Rust sandbox installed 382 packages in 43 seconds and built Worktrunk in 169 seconds. The test command ran for 180 seconds and exited 101. Cargo's aggregate result was 3,054 passed and 2 failed out of 3,056. That is broad passing coverage, but the command itself failed and should remain red in an adoption report.

The displayed failure was branches_for_completion_includes_unborn_linked_worktree. Its temporary repository ran git worktree add -b feature, which returned fatal: not a valid object name: 'HEAD'. The sub-suite summary showed 1,527 passed and 1 failed. The supplied log does not say why the temporary repository lacked a valid object or whether both aggregate failures shared that condition, so we do not infer more.

commit 50245a5 contained 1,659 files and about 253,876 lines of source in a 15.1 MB checkout. The repository had 15 CI workflow files and a tests directory, with no Dockerfile. Source installation and compilation are heavier than downloading a binary, which is the sensible route for most users. Our build and test together took 349 seconds before any real worktree workflow was exercised.

Merge and removal deserve more respect than switch

wt switch is mostly organizational. wt merge can generate a commit message, commit changes, rebase onto a target, fast-forward the target, then remove the worktree and branch. That is attractive when the policy matches your team. It also concentrates several state-changing Git operations behind one command. Use a protected remote, inspect the preview, and understand how conflicts and dirty files stop the sequence.

The 0.74.0 release notes describe a fixed case where wt remove --force could delete a live sibling worktree that had moved onto another registered path, including uncommitted work. The fix now requires the directory and registration to name each other. The same release tightened cross-filesystem promotion so a source is not deleted after an incomplete copy. These fixes show careful maintenance and why updates matter for a tool that cleans directories.

Agent integration is useful but uneven

The documentation links dedicated workflows for Claude Code and supports agent-oriented summaries and markers. The README also uses Codex in its explanation of parallel work. Issue 3847 says GitHub Copilot CLI did not have an activity-tracking plugin in version 0.74.0. Users can set and clear markers manually through Worktrunk state, but lifecycle automation is absent unless that agent exposes suitable hooks.

LLM-generated commit messages are optional. They can save time after a diff is ready, yet the generated text still needs review before it becomes history. Worktrunk's lasting value comes from worktree paths, status, hooks, and safe cleanup. Teams should be able to use those pieces even if a model provider, CLI integration, or credential is unavailable.

August 2026 activity is unusually fast

GitHub recorded a push on August 26, 2026, 12 days after release 0.74.0. The repository had 6,648 stars and 43 combined open issues and pull requests when fetched. Issue discussions include detailed reproduction, design, and performance analysis rather than only short feature requests. The same day also had a nightly-test failure report, which gives adopters a current signal to inspect before upgrading.

The README says Worktrunk launched near the start of 2026, so the high version number does not mean years of stability. Rapid iteration has produced deep workflows and many safety fixes quickly. Pin a release across a team, read removal-related notes, and upgrade deliberately. The project is active enough that behavior and configuration can change faster than an occasional user expects.

Worktrunk pays off when worktrees are daily infrastructure

For 1 extra branch every few months, plain git worktree is easier to reason about. For several simultaneous agents, Worktrunk removes repeated path typing and makes the whole set visible. Our 3,054 passing tests and current release activity support a serious trial, while the 2 failures and recent deletion fixes argue for cautious rollout.

Install the binary, create a disposable repository, configure shell integration, and rehearse switch, list, merge, and remove. Add hooks only after the core lifecycle is predictable. If the team can explain where every worktree lives and what cleanup will delete, Worktrunk is a productive layer over Git rather than hidden magic.

Alternatives

ProjectWhat it isPick it when
Git worktreeGit's built-in worktree commands provide the underlying isolation without another manager.pick this instead when a few explicit commands and scripts are easier to audit than Worktrunk's automation.
gwqA command-line worktree manager with fuzzy selection and repository management.pick this instead when you want a focused worktree selector without Worktrunk's merge and agent workflow surface.
lazygit gh↗A terminal Git interface covering branches, commits, diffs, and worktree operations.pick this instead when a visual terminal Git client matters more than agent-oriented worktree automation.

What people are saying

  1. [github-trending] max-sixty/worktrunk

Sources

  1. Worktrunk README
  2. Worktrunk 0.74.0 release
  3. Nightly test failure report
  4. Copilot CLI activity tracking request

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →