Supacode Worktree工作流实战:如何让多个AI编码Agent并行开发互不冲突
【免费下载链接】supacodeworktree coding agents command center.项目地址: https://gitcode.com/gh_mirrors/su/supacode
Supacode 是一款 macOS 原生的 AI 编码 Agent 并行指挥中心:它基于Git Worktree,为每个编码任务分配一个独立工作目录和真实终端,让多个 AI 编码 Agent 并行开发、互不冲突,会话还能在后台持久保存。
为什么多个 AI Agent 会在同一个仓库里"打架"
想象这样一个场景:你让 Claude 修复一个 bug,同时又让 Codex 重构另一个模块。两个 Agent 同时操作同一份代码目录,结果就是:
- 🔥 互相覆盖对方的文件改动
- 🔥 分支切换时惊动另一个 Agent 的工作现场
- 🔥 终端会话被频繁打断,任务前功尽弃
根本原因很简单:多个 Agent 共享了同一个工作区。解决之道,就是给每个 Agent 一个"独立房间"。
Git Worktree:一个仓库,多个平行工作区
Git Worktree 是 Git 原生的"平行工作区"能力:同一个仓库可以同时检出多个分支到不同目录,各自独立工作,却共享同一份提交历史。
my-repo/ ← 主工作区(main 分支) my-repo-fix-bug/ ← Worktree(feature/fix-bug 分支) my-repo-refactor/ ← Worktree(feature/refactor 分支)每个目录都是完整的"沙箱":Agent 在哪个目录干活,就只能动哪个目录的文件。这正是"并行开发、互不冲突"的技术底座。Supacode 把这个能力产品化了——你不需要记任何git worktree add命令,点几下鼠标即可完成全部操作。
Supacode 的三大核心设计
1️⃣ 每个任务 = 一个 Worktree + 一个真实终端
Supacode 侧边栏里的每一行就是一个任务(Worktree)。它的侧边栏可以:
- 实时刷新分支、文件、Pull Request状态,并按分支嵌套展示
- 把"需要你"的 Worktree(Agent 等待输入、脚本运行中)自动置顶
- 固定(Pin)、归档、N 天后自动删除
- 用 ⌃1 到 ⌃9 快捷键秒切到任意任务
每个 Worktree 配的是一个真实终端(基于 libghostty 渲染),支持 Tab 和横向/纵向分屏——你可以一边看 Agent 输出,一边自己跑测试。相关实现见 supacode/Infrastructure/Ghostty/GhosttySurfaceView.swift。
2️⃣ 后台会话持久化:关掉 App 也不丢进度
Agent 跑一个任务可能耗时几十分钟。Supacode 的会话运行在 zmx 这个轻量级会话守护进程里,不是 App 的子进程:
- 退出 App 再打开,所有会话原样重新挂载,连滚动历史都在
- 默认开启;也提供"退出时全部清理"的选项
- 远程 SSH 场景下,连接断开或笔记本合盖,会话会自动重试重连而不是重启
这意味着你可以放心地去开一场会,回来时 Agent 已经干完了活。
3️⃣ Agent 状态感知:一眼看出谁在忙、谁在等
Supacode 会自动检测每个终端面板里运行的 Agent(支持 Claude、Codex、Copilot 等主流编码 Agent,通过它自动安装的 hooks 实现),并显示实时徽章:
| 徽章状态 | 含义 | 你该做什么 |
|---|---|---|
| ⚙️ busy | Agent 正在工作 | 不用管,让它跑 |
| ⏸️ awaiting input | Agent 在等你回答 | 立刻去处理 |
| 😴 idle | Agent 空闲 | 检查产出或关闭任务 |
配合应用内/系统通知(可选提示音、按面板静音、被通知的任务置顶),你几乎不需要盯着屏幕轮询。检测逻辑见 supacode/Features/AgentPresence/Reducer/AgentPresenceFeature.swift。
创建 Worktree 的四种方式
Supacode 为"新建一个任务"提供了四条入口,随你习惯:
- 侧边栏按钮—— 直接在仓库节点上点"新建 Worktree"
- 快捷键—— 一键弹出创建表单
- 命令面板—— 模糊搜索任意操作,无需鼠标(见 CommandPaletteFeature.swift)
- CLI 或 Deep Link—— 从任意终端脚本或快捷键绑定中触发
创建时可以选择分支名、基于哪个 ref、是否 fetch 远端、新分支的 upstream 跟踪关系等,对应逻辑在 supacode/Features/Repositories/Reducer/RepositoriesFeature+WorktreeCustomization.swift。
用supacodeCLI 把并行开发写成脚本
Supacode 自带一个supacode命令行工具,可以在任何终端、脚本或其他工具里驱动整个 App:管理 worktree、tab、分屏和仓库。每个会话还会自动导出自己的 repo / worktree / tab ID,命令默认作用于你当前所在的会话。
几个高频命令感受一下:
supacode worktree list # 列出所有 worktree supacode repo worktree-new --branch fix-bug # 新建一个任务 supacode tab new -i "claude" # 新开 tab 并启动 Agent supacode pane split -d v -i "npm test" # 分屏跑测试 supacode worktree archive # 归档当前任务完整命令参考(包括关键的 ID 捕获模式和后台模式说明)见 Resources/Skills/supacode-cli.md,Deep Link 用法见 Resources/Skills/supacode-deeplinks.md。CLI 命令实现位于 supacode-cli/ 目录。
远程 SSH 仓库(Beta):Agent 也能并行"上云"
Supacode 还支持把目标指向远程主机上的仓库:所有 git 探测和终端共享一条多路复用 SSH 连接,你只需认证一次(或刷一次安全密钥)。远端装有 zmx 时,远程会话同样能在断线、合盖后重连恢复。相关实现见 ShellClient+SSH.swift。
实战:一次完整的"多 Agent 并行"工作流
假设你要同时推进 3 件事:修 bug、重构模块、升级依赖。
第 1 步:为每个任务建 Worktree🏗️ 在侧边栏分别为三个任务新建 Worktree(如fix-login-bug、refactor-auth、bump-deps),每个都自动获得独立目录和终端。
第 2 步:各自启动 Agent🤖 每个 Worktree 的终端里分别启动对应的编码 Agent。此时侧边栏会出现三行,各自带状态徽章。
第 3 步:观察状态,只处理"等你"的👀
- Agent 忙碌时不用打扰
- 某个 Agent 转为"等待输入"时,通知响起、该行置顶,点进去回答即可
- 其余任务继续并行跑,互不干扰
第 4 步:跟踪 PR,合并收尾🚀 任务完成后推送分支、开 Pull Request。开启 GitHub 集成后,每个 Worktree 的PR 状态、CI 检查、合并就绪度都在侧边栏实时刷新,还可配置合并策略。PR 状态展示见 WorktreePullRequestAccessoryView.swift。
第 5 步:归档与清理🧹 合并完成的任务直接归档,或配置"N 天后自动删除",侧边栏始终保持干净。
常见问题
Q:多个 Agent 同时改同一个仓库,Git 层面会冲突吗?不会"互相踩踏"。每个 Worktree 是独立目录 + 独立分支,冲突只会在最终合并 PR 时按常规 Git 流程处理——而这本来就是多人协作的标准姿势。
Q:会话持久化对 SSH 断线有效吗?有效。只要远端装了 zmx,Supacode 会重试并重新挂载会话,而不是从头重启。
Q:支持哪些编码 Agent?Claude、Codex、Copilot 等常见 Agent 开箱即支持(通过 Supacode 安装的 hooks 做状态感知),本地与 SSH 环境均可。
快速开始:5 分钟跑起来 🚀
要求 macOS 26.0+ 与 mise 工具链。
git clone --recursive https://gitcode.com/gh_mirrors/su/supacode.git cd supacode mise install make doctor # 自动检查所有构建依赖并给出修复命令 make run-app # 构建并启动 Debug 版 Appmake doctor会验证 mise、git submodules、Xcode、Metal Toolchain 等全部前置条件,缺什么直接打印对应的修复命令,非常省心。
小结
Supacode 把"多 Agent 并行开发"最容易翻车的四个环节都替你管好了:
- ✅隔离—— Git Worktree 一人一房,天然互不冲突
- ✅持久—— zmx 守护进程托管会话,关 App、断 SSH 都不丢
- ✅可观测—— Agent 状态徽章 + 通知,谁在等你一目了然
- ✅可集成—— CLI、Deep Link、PR 状态追踪,工作流完全可扩展
如果你想让 AI 编码 Agent 从"串行排队"变成"并行流水线",Supacode 的 Worktree 工作流值得现在就开始尝试。
【免费下载链接】supacodeworktree coding agents command center.项目地址: https://gitcode.com/gh_mirrors/su/supacode
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考