worktrunk
max-sixty/worktrunk加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图:Worktrunk 官方 Logo —— 一个工具只有把摩擦降到零,才会有人每天敲它。
想象一个周三的下午。你让 Claude Code 去重构支付模块,自己转头去修一个线上偶发的分页 bug,同时让 Codex 写一批 API 测试。三个任务同时开工,但它们都指向同一个仓库、同一份 main 分支。
十分钟后你发现:三个 Agent 里有两个把 src/utils/ 改得面目全非,第三个在提交时发现工作区有未提交的残留代码,直接放弃了提交。你的并行计划变成了一场三人混战。
这不是 Agent 变笨了,而是 Git 的 worktree 机制太难用。Git 原生确实支持 worktree——多个工作目录共享同一个 .git 仓库,可以同时检出不同分支,互不干扰。但它的命令行体验劝退了大多数人:建一个 worktree 要把分支名敲三遍。
git worktree add -b feat ../repo.feat # 建 worktree
cd ../repo.feat # 切过去
# ... 干完活还要手动清理
git worktree remove ../repo.feat && git branch -d feat
Worktrunk(wt)就是来解决这件事的。

图:Worktrunk 核心命令演示——wt switch、wt list、wt merge、wt remove 四个命令覆盖日常几乎全部 worktree 操作。
同样的事情变成:
wt switch -c feature-auth # 建分支 + 建 worktree + 切进去,一步到位
wt list # 一屏看清所有 worktree 的状态
wt merge main # 提交、rebase、合并、清理,一条命令走完
wt remove # 拆掉临时 worktree
Worktrunk 是一个用 Rust 编写的 Git worktree 管理 CLI,专为"多个 AI Agent 并行工作"这一场景设计。 截至 2026 年 10 月,它在 GitHub 上已积累 9,373 star、334 fork,成为该领域增长最快的工具之一。
有意思的是,Worktrunk 不是一个先做通用工具再找 AI 场景的产物。它的仓库描述第一句就是 "designed for parallel AI agent workflows"——它从第一天就是为 Agent 并行而生的。
作者 max-sixty 在 2025 年 10 月 17 日创建了这个仓库,2026 年 1 月正式发布。README 里有一句很直白的话:
"Worktrunk was released 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!)."
"没有 slop"(没有糊弄的代码)这个说法很关键。我们后面会看到,这个项目在工程细节上的打磨程度,在开源工具里确实少见:
它还提供了一套完整的 Agent 集成:plugins/worktrunk(插件)、skills/worktrunk 与 skills/wt-switch-create(Agent 技能)、.claude-plugin/、.codex/、.claude/、.agents/、以及一个 Gemini 扩展 gemini-extension.json。也就是说,Claude Code、Codex、Gemini CLI 都能原生理解它。

