项目简介

Claude Orchestrator (claude-o) 是一个强大的开发工具,旨在帮助开发者和AI助手(如Claude Code)高效管理复杂的开发工作流程。它通过创建隔离的Git工作树,让AI能够同时处理多个独立的代码任务,从而显著提升开发效率。

主要功能点

  • 并行任务执行: 启动多个AI实例,每个实例在独立的Git工作树中处理不同的开发任务。
  • Git工作树集成: 每个任务都拥有一个完全隔离的Git工作树环境,确保任务间的互不干扰。
  • AI工具接口: 通过MCP协议向AI提供一系列工具(如创建任务、检查任务、合并任务、终止任务等),使AI能够直接调用这些功能来管理开发流程。
  • 任务管理与合并: 跟踪任务进度,并支持自动或手动将已完成的任务代码合并回主分支。
  • 上下文生成: 为每个任务生成详细的'TASK.md'文件,为AI提供清晰的任务描述、项目信息和操作指南,作为AI处理任务时的“Prompt模板”。

安装步骤

  1. 克隆仓库: 将'claude-o'仓库克隆到一个临时目录:
    git clone https://github.com/jyviko/claude-o /tmp/claude-o
    cd /tmp/claude-o
  2. 运行安装脚本: 执行安装脚本,它会将所有文件复制到'~/.claude-o'目录,安装依赖,编译TypeScript代码,并配置'co'命令行别名和MCP服务器。
    ./install.sh
  3. 刷新Shell: 安装完成后,请重启你的Shell或运行以下命令以使'co'命令生效:
    source ~/.zshrc  # 如果你使用Zsh
    # 或
    source ~/.bashrc # 如果你使用Bash
  4. 清理临时文件:
    rm -rf /tmp/claude-o

MCP服务器配置

Claude Orchestrator 会在安装过程中自动配置为MCP服务器,通常无需手动操作。 如果你的MCP客户端(如Claude Code)需要手动配置或验证服务器信息,它会期望一个JSON格式的配置。以下是MCP客户端 '.mcp.json' 文件中 'mcpServers' 字段的配置信息及其参数说明:

  • 'claude-o' (服务器名称): 这是服务器的唯一标识符。
  • 'command' (启动命令): 用于启动MCP服务器进程的可执行文件或解释器路径,例如 'node'。
  • 'args' (命令参数): 传递给启动命令的参数列表,包含MCP服务器脚本的完整路径。例如:'["~/.claude-o/dist/src/mcp/server.js"]'。
  • 'description' (描述): 服务器功能的简要描述,方便识别。例如:"Claude Orchestrator MCP服务器,用于管理并行的开发任务。"
  • 'name' (名称): 服务器的对外显示名称,通常与服务器名称一致。
  • 'version' (版本): 服务器的版本号。

示例 MCP 客户端配置信息 (用于理解,并非直接的指令): MCP客户端在内部会使用类似以下结构的数据来连接Claude Orchestrator MCP服务器:

{
  "mcpServers": {
    "claude-o": {
      "command": "node",
      "args": ["~/.claude-o/dist/src/mcp/server.js"],
      "description": "Claude Orchestrator MCP服务器,用于管理并行的开发任务。",
      "name": "claude-o",
      "version": "1.0.0"
    }
  }
}

基本使用方法

CLI 使用 (适用于人类开发者)

在你的项目根目录中,可以使用'co'命令来管理任务:

  • 生成新任务: 'co spawn add-dark-mode "Implement dark mode toggle in settings"'
  • 列出所有任务: 'co list'
  • 检查并合并已完成任务: 'co check'
  • 手动合并指定任务: 'co merge fix-auth' (可使用任务ID或名称)
  • 终止/删除任务: 'co kill fix-auth' (可使用任务ID或名称)
  • 删除当前项目所有任务 (危险操作!): 'co nuke --confirm'

AI 工具调用 (适用于AI助手,如Claude Code)

一旦MCP服务器配置成功,AI助手就可以通过MCP协议调用以下工具来自动化任务管理:

  • 'spawn_task(name, description, [baseBranch])': 创建一个新任务,并在隔离的Git工作树中启动一个AI实例来处理。
    • 'name': 任务的简短标识符。
    • 'description': 任务的详细描述。
    • 'baseBranch' (可选): 基于哪个分支创建工作树,默认为项目设置。
  • 'list_tasks()': 列出所有活跃和近期完成的任务,提供任务ID和状态信息。
  • 'check_tasks()': 检查所有活跃任务是否已完成(通过检查工作树中是否存在'.task_complete'文件),并根据配置自动合并已完成的任务。
  • 'merge_task(taskNameOrId)': 手动将指定的已完成任务合并回其基分支。
    • 'taskNameOrId': 任务的ID(推荐)或名称。
  • 'kill_task(taskNameOrId)': 终止并删除指定任务,包括其Git工作树和关联的分支。
    • 'taskNameOrId': 任务的ID(推荐)或名称。

这些工具使AI能够直接管理代码库中的并行开发任务,显著提高协作效率。

信息

分类

开发者工具