并行运行 Claude Code、Codex 与 Cursor:用 Craig 把任务隔离在 Git Worktree
当多个编码 Agent 同时改同一个仓库,真正麻烦的往往不是模型能力,而是工作目录冲突:分支切换会互相影响,未提交文件也可能被另一个任务覆盖。Craig 是一个本地终端 TUI,尝试把任务、Git worktree、Agent 终端和变更审阅放到同一工作区。它适合希望并行推进任务、又不想把协调流程交给云服务的开发者。
Craig 解决的是什么问题
Craig 的关键做法是让每个任务对应独立分支与 Git worktree。不同 Agent 在各自目录中工作,避免共享工作树造成的文件改写冲突。项目文档列出的运行器包括 Claude Code、Codex 和 Cursor;Pi 标注为预览支持。可以在一个 TUI 中登记多个仓库、创建任务、切换 Agent 会话,并查看文件差异、PR 状态和 CI 评论。
Craig 的关键做法是让每个任务对应独立分支与 Git worktree。不同 Agent 在各自目录中工作,避免共享工作树造成的文件改写冲突。项目文档列出的运行器包括 Claude Code、Codex 和 Cursor;Pi 标注为预览支持。可以在一个 TUI 中登记多个仓库、创建任务、切换 Agent 会话,并查看文件差异、PR 状态和 CI 评论。
需要注意:Craig 不替 Agent 做代码审查,也不代替 Git 的提交与合并。官方文档将 Review 面板描述为只读;准备提交、推送或合并时,仍需在 Agent 的 PTY 终端中操作。任务描述会作为任务元数据保存,Craig 不会自动把它粘贴给 Agent,因此用户仍需在 Agent 会话里明确提出工作要求。安装还需 git 和至少一个已登录的 Agent CLI;Review 面板发现 PR 与同步检查状态则需要已认证的 gh。
安装与首次运行
官方首页要求 Node.js 22 或更新版本,项目提供 npm 包 craig-cli,许可标注为 MIT。安装后启动 TUI,并将已有 Git 仓库添加为工作区:
npm install -g craig-cli craig craig workspace add /path/to/your/repo
文档的 Quickstart 使用 /path/to/your/repo 作为路径示例;运行时应替换成实际仓库路径。进入 Craig 后,可从左侧选择新工作区,或通过 n 新建任务。创建后,工具会准备任务记录、分支、worktree 和 Agent 标签页,并打开对应会话。之后在 Agent 终端中输入任务内容;按 Ctrl+] 返回 Craig 控制界面。
完成一轮工作后,可在 Files 和 Review 面板查看文件及 diff。这个边界很重要:Craig 负责组织并发工作与呈现结果,不应把“面板可查看 PR 状态”误解成“工具会自动批准或合并 PR”。
一个稳妥的并行工作流
并行前先把任务切成彼此低耦合的工作,例如让一个 Agent 编写测试、另一个实现独立模块。每项任务单独建立 worktree,明确其负责文件和验收条件;Agent 完成后,在 Review 面板检查 diff,再回到 PTY 运行项目自身的测试、提交变更。最后由开发者决定如何整合分支。
可以用下面的检查清单减少协作风险:
- 拆分任务边界:避免多个 Agent 同时改同一核心文件,必要时先安排一个 Agent 做接口设计。
- 检查工作树隔离:创建任务后确认它运行在预期仓库和分支上;隔离目录减少冲突,但不保证改动天然兼容。
- 逐个审查结果:比较 diff、测试结果与任务目标,不因 TUI 显示任务完成就跳过人工审阅。
- 由人控制集成:提交、推送、合并与部署仍按团队流程执行,尤其不要把未经验证的 Agent 输出直接带入主分支。
适用场景与取舍
Craig 面向本地、以仓库为中心的开发流程。它适合需要并行试验、跨多个仓库切换,或希望统一管理多个 Agent 会话的个人开发者和小团队。若团队需要集中式权限治理、远程执行、审计账本或自动化合并策略,Craig 的公开说明并未表明它提供这些能力;应把这些需求交由现有平台或 CI 系统处理。
Worktree 也不是无成本的隔离:每个任务都会有独立目录,磁盘占用随项目规模和并行任务增加;跨任务共享的服务、端口和测试数据库仍需自行规划。开始时建议只并行两个边界清晰的任务,观察测试与资源开销后再扩大规模。
Craig 的价值不在于替你增加 Agent 数量,而在于把并行执行的基本秩序做得可见:每项任务有独立工作区,开发者能在终端中观察进度并审阅差异。它是流程编排界面,不是质量保证的替代品。