图:Zellij 多标签页中并行运行多个 Claude Agent,配套 hooks、LLM 提交信息与 merge 工作流——这就是 Worktrunk 面向的主战场。
打个比方。原生 git worktree 像是手动拆装家具——零件都在箱子里,螺丝刀在你手上,但说明书只有半页,你得自己判断哪颗螺丝先拧。
Worktrunk 则是已经装好的带轮办公桌:拉开抽屉就是常用的零件,按编号直接取用;桌子还能按你的房间尺寸定制摆放方式(路径模板),也能贴标签(别名)。
再具体一点:
| 痛点 | 原生 Git | Worktrunk |
|---|---|---|
| 建 worktree | 分支名敲 3 遍 | wt switch -c feature |
| 路径命名 | 手工规划目录 | 模板化(可含 hash_port、分支名等过滤器) |
| 看全局状态 | git worktree list 只有路径 | wt list 显示暂存/领先/落后/CI 状态/PR 链接/AI 摘要 |
| 清理 | 手动 remove + 删分支 | wt remove |
| 合并 | 手动 commit + rebase + merge | wt merge main 一条龙 |
| 并行 Agent | 自己写脚本分配目录 | wt switch -x claude -c feat-a -- '任务描述' |
README 里有一张直观的对比表,把 Worktrunk 与 Plain git 并排放:
wt switch feat ↔ cd ../repo.featwt switch -c -x claude feat ↔ git worktree add -b feat ../repo.feat && cd ../repo.feat && claudewt remove ↔ git worktree remove ../repo.feat && git branch -d featwt list ↔ git worktree list(只给路径)-x 参数是 Worktrunk 的灵魂:切换完成后直接执行一条命令。配合 -- 传递参数,一行就能起一个带任务描述的 Agent:
wt switch -x claude -c feature-a -- 'Add user authentication'
wt switch -x claude -c feature-b -- 'Fix the pagination bug'
wt switch -x claude -c feature-c -- 'Write tests for the API'
hooks/hooks.json 定义了生命周期钩子:create(创建时)、pre-merge、post-merge 等节点可以挂任意命令。典型用法是创建 worktree 后自动装依赖、起开发服务器。源码里 src/commands/hooks.rs、hook_commands.rs、hook_plan.rs、hook_filter.rs 形成了一套完整的钩子系统,还有 src/config/approvals.rs 做命令审批——这是给 AI Agent 场景补的安全阀:Agent 想执行危险命令时,可以被拦住要人确认。
src/llm.rs 实现了基于 diff 生成 commit message 的能力。它不绑定任何一家模型,而是把 LLM 命令交给用户的 shell 执行,源码里通过 render_llm_invocation 把调用渲染成 <shell> <args> '<quoted-command>' 的形式展示给用户看——透明,而不是黑盒。模板层用 minijinja 实现,squash 提交信息模板可以自定义。
src/commands/picker/ 目录实现了终端交互式 picker,可以流式展示 CI 状态、diff、log、PR 和评论预览。src/commands/statusline.rs 则是给 Claude Code 这类工具做状态栏集成(仓库里有 docs/public/claude-code.md 专门讲这块)。
这是最有工程含量的一项。十个 worktree 各自编译一遍 Rust/Java/Node 项目是巨大浪费。Worktrunk 的 wt step --copy-ignored 借助 APFS、btrfs 和 XFS 的写时复制能力,让每个 worktree 都能"免费"拥有 target/、node_modules/ 等被 gitignore 的目录——不真的复制数据,而是共享底层块。依赖 reflink-copy crate 实现。
templates/ 目录内置了 bash、zsh、fish、nushell、powershell 五种 shell 集成脚本。配置用 TOML(toml + toml_edit 依赖),模板变量通过 minijinja 渲染,支持按分支作用域的状态变量。src/config/expansion.rs 里的 codename 过滤器用 petname 生成随机代号生成工作树路径——依赖版本被精确锁定(=3.2.0),因为升级会让所有老用户的路径静默漂移。
brew install worktrunkcargo install worktrunkwinget install max-sixty.worktrunk(Windows Terminal 默认占用 wt,所以额外装成 git-wt)sudo pacman -S worktrunkflake.nix + flake.lock门槛低到不像话:
brew install worktrunk && wt config shell install
wt config shell install 是关键一步——它把 shell 集成写进你的 rc 文件,让 wt switch 能真正改变当前 shell 的工作目录(而不只是子进程里 cd)。这是唯一"必须做"的动作。
坑一:命令名冲突。 Windows 上 wt 是 Windows Terminal 的默认别名,作者的解法是同时装一个 git-wt。macOS/Linux 上一般无冲突,但如果你自己写过 wt 别名,得先清掉。
坑二:LLM 相关功能需要你自己配好 CLI。 LLM commit message、CI 状态拉取都依赖外部工具(Claude Code、Codex、gh/glab CLI),工具不在 PATH 里就是静默失败或报错。
它是 CLI,不是 Web 应用。 没有 Docker 镜像、没有 Web UI、没有 K8s 编排文件——仓库里连一个 Dockerfile 都没有。这不是缺陷,而是定位:它是装在你本地的开发工具(类似 git、rg、fd),不是可部署的服务。
不回避问题,这个项目有几个真实存在的不确定性:
1. 巴士因子极低。 79 位贡献者中,核心作者一人贡献 4,090 次,第二名是机器人(773 次),真实人类贡献者加起来不足 50 次。README 中作者本人写道 "I'm intensely focused on continuing to make Worktrunk excellent, and the biggest help is folks posting problems they perceive"——明确承认这是单点依赖。作者一旦精力转移,项目维护存在不确定性。
2. 高频发布节奏带来的稳定性风险。 最新版本 v0.81.0 发布于 2026-10-20,仅两天前。版本号仍在 0.x,说明作者自己也还没到"接口稳定"阶段。仓库当前有 33 个未合并的 PR,说明社区参与度高但合并节奏也高。
3. 生态绑定风险。 它的核心卖点是"为 Claude Code / Codex 设计",深度依赖这些 Agent 工具的行为约定。一旦主流 Agent 的 CLI 接口或工作流发生变化,Worktrunk 的"AI 特色"部分会迅速贬值。好消息是它的 Git worktree 基础能力是通用的——即使不用 AI,它依然是优秀的 worktree 管理器。
4. Agent 自动化本身的安全隐忧。 wt switch -x claude 这类命令把"启动一个能改代码的 Agent"变成了一行命令,配合 hooks 自动执行任意 shell 命令,这实质上是把代码执行权限批量下放。项目用 src/config/approvals.rs 做了审批机制,但默认配置是否足够安全,取决于用户自己。
5. 平台差异。 COW 缓存共享依赖 APFS / btrfs / XFS,在 Windows NTFS 或 ext4 上不可用——而 ext4 恰恰是很多 Linux 服务器的默认文件系统(虽然服务器上一般不会跑这个工具)。
Worktrunk 的 9,373 star 不是一个"Git 周边小工具"该有的数字。它的热度说明一件事:AI 编程的瓶颈已经从"模型能不能写代码"转移到了"人类怎么组织多个 Agent 同时干活"。
当 Claude Code、Codex 这类工具能连续运行 30 分钟以上不需要人工干预时,最自然的下一步就是同时跑 5-10 个。而一旦要这么做,每个 Agent 都需要一个独立的工作目录——这正是 Git worktree 的用武之地。Worktrunk 做的不是"发明一个新概念",而是把一个存在了十年的 Git 功能,翻译成 AI 时代的用户界面。
从产品视角看,它的几个选择很有代表性:
它的做法值得借鉴的一点是:开源工具想成为 AI 时代的基础设施,光有功能不够,还要有工程纪律。 README 里那句 "there's no slop"(没有糊弄的代码),某种程度上就是这 9,373 颗 star 的真实注脚。
| 维度 | 结论 |
|---|---|
| 语言 | Rust(10.7 MB,97%+),另含 Shell / TypeScript / Nix / Nushell / PowerShell |
| 核心依赖 | clap(CLI)、minijinja(模板)、git2/gix(Git 操作)、reflink-copy(COW)、petname、rayon |
| 架构 | 二进制 crate worktrunk + 可选 cli feature 库模式;模块化 src/commands、src/config、src/git、src/shell |
| 测试 | 75 个测试文件 + 1,253 个快照,Codecov 覆盖率 99% |
| CI | 16 条 Actions 工作流,含覆盖率、基准、nightly、发布、文档 |
| 许可证 | MIT OR Apache-2.0(双许可) |
| 容器化 | 无 Dockerfile / compose / K8s(本地 CLI 工具,定位如此) |
| Web UI | 无 |
| 部署难度 | 低(brew/cargo 一行安装 + wt config shell install) |
| 硬件要求 | 无 GPU;内存 512MB+;磁盘 ~100MB |