TypeScript · 项目报告

funador/claude-code-merge-queue

The local merge queue for parallel Claude Code agents.

已完成 打开 GitHub
F
295星标
0Fork
0Issue
MIT许可证

分析结果

项目分析

claude-code-merge-queue 是一个面向 Claude Code 多代理并行开发场景的本地合并队列工具。它利用 Claude Code 的 worktree 隔离能力,为多个并行 agent 提供串行化的 build、test、rebase、push 流程,避免多个 agent 同时向同一分支落地代码时产生冲突、重复 rebase、资源竞争或测试互相污染。项目使用 TypeScript 编写,Node.js >= 18,MIT 协议,运行时依赖为 0。

适用领域 AI 编程助手工作流 / Claude Code 自动化 / Git 工作流 / 本地 Merge Queue / 多 agent 并行开发 / CI/CD 前置检查 / 开发者工具 / 测试资源隔离
配置难度 中等。基础安装和初始化较简单,但要在真实团队或复杂项目中稳定使用,需要理解 Git worktree、pre-push hook、分支保护策略、测试门禁、Claude Code agent 行为以及共享测试资源隔离。对熟悉 Git 和 Node.js 工具链的开发者较友好。
商业价值 对于重度使用 Claude Code 的团队,该工具可以显著提升多 agent 并行开发的可控性,减少 push 冲突、重复 rebase、本地资源争抢和假性 flaky test,从而提高 AI 编程流水线吞吐。它以本地方式提供类似 merge queue 的能力,降低 GitHub Enterprise 或云端 CI 队列成本。商业价值主要体现在提升 AI 辅助开发效率、减少人工协调成本、让自动化测试成为稳定门禁,以及为小团队提供低成本的多代理协作基础设施。
01

技术亮点

  • 专门解决 Claude Code 多 agent 并行开发后的落地冲突问题。
  • 本地零成本 merge queue,不依赖 GitHub Enterprise Merge Queue,也不消耗 GitHub Actions minutes。
  • 通过 FIFO 队列串行化 land、build、test、push,降低并发冲突和资源争用。
  • init 命令自动完成大部分设置,包括配置文件、CLAUDE.md、Claude hook、package scripts、preflight 脚本等。
  • 通过 pre-push hook 阻止直接 push 到 integration branch、productionBranch 或 protectedBranches。
  • 默认要求 checkCommand 通过后才能落地,避免未验证代码进入 integration branch。
  • 支持 build-lock,将重型构建命令在多 lane 间串行执行。
  • 支持 preview,将 lane 的工作树内容即时映射到主 checkout,方便快速查看效果。
  • 支持 sync,在落地后快进主 checkout,并在 lockfile 变化时重新安装依赖。
  • 锁机制基于 PID liveness 判断失效状态,而不是依赖固定超时,具备较好的 crash-safe 设计。
  • MIT 协议,运行时依赖为 0,适合纳入开发工具链。
02

目标用户

  • 使用 Claude Code 进行多 agent 并行开发的个人开发者
  • 希望让多个 Claude Code session 同时改代码的团队
  • 不想为 GitHub Merge Queue 或 GitHub Actions 队列成本付费的小团队
  • 需要在本地串行化构建、测试、推送流程的开发者
  • 愿意采用自动化测试作为主要代码质量门禁的团队
  • 使用 Git worktree 管理多条开发 lane 的高级开发者
03

配置要求

  • 需要 Node.js >= 18。
  • 需要 Git 仓库,并且推荐使用 Claude Code 的 --worktree 能力。
  • 需要配置 claude-code-merge-queue.config.mjs。
  • integrationBranch 必须设置,例如 main,用作 agent 落地代码的目标分支。
  • checkCommand 强烈建议设置,例如 npm run check;如果 checksRequired 为 true 且没有 checkCommand,push 会被阻止。
  • 可选配置 productionBranch,用于 integration branch 与生产分支分离的两阶段发布模型。
  • 可配置 branchPrefix、worktreeSuffix、portBase、protectedBranches、symlinks、buildOutputDirs、regenerableFiles 等参数。
  • 如果使用 Husky,init 会创建或追加 .husky/pre-push;如果未使用 Husky,它不会静默写入未被团队共享的 .git/hooks/pre-push。
  • 如果测试依赖共享资源,需要根据项目情况扩展 ephemeral resource 逻辑,避免并发测试污染数据库、队列或临时目录。
04

适用场景

  • 多个 Claude Code agent 同时在不同 worktree 中开发,最终按 FIFO 顺序落到同一个 integration branch
  • 防止多个 agent 同时执行重型 build/test 导致本机资源耗尽
  • 避免多个测试进程同时操作共享数据库、队列或临时资源造成假性 flaky test
  • 在本地模拟类似 GitHub Merge Queue 的串行合并流程,但不依赖 GitHub Enterprise 或 GitHub Actions minutes
  • 自动阻止 agent 或开发者直接 push 到受保护分支,强制通过 land 流程
  • 在不真正构建的情况下,将某个 lane 的工作区内容预览到主 checkout
  • 在 integration branch 验证稳定后,由人类手动 promote 到 production branch
05

部署与配置

  • 确保本机已安装 Node.js 18 或更高版本。
  • 在目标仓库中安装开发依赖:npm install --save-dev claude-code-merge-queue。也可以使用 pnpm add -D、yarn add -D 或 bun add -d。
  • 运行初始化命令:npx claude-code-merge-queue init。
  • 检查并提交 init 生成或修改的文件,包括 claude-code-merge-queue.config.mjs、CLAUDE.md、.claude/settings.json、package.json scripts、preflight 脚本,以及可能修改的 .husky/pre-push。
  • 确认 package.json 中存在可用于落地前检查的脚本,例如 check、check:push、ci 或 test;如果自动检测失败,需要手动设置 checkCommand。
  • 使用 claude --worktree <name> 创建隔离开发 lane,后续 agent 可根据 CLAUDE.md 指令自动 land。
  • 需要发布时,由人类执行 claude-code-merge-queue promote。
06

风险与注意事项

  • 只协调单台机器上的队列,无法跨多台开发机全局串行化;多台机器同时 push 仍会回到 Git 的非 fast-forward 冲突处理。
  • 不是安全边界。拥有 shell 权限的 agent 或用户可以通过 --no-verify、删除 hook、修改配置或设置紧急环境变量绕过限制。
  • 质量保障完全依赖 checkCommand。如果 checkCommand 覆盖不足或只是 echo ok,工具无法保证代码质量。
  • 不适合需要人工 review 每个变更后才能合并的团队;该项目的理念是测试作为 reviewer,人类只负责发布决策。
  • 如果 checkCommand 很慢,FIFO 队列会成为吞吐瓶颈,因为一次只能有一个 lane 完成落地检查。
  • Claude Code WorktreeCreate hook 是相对较新的能力,如果 Claude Code 行为变化,相关自动化可能需要调整。
  • 对于复杂 monorepo、非 Node 项目或自定义构建系统,自动检测 checkCommand 和默认配置可能需要手工适配。
  • 如果测试使用共享数据库、消息队列或缓存,而没有配置隔离资源,仍可能出现并发污染。

历史记录

热榜历史快照

2026-07-07 第23名 新收录 · github_search