S U P E R S T A R P A R K

每日 GitHub 开源精选

2026.09.14 · 每天一个真正能用的开源工具

同时开 10 个 Claude Code 不打架

今日选题 · 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 的烂摊子,连带把别人的活儿一起撤了。

同一个工作目录 vs 各自的平行宇宙
▲ 左:所有 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 工作流而生。

🔗 仓库
github.com/max-sixty/worktrunk
🛠 语言
Rust
⭐ Star
约 7.1k(今日 +137)
📄 许可
MIT / Apache-2.0
🌐 官网
worktrunk.dev

核心就三个命令

|
你想干嘛
|
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到底该不该装

✅
已经在同时跑 2 个以上 Claude Code / Codex / Cursor Agent
✅
想让 Agent 大胆做实验、又不想它拆家(改崩了删目录就行,主仓库毫发无伤)
✅
用 worktree 但被原生命令折磨过
❌
还在单线程用一个 Agent 慢慢聊——先收藏,等需要并行那天再装

06一句点评

今年 GitHub 有个很清晰的分层:上面是模型、Agent 框架打得火热,下面是**「怎么伺候好一群 Agent」**的基础设施悄悄补齐。Worktrunk 就属于后者——它不写一行业务代码,但它决定了你能同时驾驭 3 个 Agent 还是 15 个。

当「一个人指挥一支 Agent 小队」从炫技变成日常,这类把摩擦系数降到接近零的小工具,价值会远超它的 Star 数。

📦 今日项目:github.com/max-sixty/worktrunk

📚 官方文档:worktrunk.dev

SuperStarPark · 每日 GitHub 开源精选

每天一个真正能用的开源工具 · AI / 开发 / 效率

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