UStackUStack
Baton icon

Baton

Baton 在隔离的 git worktree 中并行编排多个 AI 编码代理,支持终端运行、状态监控与基于 diff 的评审再开 Pull Requests。

Baton

Baton 是什么?

Baton 是一款终端原生应用,用于并行运行多个 AI 编码代理。它在隔离的 git 工作区中编排代理运行,确保每个任务互不干扰。

其核心目的是减少协调开销,同时您审查和集成代理输出。Baton 为每个工作区提供状态监控、基于 diff 的变更审查,以及 git 感知控制,如分支、Pull Requests 和按工作区文件浏览。

主要特性

  • 并行任务的工作区隔离:每个工作区基于真实 git worktree 和独立分支,避免代理运行相互干扰(无工作区间的暂存/切换冲突)。
  • CLI 原生多代理编排:在完整终端会话中运行终端 AI 编码代理(非简化包装)。站点列出对 Claude CodeCodexOpenCodeGemini CLI 的支持,以及“任意 CLI 代理”。
  • 工作区监控与状态徽章:带标签的状态徽章指示代理等待输入、成功完成或遇到错误。工作区分组显示在仪表板中,便于查看需关注位置。
  • Git 感知变更审查:Monaco 驱动的 diff 查看器显示每个代理的变更,支持拆分和统一 diff 模式,并在开 PR 前支持单个文件回滚。还支持与分支(而非仅 main)比较。
  • 内置工作区管理:从想法快速创建工作区(自动生成分支名、标题和描述)。归档完成的工作区,并批量停止/归档/删除多个工作区。
  • 模板、搜索与浏览:将 shell 命令和代理提示保存为可复用模板,进行模糊文件搜索和全文内容搜索(fzf + ripgrep),浏览提交历史和文件历史(含按提交 diff)。
  • 终端与编辑器工作流:每个工作区多终端标签,支持窗格拆分、可搜索高亮输出,以及 Shift+Enter 多行输入。编辑器包含 git blame 和 Monaco 文件查看器。
  • Git GUI 操作与 PR 创建:一键从应用中 fetch/pull/rebase/push 并开 GitHub 或 GitLab 的 Pull Requests(如页面所述)。
  • 代理预设与自定义命令:定义多种代理 CLI 预设,支持不同启动模式、标志和自定义启动脚本。配置通过终端工具运行的自定义代理命令。
  • MCP 服务器支持:代理可从对话中启动新 Baton 工作区、并行运行任务,并直接更新工作区标题/描述(通过集成 MCP 服务器)。

如何使用 Baton

  1. 启动 Baton,描述您想构建的内容。
  2. Baton 使用专用 git worktree 和分支创建隔离工作区,并立即启动代理。
  3. 使用仪表板和状态徽章查看代理是否完成、出错或等待输入。
  4. 变更就绪时,打开 diff 查看器审查代理修改,回滚不需要的单个文件,然后从应用开 Pull Request。
  5. 完成任务时,归档工作区以保持侧边栏整洁。

使用场景

  • 隔离分支的并行特性开发:为多个编码任务创建独立工作区,每个代理运行在其 git worktree 中,完成后审查并开 PR。
  • 审查优先的代理输出以安全开 PR:使用 Monaco diff 查看器(拆分/统一)逐文件检查代理变更,回滚特定文件,满意后再开 PR。
  • 处理需输入的代理提示:监控“输入”状态徽章,当代理等待时响应并继续,无需在标签间切换。
  • 调查代码变更原因:在 Baton 内使用 git blame 和提交历史视图追踪行变更至提交,并检查文件历史(含 diff、行级统计及 git 历史的重命名跟踪)。
  • 复用验证命令与提示:将 shell 命令和代理提示保存为模板,从工具栏在不同工作区运行。

常见问题

Baton 支持哪些 AI 编码代理?

网站明确列出 Claude CodeCodex (Codex CLI)OpenCodeGemini CLI,并说明 Baton 可运行 any CLI agent

Baton 如何避免代理运行间的合并冲突?

Baton 将每个工作区隔离为独立的 git worktree 和单独分支。页面描述此设计可防止代理运行相互干扰,避免任务间 stash/切换。

“input” 状态是什么意思?

在工作区监控 UI 中,input 徽章表示代理正在等待您的输入。

开 PR 前能否审阅变更?

可以。Baton 提供 diff 查看器,用于审阅每个 AI 代理的变更,并在开 Pull Request 前回滚单个文件。

Baton 是终端工具吗?

是的。产品描述为“built around the terminal”,强调 CLI 原生代理执行及终端功能,如标签页、窗格分割和可搜索输出。

替代方案

  • 本地 git + 手动代理运行与独立分支:您可在各分支/worktree 手动运行代理、审阅 diff 并开 PR;但通常缺少 Baton 的集中监控仪表板及内置 diff/blame/工作区管理。
  • IDE 中集成的 AI 助手功能:基于 IDE 的 AI 工具可在编辑器内提供代理聊天和代码建议,但可能无法提供 Baton 所述的 worktree 隔离并行执行模型及终端中心多代理工作流。
  • 无 git worktree 隔离的任务/代理编排工具:通用编排平台可协调多代理运行,但 Baton 强调使用真实 git worktree 和任务分支来隔离代理输出以供审阅。
  • 版本控制导向的审阅工作流(diff + PR 工具):代码审阅工具有助于检查变更和管理 PR,但通常不结合并行 AI 代理执行和工作区级状态跟踪。