Worktrunk Skill:让 Git Worktree 接管并行 AI Agent 工作流
在”一个 AI Agent 处理一个任务”的时代,写代码、提 PR 等下一轮迭代还来得及;但当 Claude Code、Codex 这类编码 Agent 开始能独立跑长任务,”如何同时跑 5–10 个 Agent 而不互相把代码踩坏”就成了新瓶颈。Git 原生 worktree 本来就是答案,但 UX 笨重得让人放弃——直到 Rust 写的 worktrunk 把这件事重新做了一遍,GitHub Trending 上已经冲到日榜第 8,它是过去一周最被低估的”Agent 编排层”工具。
一句话定位
Worktrunk 是一款用 Rust 编写的 Git worktree 命令行管理工具,专为并行运行多个 AI 编码 Agent 而设计。它把”开 worktree → 切目录 → 启动 Claude”这一连串繁琐命令压缩成 wt switch -c -x claude feat 一行,并且原生接入 Claude Code 与 Codex 插件体系,已经成为 Anthropic 官方”Git worktree 模式”在 CLI 端的事实配套。
功能与原则
- 三个核心命令:
wt switch、wt list、wt remove,覆盖 90% 日常操作;wt merge、wt step补齐 PR / 本地合并两条收尾路径。 - 零感知切换:通过
wt config shell install注入 shell 函数,让wt switch能真正改写当前 shell 的工作目录——这是普通git worktree add永远做不到的。 - 并行 Agent 编排:每条命令可附加
-x <agent>或--execute,切完 worktree 立刻启动 Claude Code、Codex 或任意 CLI;多 Agent 之间天然隔离,绝不踩到彼此未保存的改动。 - 设计原则:作者把”worktree 应该和 branch 一样好切”作为唯一目标,所有功能(hooks、缓存复用、LLM commit message、CI 状态、PR/MR 跳转)都围绕这条主线展开,没有一处是装饰性配置。
认可度与热度
- GitHub Star:截至 2026-09-13 约 7,296 星,forks 258,本周 +104 stars;
- 多次登上 GitHub Trending 周榜与日榜(2026-09-12 日榜第 8 位),是 Rust 类 CLI 中增速最快的项目之一;
- 同时被 claudeskills.info、claudskills.com、eliteai.tools、LobeHub、SkillsMP、SkillsLLM 等多个 Skills 市场收录为官方插件(
max-sixty/worktrunk),安装量与索引量持续上涨; - 作者 Max Horenstein(max-sixty) 是 PRQL 创始人、Xarray 维护者,长期活跃在 Rust + 数据工具圈,可信度背书强;
- X / LinkedIn / Reddit 上”我用 worktrunk 并行跑 Claude”的实测贴不断增加,被 Anthropic 官方”Agentic Coding 最佳实践”指南与 incident.io 工程博客点名推荐。
链接
- 官方站点:https://worktrunk.dev
- GitHub 仓库:https://github.com/max-sixty/worktrunk
- Claude Code 插件市场:https://claudeskills.info/zh/plugins/max-sixty/worktrunk
原作者
Max Horenstein(GitHub: @max-sixty),资深开源作者。他是查询语言 PRQL(10k+ stars)的创始人,也是 Xarray(Python 生态核心数组库)的维护者,同时参与 Insta 与 Numbagg 等数据/测试工具。他在 2026 年初基于自身并行使用 Claude Code 的真实痛点写下 worktrunk,目前全职投入后续迭代。
详细介绍
Worktrunk 解决的是一个具体而普遍的问题:当 Claude Code、Codex、Cursor Background Agent 这类工具各自都能独立完成长任务时,开发者希望同一时间跑多个 feature 分支的 Agent,但 Git 原生 worktree 命令要求输入分支名三次,再 cd 到路径、再启动工具,整个流程既慢又容易出错。Worktrunk 把这条链路压成单条命令,并把”worktree”这个名词从 Git 高级特性降级为日常动词。
它并不是”AI Skill”脚本层封装,而是一个独立的 Rust CLI:通过 git worktree 接口管理文件系统级目录,再通过 shell 函数实现目录切换,通过 hook 机制自动执行 npm install、启动 dev server、生成 LLM commit message 等周边动作。最近一次发布版本加入了 wt list --full,把每个 worktree 的 CI 状态、ahead/behind、LLM 生成的分支摘要一并显示,等于给并行 Agent 流做了一个轻量级 dashboard。
更关键的是,作者主动把 worktrunk 注册成 Claude Code 与 Codex 的官方插件(plugin),用户在 claude plugin marketplace add max-sixty/worktrunk 之后,Claude 就能在列表里自动识别”哪些 worktree 上有 Agent 在跑(🤖)””哪些在等用户输入(💬)”——这是把 CLI 工具反向喂回 Agent 上下文的经典设计。
主要特点
wt switch -c -x claude feat:一行创建分支 + worktree + 启动 Claude Code,原来要敲 3 行 git + 1 行 cd + 1 行 claude。- Hooks 全生命周期自动化:
on_create/pre_merge/post_merge/post-switch等事件可挂任意命令,自动npm install、跑测试、推 main。 - 构建缓存共享:通过
copy = ["node_modules", ".next", "dist"]配置,10 个 worktree 共用同一份依赖目录,冷启动几乎为零(在 APFS、btrfs、XFS 上原生支持)。 - PR / MR 一键跳转:
wt switch pr:123直接把 PR 的分支 checkout 出来;wt switch mr:42同理。 - LLM 生成 commit message:
wt step commit调用llmCLI 从 diff 生成符合规范的提交说明。 wt list --full工作流仪表盘:分支名、状态、CI 通过/失败、AI 生成的分支摘要一并显示,10 个并行 Agent 的进度一目了然。
使用方法
1. 安装(macOS / Linux 推荐)
brew install worktrunk && wt config shell install
或者从 crates.io:
cargo install worktrunk && wt config shell install
Windows 用户(命令名变成 git-wt):
winget install max-sixty.worktrunk
git-wt config shell install
⚠️
wt config shell install是必需的——它把一个 shell 函数注入到你的~/.zshrc或~/.bashrc,让wt switch能真正切换目录;不执行的话wt switch只在一个子 shell 里改路径,你当前 shell 仍停在原地。
2. 最小示例:单 feature 分支
cd ~/projects/my-app
wt switch --create feature-auth
# ✓ Created branch feature-auth from main and worktree @ ~/my-app.feature-auth
3. 并行启动多个 Claude Code 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'
4. 一条命令收尾合并
wt merge main
# squash → rebase → fast-forward → 删除 worktree & 分支
5. 注册为 Claude Code 插件
claude plugin marketplace add max-sixty/worktrunk
claude plugin install worktrunk@worktrunk --scope project
之后 Claude 在 wt list 输出里就能自动标注”🤖 Agent 在跑 / 💬 等用户输入”。
使用场景与人群
- 场景 1:一人多任务并行——产品经理要 4 个不同 feature 同时推进,每条交给一个 Claude Code Agent,互不踩文件。
- 场景 2:大型 PR 评审前隔离环境——为每个待评审 PR 跑一个 worktree,CI 跑完再
wt remove,干净不留痕。 - 场景 3:CI/数据库/微服务多实例调试——通过
hash_port模板过滤器,每个 worktree 自动分配唯一端口,多套 dev server 同时跑。 - 场景 4:Hackathon / 周报冲刺——8 小时里想试 6 个不同方案,每个方案一个 worktree + 一个 Agent,跑完择优合并。
- 目标人群:每天重度使用 Claude Code / Codex / Cursor Agent 的个人开发者与小型团队;对”保持当前 shell 状态”有强需求的命令行重度用户;以及任何需要”同一仓库多 feature 并行 + 不丢上下文”的工程团队。
输入与输出案例
案例 1:单 feature → 提交 → 合并
Input:
wt switch --create feature-auth
# 切到新 worktree 后编辑代码
wt list
# @ ~/my-app.feature-auth + ↑1
wt step commit # 用 LLM 自动生成提交说明
# ✓ Committed changes @ a1b2c3d
gh pr create
wt merge main
# ✓ Merged to main (1 commit, 2 files, +53)
Output:feature-auth 分支已 squash 进 main,本地 worktree 与分支被自动清理,shell 直接回到 ~/my-app。
案例 2:3 个 Agent 并行
Input:
wt switch -x claude -c feat/billing -- 'Implement Stripe subscription billing with webhooks'
wt switch -x claude -c feat/rbac -- 'Add role-based access control with middleware guards'
wt switch -x claude -c feat/export -- 'Build CSV/JSON export with date range filtering'
wt list --full
# feat/billing ../my-app.feat/billing 🤖 ↑3 + Summary: "Add Stripe webhook handler"
# feat/rbac ../my-app.feat/rbac 🤖 ↑5 + Summary: "Role middleware + tests"
# feat/export ../my-app.feat/export 💬 ↑2 + Summary: "Export endpoint, needs auth"
Output:3 个独立 worktree 各自运行 1 个 Claude Code Agent,状态在 wt list --full 一屏内可视;CI 通过 + LLM 摘要确认无误后,逐个 wt merge main 即可把完成的 feature 收进主干,失败的随时 wt remove feat/export 直接弃掉。
评论区
登录后可评论。