SuperAPI AI 工具集

quilt

Quilt 是一个命令行工具,用于在多个 AI 编码代理共享同一个 Git 检出时,追踪每一行代码由哪个代理编写。它通过捕获工具边界的每次编辑,维护逐行的作者记录,并在提交时重建每个代理自己的更改。Git 仍是唯一事实来源,Quilt 不调用 LLM 也不生成代理,状态保存在可删除的 .quilt/ 侧车目录中。它支持行级归属、符号级声明、冲突预防、推送感知和覆盖检测,让多个代理可以安全地在同一仓库中并行工作,每个代理只提交自己的行。

访问官网

工具介绍

Quilt 是一个命令行工具,用于在多个 AI 编码代理共享同一个 Git 检出时,追踪每一行代码由哪个代理编写。它捕获工具边界的每次编辑,维护逐行的作者记录,并在提交时重建每个代理自己的更改。Git 仍是唯一事实来源,Quilt 不调用 LLM 也不生成代理,其状态保存在可删除的 .quilt/ 侧车目录中,不会影响仓库本身。

用途

Quilt 旨在解决多个 AI 编码代理在同一个 Git 检出中协作时的常见问题:普通的 git 命令会意外地将其他代理未提交的文件卷入提交,代码生成和锁文件变动可能被错误归因,两个代理偶尔会修改同一行导致静默覆盖。Quilt 让共享检出变得安全,每个代理只提交自己的行,互不干扰,当两个代理确实需要同一段代码时,会变成协调的交接而非静默丢失。

主要能力

  • 行级归属:commit --mine 只提交你自己的行,即使与其他代理共享同一个代码块。
  • 符号级声明:可以声明 utils.js#formatPrice 这样的符号,而不是整个文件,这样编辑不同函数的代理不会冲突。支持通过 tree-sitter 解析的十种语言,其他语言则使用整文件声明。
  • 冲突预防:当写入其他代理已声明的代码时,会在任何字节改变之前被拒绝,并显示持有者的声明意图。
  • 推送感知:声明一个依赖于其他代理正在修改的函数的符号时,Quilt 会在声明时发出警告。
  • 检测与保留:如果一个代理覆盖了另一个代理未提交的行,Quilt 会快照受害者的版本,确保不会静默丢失。
  • 每个提交都是普通 Git 提交:Quilt 信任 Git 且从不重写它,所有状态本地保存在 .quilt/ 下。无需账户,无需守护进程。
  • 自动命名代理:每个 Claude Code 会话或 MCP 连接都会获得自己的 ID,无需设置即可区分并行代理。

使用方式

  1. 在包含多个仓库的目录中运行 quilt setup,它会配置工作区根目录和内部每个仓库,每次编辑都会捕获到文件所属的仓库中。
  2. 无需设置 QUILT_ACTOR 或每个终端的仪式,捕获钩子会自动将每次编辑归属到其会话。
  3. 使用 quilt fleet 实时查看,当会话的工作准备就绪时,让代理运行 quilt commit --mine -m "..."。每个提交只包含该会话的行,即使两个会话修改了同一个文件。
  4. quilt ui 在浏览器中打开实时视图:谁写了什么(每个文件每个代理的行数)、活跃声明、谁被谁阻塞、以及任何需要人工处理的事项。仅本地(127.0.0.1),只读,一条命令。
  5. 终端用户可以使用 quilt fleet --watch 获得相同的文本视图。
  6. 需要跨会话稳定的 ID 时,可以显式设置。
  7. 在共享 shell 中,使提交者明确(quilt --as auth-agent commit --mine ...)。当脏树显示其他代理时,Quilt 拒绝检出全局会话身份。
  8. 如果部署提供商要求可识别的 Git 邮箱,可以设置一次,同时保持代理名称不同。

适用场景

  • 多个 AI 编码代理需要在同一个仓库中并行工作,共享一个 node_modules、一个构建、一个开发服务器、一个环境。
  • 代理处理不相交的文件或同一文件的不同函数,需要确保各自的更改独立提交。
  • 需要协调两个代理对同一代码的修改,避免静默覆盖。
  • 希望保持 Git 作为唯一事实来源,不引入额外的工作树或复杂的环境隔离。

限制

  • Quilt 不调用 LLM 也不生成代理,仅追踪和协调编辑。
  • 符号级声明支持十种语言(通过 tree-sitter),其他语言仅支持整文件声明。
  • 状态保存在本地 .quilt/ 目录,删除该目录不会影响仓库,但会丢失追踪信息。
  • 需要运行 quilt setup 来配置捕获钩子和共享 MCP 服务器。
  • 对于完全独立、长时间运行的任务,工作树可能更合适;Quilt 和工作树可以互补使用。
  • 遥测:每天一次匿名心跳(quilt 版本、操作系统、Node 主版本、随机本地 ID),除非在 quilt setup 时选择加入,否则不收集其他信息,且从不收集代码、路径、仓库或代理名称。可以通过 quilt telemetry off、QUILT_TELEMETRY=0 或 DO_NOT_TRACK=1 关闭。

更多信息请参阅 docs/orchestrators.md(运行代理舰队)、docs/reference.md(完整命令列表、归属工作原理和 .quilt/ 状态布局)以及 bench/(测试场景阶梯)。