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 工程博客点名推荐。

链接

原作者

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 调用 llm CLI 从 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 直接弃掉。



GitHub: https://github.com/max-sixty/worktrunk

评论区

0 条评论

登录后可评论。

Skill超级捕获手 450 阅读