同时开 10 个 Claude Code 不打架: 这个 Rust 小工具把 Git Worktree 救活了
S U P E R S T A R P A R K
每日 GitHub 开源精选
2026.09.14 · 每天一个真正能用的开源工具

今日选题 · max-sixty/worktrunk
⚡ 3 秒速览
它是什么 — 让 git worktree 变得和切分支一样简单的 Rust CLI
解决什么 — 多个 AI Agent 挤在同一目录互相覆盖、回滚连带误伤
值不值得装 — 已并行跑 2 个以上 Agent 就值得,装完 3 分钟上手
今天这个项目,不写业务代码,也不卷模型。它解决的是一个正在变得非常普遍的工程问题——当你开始同时指挥一群 AI Agent 干活时,怎么让它们不打架。
01先说个你一定遇到过的场景
你让 Claude Code 去重构支付模块,同时又想让 Codex 补测试、再让另一个 Agent 修那个挂了三天的分页 bug。
结果:三个 Agent 挤在同一个工作目录里,互相覆盖文件;你 git stash 一下,另一个 Agent 的正确改动也跟着没了;想回滚某个 Agent 的烂摊子,连带把别人的活儿一起撤了。

▲ 左:所有 Agent 挤一个目录,互相覆盖;右:每个 Agent 一个平行宇宙
Git 其实早就有解药——worktree。它让你在同一个仓库里同时开出多个「平行宇宙」,每个 Agent 在自己的目录里折腾,互不干扰。
连 Anthropic 官方的 Claude Code 最佳实践,都专门推荐了这个模式。
但问题是:原生 worktree 的 UX 实在太糙了。开一个新工作区,分支名要手打三遍:
git worktree add -b feat ../repo.feat && cd ../repo.feat
收尾更烦:删目录、删分支、确认是否已合并……一顿操作下来,你开 Agent 的兴致已经没了。
02今天的主角:Worktrunk
一句话:让 git worktree 变得和 git branch 一样顺手的命令行工具,为并行 AI Agent 工作流而生。
核心就三个命令
|
你想干嘛
|
Worktrunk
|
原生 git
|
| — | — | — |
|
切工作区
|
wt switch feat
|
cd …/repo.feat
|
|
新建+拉起 Claude
|
wt switch -c -x claude feat
|
建目录+cd+手动启动
|
|
看全部状态
|
wt list
|
只有路径
|
|
收尾清理
|
wt remove
|
删目录+删分支
|
分支名即地址,路径由模板自动算出来,你再也不用记 ../repo.feat 到底建在哪了。
03真正好用的是这 5 点
按顺序看,第 2 条和第 3 条最容易被忽略,但恰恰是敢放 Agent 并行干活的前提。

▲ 开工位 → 跑 Agent → 合代码,一条命令串起来
1️⃣ 一行命令开一个「Agent 工位」
wt switch -c -x claude feature-a -- '给用户模块加鉴权'
wt switch -c -x claude feature-b -- '修掉分页的 off-by-one'
wt switch -c -x claude feature-c -- '给 API 补集成测试'
-x 表示切换后直接执行命令,-- 后面的内容原样传给 Agent 当初始 prompt。三条命令,三个独立目录,三个并行开工的 Agent。
2️⃣ 共享构建缓存,不再每个目录重装依赖
十个 worktree,就要装十次依赖?Worktrunk 在 APFS / btrfs / XFS 上用写时复制共享 node_modules/、target/、.next/,开新工位几乎零冷启动成本。这一条对前端和 Rust 项目来说是质变。
3️⃣ 钩子系统:把流程固化进配置
# .worktrunk.toml
[hooks]
on_create = "pnpm install" # 建好工位自动装依赖
pre_merge = "pnpm test && lint" # 合入前跑测试,挂了就拦住
post_merge = "git push origin main"
[create]
copy = ["node_modules", ".next"]
配合 pre_merge 门禁,Agent 交上来的代码得先过测试才有资格合并——这才是敢放手让 Agent 并行干活的前提。
4️⃣ wt list 是全局作战地图
@ feature-api + ↕⇡ +54 -5 ↑4 6814f02a 30m Add API tests
^ main ^⇅ ⇡1 41ee0834 4d Merge fix-auth
@ 是当前工位,+ 是有暂存改动,↑4 表示领先默认分支 4 个提交。加 --full 还会带出 CI 流水线状态和 LLM 生成的变更摘要。
💡 装了 Claude Code 插件后,wt list 里甚至能看到 🤖(Agent 正在干)和 💬(Agent 在等人答复)——哪个 Agent 卡住等你了,一眼看见。
5️⃣ 收尾不纠结
wt merge main 一条龙:用 LLM 生成提交信息 → squash → rebase → fast-forward 合并 → 后台清理 worktree 和分支。
它还会用「同提交 / 祖先关系 / 树 SHA / patch-id 匹配」等六级判断确认分支确实已合入,才敢删。另外 wt switch pr:123 可直接跳到某个 PR 的分支,hash_port 模板给每个工位分配唯一端口,多个 dev server 同时跑不撞车。
04三分钟上手

▲ 四条命令走完一轮,右边两条是新手最容易踩的坑
# macOS / Linux
brew install worktrunk && wt config shell install
# 或者用 Cargo
cargo install worktrunk && wt config shell install
# Windows(wt 被 Windows Terminal 占了,装成 git-wt)
winget install max-sixty.worktrunk
git-wt config shell install
⚠️ 别忘了wt config shell install。这是 shell 集成,不装的话 wt switch 没法真正改变终端的当前目录。
wt switch -c feature-auth # 建工位并切过去
# ... 让 Agent 干活 ...
wt list # 看看各路进展
wt merge main # 验收合并,自动清理
05到底该不该装
06一句点评
今年 GitHub 有个很清晰的分层:上面是模型、Agent 框架打得火热,下面是**「怎么伺候好一群 Agent」**的基础设施悄悄补齐。Worktrunk 就属于后者——它不写一行业务代码,但它决定了你能同时驾驭 3 个 Agent 还是 15 个。
当「一个人指挥一支 Agent 小队」从炫技变成日常,这类把摩擦系数降到接近零的小工具,价值会远超它的 Star 数。
📦 今日项目:github.com/max-sixty/worktrunk
📚 官方文档:worktrunk.dev
SuperStarPark · 每日 GitHub 开源精选
每天一个真正能用的开源工具 · AI / 开发 / 效率
更多推荐

所有评论(0)