mcpField
C
Codex–Claude Council

Codex–Claude Council

本地服务
github.comAI 与智能体5今天更新

关于 Codex–Claude Council

Codex–Claude Council 是本地工具,让 ChatGPT(通过 Codex CLI)和 Claude(通过 Claude Code)分轮讨论问题并核验最终答案。它面向同时使用两个 CLI、希望模型审阅项目内容和最新网页信息且不修改文件的用户。

主要功能

  1. 01Codex 与 Claude 分轮讨论
  2. 02一致性检查与最终答复
  3. 03查看项目文件和 Git 历史
  4. 04以只读计划模式访问
  5. 05搜索最新网页信息
  6. 06加入现有模型会话

适用场景

  1. 01为项目计划获取另一方审阅
  2. 02比较模型对技术问题的回答
  3. 03核对最新 API 或文档信息
  4. 04不做修改地审查项目历史

MCP 相关

它为 MCP 客户端提供本地 stdio MCP 服务,并调用已安装的 Codex CLI 和 Claude Code CLI。也可注册到 Claude Desktop。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"hamza-aziz-ai-codex-claude-council": {
"command": "npx",
"args": [
"-y",
"codex-claude-council"
]
}
}
}
启动命令npx -y codex-claude-council

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmcodex-claude-council0.21.1

工具

8

收录的工具列表 · 更新于 1 天前

参数类型必填说明
skillstring否可选:已安装的技能名称,两个模型可在判断需要时于回答此问题的步骤中使用,包括其调用的任何子 Agent;多个技能的名称以逗号分隔("llm-council, caveman")。仅传入用户按名称或技能所述触发短语要求使用的技能。Claude Code 和 Codex 已启用插件中的技能也可指定。已安装:无(使用 `codex-claude-council skill add <GitHub URL>` 安装)。使用技能的步骤会耗时更久,并消耗两个计划更多的配额。
networkboolean否可选:是否允许 Codex 的 shell 命令访问网络(例如调用 API 或获取实时数据),但磁盘操作仍为只读。省略时使用配置的默认值(除非用户更改,否则为 off)。仅在用户提出要求时传入 true。
questionstring是问题,以及模型所需的任何上下文。
workspacestring否你正在使用的项目文件夹的绝对路径。之后,两个模型会在该目录中以计划模式工作:读取文件、搜索并运行 git log 和 diff 等只读命令,但绝不修改内容。问题涉及此项目中的代码、更改、修复、错误或日志时,请传入此参数。仅当问题与任何项目都无关(或传入 session id 时;此时使用该会话自己的文件夹)才省略。
max_roundsinteger否可选:对话轮数上限。两份独立回答之后,每个模型都会逐轮回复对方的最新消息,直到双方达成一致;随后综合者撰写最终答案,另一个模型进行检查。N(1 或更大):最多 N 轮交流。0:不设上限(可能耗时很久,并大量消耗两个计划的配额)。省略时使用配置的默认值(除非用户更改,否则为 5)。仅在用户要求指定轮数或要求不设上限地达成一致时设置。
web_searchboolean否可选:是否允许模型搜索网络并阅读网页。省略时使用配置的默认值(除非用户更改,否则为 on)。仅在用户要求不访问互联网时传入 false。
codex_modelstring否可选的 Codex(ChatGPT)模型覆盖值,例如 gpt-5.6-sol。省略时使用配置的默认值;仅在用户要求指定模型时设置。
synthesizerenum否可选:用于撰写最终答案的模型("codex" 表示 ChatGPT);另一个模型负责检查。省略时使用配置的默认值(除非用户更改,否则为 Claude)。claude | codex
claude_modelstring否可选的 Claude 模型覆盖值:可使用 opus、sonnet 或 fable 等别名,也可使用完整模型名称。省略时使用配置的默认值;仅在用户要求指定模型时设置。
codex_effortenum否可选的 Codex 推理力度覆盖值。省略时使用配置的默认值;仅在用户要求指定时设置。none | minimal | low | medium | high | xhigh
claude_effortenum否可选的 Claude 推理力度覆盖值。省略时使用配置的默认值;仅在用户要求指定时设置。low | medium | high | xhigh | max
codex_session_idstring否可选:用户已有的 Codex 会话:其 ID(如 `/status` 所示)或用户通过 `/rename` 命名的名称;在另一台机器上则为 user@host:<id or name>(通过 ssh 在该机器上运行),用于在原会话中继续而非新建会话,从而保留模型的会话记忆。仅当用户提供时,按原样传入。Council 的轮次会以计划模式添加到该会话中(不会进行任何更改)。
claude_session_idstring否可选:用户已有的 Claude Code 会话:其 UUID(如 `/status` 所示)或用户通过 `/rename` 命名的名称;在另一台机器上则为 user@host:<id or name>(通过 ssh 在该机器上运行),用于在原会话中继续而非新建会话,从而保留模型的会话记忆。仅当用户提供时,按原样传入。Council 的轮次会以计划模式添加到该会话中(不会进行任何更改)。

详细介绍

Codex-Claude Council:ChatGPT 和 Claude 互相讨论,直到达成一致

CI npm 许可证:MIT Node 20+ 无需 API 密钥

Smithery:98/100 HOL 插件扫描器:95/100 TDQS M8ven 评分

Glama 上的 Codex–Claude Council MCPRush 上的 Codex–Claude Council

AI Agents Listing 上的 Codex–Claude Council

两个 AI,一个答案。

向 ChatGPT(通过 Codex)和 Claude 提出相同的问题。
它们一轮又一轮地互相讨论,直到就一个答案达成一致。

使用你已有的订阅,可在 Claude Code · Claude Desktop(Cowork)· Codex · ChatGPT 桌面应用 · 你的终端中使用,
支持 Windows、macOS 和 Linux。

快速开始 · 工作原理 · 使用方法 · 示例 · 选项 · 配置 · 故障排查

🔍 两者都会在你的项目中以规划模式工作
它们会读取文件、搜索并运行只读命令,例如 git log 和 git diff,但都无法更改任何内容。
🧰 使用你自己的配置
你的技能、插件、MCP 服务和 CLAUDE.md / AGENTS.md 对两者都适用。
🔁 使用你选择的会话
新会话、你现有的 Claude Code 和 Codex 会话(包含它们已有的全部上下文),或你当前发起提问的会话,并将其作为两位成员之一。
🌐 联网查阅
两者都会核实当前版本、API 和文档,而不是依赖记忆。
🧩 按需使用技能
例如 llm-council、caveman、ponytail 或 graphify。
🔑 无需 API 密钥
它会在你的电脑上运行你自己的 Codex CLI(使用 ChatGPT 账号登录)和 Claude Code CLI(使用 Claude 套餐登录)。

快速开始

  1. 安装到 Claude Code 和 Codex 中(这会先检查 Node.js 和两个 CLI;其他方式见安装):
    npx -y codex-claude-council install
    
  2. 重启 Claude Code 和 Codex,让它们加载插件。
  3. 提问,在项目中输入:“请议事会讨论:这个项目是做什么的,你会优先改进什么?”

终端中的真实议事会:有人询问应使用 UUIDv7 还是整数主键;ChatGPT 和 Claude 连续两轮意见相左,Claude 在第三轮赞同,ChatGPT 在第四轮赞同,最后给出答案:选择 BIGINT identity,仅在离线或去中心化 ID 生成场景使用 UUIDv7。
真实议事会(低耗模式,已剪去等待过程):它们先连续两轮意见相左,随后达成一致。录制内容见 assets/demo.tape。

提示

已在某个模型的会话中?说 “和我的 Codex 会话 019a…讨论”(在 Claude Code 中),你的会话就会亲自参与,并带上它已有的全部上下文。参见 council_join。

为什么要用两个模型?

一个模型会自信地给出答案,无论对错。两个意见相左、且必须向对方解释理由的模型,能发现任一模型单独使用时会忽略的问题,就像第二位审阅者一样。

一次真实运行(低耗模式):“一款约有 20 位用户的单服务器内部工具,该用 PostgreSQL 还是 SQLite?”

ChatGPTClaude
开场回答SQLitePostgreSQL
第 1 轮坚持:“仅有 20 位用户并不能证明存在写入争用”接受大部分观点并改选 SQLite,但仍保留一项异议
第 2–3 轮更准确地说明在什么情况下 PostgreSQL 才是正确选择撤回“多个应用实例”这一理由
第 4 轮赞同赞同
最终检查驳回首份最终文本(超过 120 词限制,且有一项缺乏依据的论断);接受修订稿

最终答案比任一开场回答都更周全:选择 SQLite,并明确说明何时应迁移到 PostgreSQL。以网页形式查看完整讨论:打开页面(源文件)(使用 --html 创建自己的版本,参见从终端使用)。

基准测试

24 个程序,每个程序都包含多个相互作用的陷阱(高难度集:嵌套 Promise 和定时器中的事件循环、类字段、yield from、连接中的 NULL 等),每次都问 “这段代码究竟会打印什么?”,并根据实际输出进行评分。Codex gpt-6.1-sol 和 Claude Sonnet 5.5 均使用低工作量、全新会话,且未进行网页搜索(2026 年 10 月 13 日):

正确答案数每题中位用时
仅 Codex24 / 2418 秒
仅 Claude23 / 2411 秒
协作组24 / 2459 秒
  • **协作组发现了唯一的一处错误:**对于 h-py-dunder,仅 Claude 输出了 V3 V102 V3 …;协作组输出了正确的 V3 V102 V102 …,且两个模型意见一致。
  • **从未让结果变差:**协作组没有答错任何一道仅靠单个模型就能答对的题。
  • **这意味着什么:**这里仅 Codex 已经全部答对,因此协作组带来的是一层保障。无需提前知道哪个模型会出错,你就能获得更好的答案,用时约为原来的 3 到 5 倍。24 题中错 1 题只是小样本,不能作为证明。

所有答案都在结果文件中。亲自运行,使用你自己的模型和工作量。

目录

工作原理

flowchart LR
    Q[Your question] --> CA[Codex answers]
    Q --> LA[Claude answers]
    CA -- to Claude --> L1[Claude replies]
    LA -- to Codex --> C1[Codex replies]
    L1 -- to Codex --> C2[Codex replies]
    C1 -- to Claude --> L2[Claude replies]
    C2 & L2 --> V{Both agree?}
    V -- no: exchange again --> V
    V -- yes --> F[One writes the final answer, the other checks it]
  1. 作答:两个模型各自独立作答,互不查看对方的内容。
  2. 交换:每个模型都会收到另一个模型的最新消息(先是答案,然后是回复),并逐点回应:它接受哪些观点、立场如何改变、仍在哪些地方存在分歧及其原因,然后给出当前答案和结论:AGREE 或 DISAGREE。双方交叉回复,反复进行:交错往复、逐轮缩小分歧。
  3. 达成一致:只要双方在同一轮交换中都表示 AGREE,其中一个模型就会撰写最终答案,另一个模型则检查答案是否与双方达成的共识一致(默认最多交换 5 轮;设置 max_rounds: 0 表示不设上限)。
  4. 未达成一致:如果先达到轮数上限,最终答案会列出双方一致的内容,以及每个仍有争议的问题和各自的立场。

没有任何一个模型主导讨论:每轮交换中,双方都会同时回复对方;只有在达成一致后,其中一个模型才会撰写最终文本。每个模型都会在不同问题之间保留会话,因此能记住讨论内容和已经读过的内容;每条提示词只会包含该模型尚未看到的内容。

Requirements

你需要安装登录
Node.js 20 或更高版本:用于运行轻量级 MCP 服务(无依赖项)nodejs.org–
Claude Code CLI,以及 Claude Pro、Max、Team 或 Enterprise 计划macOS / Linux / WSL:curl -fsSL https://claude.ai/install.sh | bash
Windows:irm https://claude.ai/install.ps1 | iex
claude auth login
Codex CLI,以及 ChatGPT 计划任意操作系统:npm install -g @openai/codex
macOS:brew install --cask codex
codex login → 使用 ChatGPT 登录
Git(推荐)通常已安装–
  • 两个 CLI 都是必需的。 安装程序会检查它们;如果缺少任意一个,就会停止并显示相应的安装步骤。每次召开评议前,都会检查所运行的 CLI 是否已登录;只有登录后才会发送任何内容。
  • Git 可让两个模型查看项目的历史记录、变更和代码责任归属;skill add 也会使用 Git 下载仓库中的技能。

重要

请保持两个 CLI 均为最新版本。 评议会使用较新的选项:Claude Code 的计划模式和 stream-json 输出,以及 Codex 的 exec resume 和网络搜索。如果运行失败并提示“unknown option”或“unexpected argument”,请更新提示中指出的 CLI:claude update,或 npm install -g @openai/codex@latest。

安装

macOS / Linux / WSL

curl -fsSL https://raw.githubusercontent.com/hamza-aziz-ai/codex-claude-council/main/install.sh | bash

Windows(PowerShell)

irm https://raw.githubusercontent.com/hamza-aziz-ai/codex-claude-council/main/install.ps1 | iex

任意安装了 Node.js 的操作系统

npx -y codex-claude-council install

安装程序会检查 Node.js 和两个 CLI(以及它们是否都已登录),然后将此仓库的 marketplace 添加到 Claude Code 和 Codex,并在两者中安装插件(对于 Claude Code,插件会为当前用户安装,因此在每个项目中都可使用)。如果插件已安装,安装程序会改为更新插件。

选项: --only claude|codex(仅安装到一个应用;仍需两个 CLI)、--claude-desktop(同时将此服务注册到 Claude Desktop 的 Chat 标签页)、--dry-run(显示命令但不运行)。传入这些选项:

curl -fsSL https://raw.githubusercontent.com/hamza-aziz-ai/codex-claude-council/main/install.sh | bash -s -- --claude-desktop
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/hamza-aziz-ai/codex-claude-council/main/install.ps1))) --claude-desktop

之后:

  1. 完全退出并重新打开 Claude Code 和 Codex(以及 Claude Desktop),以便它们加载插件。
  2. 检查设置:npx -y codex-claude-council doctor。
  3. 在项目中试用:“请评议会说明这个项目的用途,以及你会优先改进什么?”
更新
npx -y codex-claude-council update               # both apps
npx -y codex-claude-council update --only claude # or --only codex
npx -y codex-claude-council update --dry-run     # show the commands only

此操作会刷新 marketplace,并更新 Claude Code 和 Codex 中的插件;然后请完全退出并重新打开两者。再次运行安装程序也会执行相同操作。CHANGELOG.md 列出了变更内容。在 Claude Desktop 中,更新会通过自动同步推送(或前往设置 → 插件,点击同步);在 ChatGPT 桌面应用中,请前往设置 → 插件更新插件。

警告

**Windows:**如果 Codex 报错 "failed to back up plugin cache entry: Access is denied. (os error 5)",说明正在运行的应用仍打开着插件文件夹(0.5.1 及更早版本存在此问题)。请退出所有 Codex 和 Claude 会话、IDE 扩展及桌面应用,然后再次更新。

或按应用单独安装
应用方法
Claude Codeclaude plugin marketplace add hamza-aziz-ai/codex-claude-council
claude plugin install codex-claude-council@codex-claude-council --scope user
Codex(CLI 和 IDE 扩展)codex plugin marketplace add hamza-aziz-ai/codex-claude-council
codex plugin add codex-claude-council@codex-claude-council
Claude Desktop(Cowork 和 Code)Settings → Customize → Plugins → + Add → Add marketplace → Add from a repository,输入 hamza-aziz-ai/codex-claude-council,开启 Sync automatically,点击 Sync,然后安装 codex-claude-council
Claude Desktop,一键扩展从最新版本下载 codex-claude-council-<version>.mcpb 并打开(或选择 Settings → Extensions → Install Extension…)。该扩展会将 MCP 服务添加到 Claude Desktop;仍需安装 Codex 和 Claude Code CLI 并登录。
Claude Desktop,Chat 标签页npx -y codex-claude-council install --claude-desktop --only claude,然后完全退出并重新打开 Claude Desktop
ChatGPT 桌面应用Settings → Plugins → Add → + Add a marketplace,在 Source 中输入 https://github.com/hamza-aziz-ai/codex-claude-council.git,点击 Add marketplace,然后安装 codex-claude-council
任何其他 MCP 客户端(Cursor、VS Code、Windsurf,……)添加一个本地(stdio)MCP 服务,命令为 npx,参数为 ["-y", "codex-claude-council", "mcp"](配置见下文)。它也列在 MCP Registry,名称为 io.github.hamza-aziz-ai/codex-claude-council,并列在 Smithery 上

对于使用 JSON 配置的客户端(Cursor 的 mcp.json、Windsurf、Claude Desktop 的 claude_desktop_config.json,……),粘贴:

{
  "mcpServers": {
    "council": {
      "command": "npx",
      "args": ["-y", "codex-claude-council", "mcp"]
    }
  }
}

说明

使用时请保持桌面应用开启:该议事会通过本机 CLI 在你的电脑上运行,因此仍需安装并登录这两个 CLI。

使用方法

直接用自然语言提问即可。宿主(你发起提问的应用)会选择工具并填写其输入参数:

你说执行的操作
"Ask the council: should I use Postgres or MongoDB for this?"council_ask:双方先分别回答,然后互相回复,直到就一个最终答案达成一致
"Run a council debate on this migration plan."council_debate:返回最终答案、双方的回答、每轮交流以及最终检查
"Get Codex's second opinion on this function."council_ask_codex(若只询问 Claude,则使用 council_ask_claude)
"Discuss with my Codex session 019a… whether this refactor is safe."(在 Claude Code 中提问)council_join:当前会话亲自参与;Codex 继续使用会话 019a…
"Ask the council, continuing my Claude session 3f2a… and my Codex session "auth refactor": is my plan sound?"使用 claude_session_id 和 codex_session_id 调用 council_ask
"Council this with ChatGPT on gpt-5.6-sol at xhigh and Claude on opus at max: …"使用各方的模型和推理力度调用 council_ask
"Ask the council and keep going until they agree: …"使用 max_rounds: 0 调用 council_ask
"Ask the council, and let ChatGPT write the final answer: …"使用 synthesizer: "codex" 调用 council_ask
"Ask the council: is the latest Next.js release safe to upgrade to for our app?"council_ask:双方会读取项目并搜索网络
"Ask the council without internet access: …"使用 web_search: false 调用 council_ask
"Ask the council, using the llm-council skill: rewrite the billing service or refactor it?"使用 skill: "llm-council" 调用 council_ask
"Ask the council, using the llm-council and caveman skills: …"使用 skill: "llm-council, caveman" 调用 council_ask

在项目中,宿主会将项目文件夹作为 workspace 传入,模型会自行读取所需内容:请指出相关文件、函数、失败的测试或错误,而不要粘贴整个文件。模型看不到宿主的对话(除非宿主亲自参与),因此宿主需要说明任务,以及项目中没有包含的任何上下文。

说明

长时间运行。 一次 council 流程需要几分钟:回答需要两次 CLI 调用,每轮交流需要两次,最终答案及其检查也需要两次;所有调用都会计入双方计划的限额。一些应用会在约 60 秒后结束工具调用(Claude Desktop 就是如此),因此每个工具都会在约 50 秒内返回答案,或返回“仍在运行”、当前步骤和 job_id;然后宿主会反复调用 council_result,直到答案就绪,而 council 会继续运行。council_cancel 可停止任务。

示例与最佳实践

选择合适的工具
flowchart TD
    S{What do you want?} -->|a quick second opinion| O[council_ask_codex / council_ask_claude]
    S -->|a cross-checked answer| W{Who should take part?}
    W -->|two fresh sessions| CA[council_ask]
    W -->|my existing Claude Code and Codex sessions| CS[council_ask with claude_session_id and codex_session_id]
    W -->|the session I am in, with the other model| CJ[council_join]
    S -->|every step, to see where they disagree| D[council_debate]

宿主会根据你的措辞选择工具。要确保选中正确工具,请直接说出工具名称:

目标说法不要说
council_join(你所在的会话亲自参与)"Discuss with my Codex session 019a… whether …"、"take part yourself as Claude, with my Codex session …" 或 "use council_join …""council_ask with my Codex session",这会启动一个单独的 Claude 会话
使用自己的会话调用 council_ask"Ask the council, continuing my Claude session … and my Codex session …"只说出你当前使用的会话
council_debate"Run a council debate on …"、"show me every step"–
在桌面应用中使用

通过 ChatGPT Work 对话与 Claude Cowork 协作。 ChatGPT Work 模式中的对话会保存为 Codex 会话,因此插件可以按标题继续对话。在 Cowork 对话中,询问:

与我的 ChatGPT Work 会话“查找阿联酋求职平台”讨论:我应该优先关注哪三个求职门户?为什么?

  • Cowork 是 Claude 成员,可以使用其项目提供的一切:文件夹、指令、连接器和技能。
  • Codex 会在自己的文件夹中以只读方式继续该 Work 对话,重新打开对话时,理事会的发言也会显示在其中。请先在 ChatGPT 应用中关闭该对话。
  • 无法从外部继续 Cowork 对话: Cowork 不会将对话保存为 Claude Code 会话。要让 Cowork 参与,请从 Cowork 发起。
  • 共享项目文件夹。 如果两个应用的项目使用电脑上的同一个文件夹,两个模型就会读取相同的文件。仅存储在某个应用内的指令(Cowork 项目的指令、ChatGPT 项目设置)不会共享:另一个模型会改为查看文件夹中的 CLAUDE.md / AGENTS.md。
为成员提供它们无法访问的内容

成员在你的电脑上运行,只能读取内容。默认情况下,Codex 命令无法访问网络:它不能调用 API、查询数据库、打开 Google 表格或打开 claude.ai 链接,而且它的网页搜索运行在 OpenAI 端,只能访问公开页面。Claude 的只读命令可以访问网络。启用 network 后,Codex 也可以调用 API。无论哪种情况,对于登录后才能访问的数据(SSH、数据库、私人表格),最好先由主机收集到工作区中,并在问题中指出这些数据:

flowchart LR
    subgraph Remote[Out of the members' reach]
        L[(Server logs)]
        DB[(Database)]
        G[Google Sheet]
        A[claude.ai artifact]
    end
    H[Host session] -->|ssh, export, download| F["workspace/.council-data/<br/>(in .git/info/exclude)"]
    L & DB & G & A -.-> H
    F --> C[Claude member]
    F --> X[Codex member]
  • 只复制问题所需的内容,例如相关调用的日志行,而不是整个日志文件夹。
  • 不要将副本纳入 git: 将其放入 .git/info/exclude 中列出的文件夹,该文件夹内容只保留在你的电脑上。
  • 不要在问题中包含机密信息。 问题会保存在两个会话中,并发送给两家服务提供商。让主机改为从环境变量读取连接字符串。
编写有效的问题

成员看不到你与主机的对话:它们只能看到 question(最多 12,000 个字符)和工作区。对于较长的任务,请将提示词拆分为两部分:

## Part A — instructions for you (the host), not sent to the other model
1. Collect the data into .council-data/ (see above).
2. Start council_join with me "claude", other_session_id "<id>",
   workspace "<absolute path>", max_rounds 0.
3. When they agree, show me the result and wait for my OK before changing code.

## Part B — the council question (send verbatim)
Goal: <what you want, and what "done" means>.
Data: <each file or folder, and its format>.
Tasks: 1. Measure … 2. Trace the code path (file:line) … 3. Propose the smallest fix as a diff …
Constraints: every claim cites a log line, a file:line or a measured number.
  • 说明要测量什么,而不是预设要找到什么。 如果问题直接给出答案(“p50 为 2.7 s”),另一个模型往往会确认它,而不是进行核查。将先前的发现放入文件,并要求模型在自行测量后再查看:“在得出自己的数值之前,不要打开 prior-study.md;之后再进行比较。”
  • 要求提供证据和测量结果。 “按测量结果报告节省的时间;不要将其向上取整到目标值”,可以避免把“节省 2 s”这样的目标说成实际结果。
  • 将前提作为问题提出,而不是事实陈述。 “先测量;不要假定存在快速路径”,让模型有机会纠正错误假设。
  • 成员只能提出建议。 它们只能读取,因此之后由主机应用商定的更改,再进行测试并提交。
  • 在 Claude Code 中,/goal 限制为 4,000 个字符。 将较长的提示词保存为文件,并为 /goal 提供简短条件:“/goal 按顺序执行 /path/task.md 中的每一步。完成条件:…”。
技能、模型与工作量
  • 同时使用多项技能。 将它们全部列出(skill: "llm-council, caveman",或 --skill llm-council --skill caveman)。两个模型都会接收每项技能的说明,并在适合时使用。如果使用 council_join,请让主机自行调用相同的技能。
  • 重型技能只用一次。 llm-council 每次运行都会启动五位顾问。只在最终计划中调用一次,不要每轮都调用。
  • 模型与工作量: 未设置的选项会取自插件配置(默认工作量为 high),然后取自各 CLI 自身的配置。因此,Codex 会使用 ~/.codex/config.toml 中的模型,但插件的 high 工作量会覆盖其中设置的工作量。单次提问时可指定 xhigh 或 max,也可以在配置中设置。
会话
  • 在 council 继续会话前先关闭会话。 如果 Codex 会话仍在 Codex CLI 或应用中打开(“already has an active writer”),Codex 会拒绝该会话。尚未由 Codex 保存的会话(其中还没有发送过消息)也无法继续。
  • 需要指定具体会话时,传入其 ID。 名称很容易重复使用;codex resume 和 /status 会显示 ID。

参与者

运行这两位成员有三种方式。无论采用哪种方式,讨论内容都相同。

Claude 成员Codex 成员适用场景
新会话(默认)一个新的 Claude Code 会话一个新的 Codex 会话你希望获得两个全新且独立的观点
你的会话继续你的 Claude Code 会话继续你的 Codex 会话你的两个会话都已了解相关工作
亲自参与你发起请求的会话(如果是 Claude Code)继续你的 Codex 会话,或新建一个你希望当前会话与另一个模型进行讨论
新会话

默认情况下,双方都会在 workspace 中运行一个新的 Codex / Claude Code 会话,该会话会持续到主机会话结束:后续问题会复用该会话,因此模型会记得之前的问题以及读取过的内容。启动新的主机会话时,council 也会启动新的会话。

你的会话

按 ID 或名称传入已有会话,评议组会在原会话中继续,并保留其中已阅读和讨论的所有内容。评议组的发言会添加到会话中,因此你之后返回时可以看到讨论。

工具输入终端
council_ask, council_debateclaude_session_id, codex_session_id(可传入其中一个或两个)--claude-session <id|name>, --codex-session <id|name>
council_ask_claude, council_ask_codexsession_id--session <id|name>

查找会话的 ID 或为会话命名:

Claude CodeCodex
ID在会话中运行 /status(会显示 UUID),或运行 claude --resume在会话中运行 /status;也可以查看 ~/.codex/sessions/YYYY/MM/DD/rollout-…-<id>.jsonl 文件名末尾的部分
名称在会话中运行 /rename <name>在会话中运行 /rename <name>
列表claude --resumecodex resume(此文件夹),codex resume --all(所有文件夹)
  • 名称会在各个 CLI 保存会话名称的位置查找:Claude Code 在会话自己的对话记录中查找,Codex 在 ~/.codex/session_index.jsonl 中查找。如果有多个会话使用同一名称,则使用最近使用的会话(优先精确匹配,然后匹配仅大小写不同的名称)。名称可以包含空格:--codex-session "auth refactor"。
  • 名称很容易误用,因此如果会话选择很重要,请传入 ID。
  • 每个会话都在启动时所在的文件夹中运行,该文件夹也是默认的 workspace。传入 workspace,即可让它在另一个文件夹中工作。
  • 无论你使用哪种模式,评议组的发言都会在计划模式/只读模式下运行。
  • 请先关闭这些会话,或者至少在评议组运行期间不要在其中输入内容:两个程序同时写入一个会话,可能会打乱其历史记录。之后重新打开会话(claude --resume <id>、codex resume <id>),即可查看评议组的发言。
  • 不要传入你正在提问的会话的 ID;如要让该会话参与,请使用 council_join。
另一台机器上的会话

另一台计算机上的会话也可以参与:将其写为 user@host:session,并使用该机器上的会话 ID 或名称,例如 --claude-session [email protected]:fix-order-dialog-bugs,或 “继续我的 Claude 会话 [email protected]:fix-order-dialog-bugs”。该成员会在那台机器上通过 ssh 运行:调用此插件自己的 codex/claude 命令,使用该机器上的 CLI 和该机器的登录账号(不一定是你在此处使用的账号),并在会话自己的文件夹中以只读方式运行。

  • **要求:**此计算机可以通过基于密钥的 ssh 连接(不能提示输入密码:ssh -o BatchMode=yes user@host true 必须能成功运行);并且那台机器上已安装 Node.js 20+ 和 CLI,且已登录(Linux 或 macOS)。即使 Node.js 是通过 nvm 安装,且 nvm 仅在 ~/.bashrc 中加载,也能找到它。不会在那台机器上安装任何内容:npx 会在本次调用时获取此插件的版本。
  • 模型和推理强度取自那台机器的配置,除非你在调用时进行设置。
  • 技能(skill):评议组会通过一次 ssh 调用,询问那台机器的 CLI 已安装哪些技能(也会检查会话所在的文件夹);随后按名称加载已安装的技能,并发送其余技能的说明。如果检查失败,则会发送所有技能的说明。
  • 它会继续已保存的会话,而不是已打开的窗口:评议组运行期间不要在该会话中输入内容;之后恢复会话,即可查看评议组的发言。
  • 取消会停止此处的评议组;那台机器上已开始运行的发言会在那里继续完成。
  • ssh 会从你的 PATH 中查找;如要使用其他路径,请在配置中设置 "ssh": { "command": "<path>" }。
亲自参与:council_join

假设你的代码仓库中有一个 Claude Code 会话 abcd 和一个 Codex 会话 efgh,并且你正在 abcd 中工作。在这里提问:“和我的 Codex 会话 efgh 讨论一下我们是否应该拆分 auth 模块。”

  • abcd 本身就是 Claude 成员。 不会启动第二个 Claude 会话。council_join 会将 Claude 的每一轮发言交给 abcd(与 Claude 成员收到的提示词相同);abcd 会在自己的对话中,结合已有的全部信息作答,并通过 council_turn 逐条发送。
  • Codex 会在原处继续使用 efgh,且为只读模式。不提供会话 ID 时,Codex 会启动一个新会话。
  • 步骤与 council_ask 相同:abcd 和 Codex 轮流回复,直到双方达成一致,最终答案会出现在 abcd 中。最终答案由 abcd 撰写,Codex 负责检查,除非你指定其他综合者。

反过来也一样:在 Codex 会话中,council_join 会将该会话设为 Codex 成员,而 Claude 会继续使用你指定的 Claude Code 会话(或新会话)。

  • 系统会请求宿主不要改动文件,但不会强制要求。 另一个模型照常处于只读模式,但发起请求的会话仍保有自身权限。
  • 只有另一个模型的 CLI 必须处于已登录状态。
  • 宿主的每一轮最多可用时长为 skill_timeout_seconds(默认值为 1800);超时后,协作会停止。你可以随时通过 council_cancel 停止。
  • 它需要一个支持轮流发言的宿主(Claude Code、Codex、桌面应用),因此它不是终端命令。

成员可使用的功能

Claude 成员(claude -p)Codex 成员(codex exec)使用 council_join 的宿主
模式计划模式只读沙盒(Codex 的命令行没有计划模式)保持自身模式不变
你的配置设置、技能、插件、MCP 服务、CLAUDE.md、钩子config.toml:技能、插件、MCP 服务、AGENTS.md、规则已拥有的全部功能
可以读取、搜索、运行只读命令(git log、diff、blame、curl 等)、使用技能和子 Agent、搜索网络读取、搜索、运行不会造成任何更改的命令、使用技能和子 Agent、搜索网络;启用 network 后,可通过命令访问网络执行通常可执行的任何操作;但会被要求不要更改文件
不可以编辑、写入或运行其他命令;向你提问;使用此插件在任何位置写入;通过命令访问网络(除非启用了 network);请求任何操作的批准;使用此插件—

若某个步骤会使用技能来执行更改(例如保存报告、构建索引),则会跳过该步骤。你的 MCP 服务工具会在各自的进程中运行:计划模式会阻止 Claude 使用会造成更改的工具,而 Codex 会遵循各 MCP 服务自身的批准设置。请参阅安全与隐私。

选项

约定:max_rounds 和 synthesizer
max_rounds运行方式
省略使用配置的默认值:最多 5 轮交锋,双方达成一致后立即停止
N(1 或更大)最多 N 轮交锋,双方达成一致后立即停止
0不限轮数:双方持续交锋,直到达成一致(可能耗时较长,也会大量消耗双方的套餐额度)

每轮交锋中,两个模型各回复一次,并同时发送回复,分别针对对方的最新消息。双方在同一轮交锋中都以 AGREE 结束回复时,即表示达成一致。随后,综合者撰写最终答案,另一个模型会检查答案是否符合双方达成的共识;如果不符合,撰写者会修改一次。

默认由 Claude 撰写最终答案;传入 synthesizer: "codex"(或在配置中更改)即可互换。在 council_join 中,默认由主持方撰写最终答案,无论它使用哪个模型,因为主持方掌握完整上下文;传入 synthesizer 即可改由另一个模型撰写。撰写者只负责将共识整理成文字:讨论过程本身是对称的。

如果达到轮数上限时仍未达成一致,综合者会撰写最终答案,列出双方同意的内容以及仍有争议的各点,并说明双方立场,同时标记为未达成一致。如果调用中途失败(例如达到用量上限),你会收到已完成的内容和失败原因。

网页搜索:web_search

两个模型都可以搜索网页并阅读页面(默认开启):Codex 使用实时网页搜索,Claude 使用 WebSearch 和 WebFetch。它们倾向于使用官方文档和发行说明等一手来源,注明事实来源,并根据这些来源核查对方的说法。有了 workspace 后,它们会结合两者的信息:“我们在 src/billing 中对 Stripe API 的使用是否仍适用于当前 API 版本?”

如需针对某个问题关闭此功能(“不联网咨询 council”),可设置 web_search: false、在终端中使用 --no-web,或在配置中设置 "web_search": false。对于敏感项目,请先参阅安全与隐私。

Codex 命令的网络访问:network

默认情况下,Codex 命令无法访问网络(但网页搜索仍可使用)。开启 network 后,命令即可访问网络,例如调用 API 或获取实时数据,同时磁盘仍保持只读:“让 council 为 Codex 开启网络访问:我们的 API 是否已经返回新字段?”、在终端中使用 --network,或在配置中设置 "network": true。Claude 的只读命令在计划模式下已可访问网络。

  • 限制可连接的地址:在配置中设置 "network_domains": ["api.github.com", "*.example.com"]。设置列表后,Codex 的网络代理会拦截所有其他域名;列表为空(默认值)时,则允许访问任何域名。
  • 实现方式: Codex 使用权限配置文件运行,而不是使用只读沙箱:整个磁盘为只读,网络已开启。权限配置文件是 Codex 的 Beta 功能,可能会有变动;已使用 Codex CLI 0.160 核实。
  • Windows: 在 Codex 沙箱内,curl.exe、Invoke-WebRequest 和 git 的 HTTPS 请求会失败(Windows 自带的 TLS 无法为沙箱帐户提供凭据),而 Python 和 Node 可以正常工作;Codex 会获知这一情况。沙箱也无法读取 ~/.ssh,因此 Codex 无法通过 SSH 登录。
  • 默认关闭是有原因的: 能读取文件并访问网络的模型也可能将文件内容发送出去,例如模型读取的日志或网页试图向它发出指令时(提示词注入)。请使用域名列表,并在敏感项目中保持 network 关闭。
技能:skill

技能是包含方法或风格的 SKILL.md 文件夹,模型可以遵循其中的内容。只需安装一次仓库中的技能:

npx -y codex-claude-council skill add https://github.com/aiwithremy/claude-skills-llm-council
npx -y codex-claude-council skill add https://github.com/JuliusBrussee/caveman.git
npx -y codex-claude-council skill add https://github.com/DietrichGebert/ponytail.git
npx -y codex-claude-council skill add https://github.com/Graphify-Labs/graphify.git
npx -y codex-claude-council skill list
npx -y codex-claude-council skill remove caveman-stats
  • skill add 会克隆仓库并安装其中的所有技能及其文件(参考资料、脚本):caveman 包含 20 个(caveman、caveman-review、caveman-compress,……),ponytail 包含 6 个(ponytail、ponytail-review,……),graphify 和 llm-council 各包含 1 个。它也支持指定仓库中的一个文件夹(…/tree/<branch>/<folder>)、本地文件夹或 SKILL.md 文件。没有 git 时,只会安装仓库顶层的 SKILL.md。
  • 技能保存在 ~/.codex-claude-council/skills/<name>/。也可以指定原生安装给 Claude Code(~/.claude/skills)或 Codex(~/.codex/skills、~/.agents/skills)的技能,以及其已启用插件中的技能。之后重启应用,让工具列表显示新技能(插件技能不会列出,但可以按名称使用)。
  • 成员已有的技能只会被点名,不会发送。 如果成员自己的 CLI 已有该技能(位于其技能文件夹、项目的 .claude/skills 或 .agents/skills 中,或来自已启用的插件),就会告知成员按名称加载该技能,就像加载自己的其他技能一样。只有成员缺少的技能才会发送其指令。对于 llm-council 和 graphify,这里已为两个 CLI 都安装了它们,可将首条提示从约 61,000 个字符缩短到约 1,100 个字符。council_join 的主持方始终会收到完整指令,因为桌面应用可能不会加载 CLI 的技能。
  • 插件不附带任何第三方内容:安装技能前,请检查其许可证和内容(例如,llm-council 没有许可证文件)。

只有在你提出要求时才会使用技能:"使用 llm-council 技能征询委员会意见:…",或在终端中使用 --skill llm-council。如需使用多个技能,请全部列出:"使用 llm-council 和 caveman 技能"、skill: "llm-council, caveman",或 --skill llm-council --skill caveman。两个模型(以及使用 council_join 的主持方)都会随问题收到技能指令,并自行决定在哪些步骤中需要使用技能,遵循技能本身的指导:在真正需要决策或解决分歧时使用 llm-council 这类方法;在每次回复中使用 caveman(简短回复)或 ponytail(采用能奏效的最简单方案)这类风格。模型使用技能时会完整遵循其要求,包括子 Agent;子 Agent 也只能读取内容。讨论规则优先,每个回答都会按照相应步骤要求的格式返回。

graphify 通过运行一个会写入 graphify-out/ 的 Python 工具来构建知识图谱,成员无法运行该工具。请先自行构建(pip install graphifyy,然后在项目中运行 graphify .);之后成员会读取 graphify-out/GRAPH_REPORT.md 和 graph.json,Codex 还可以运行 graphify query。

使用子 Agent 的技能步骤可能需要几分钟,并会大量消耗双方计划的额度;此类调用可能会持续至 skill_timeout_seconds(默认值为 1800)。

工具参考

工具作用可选输入(除 question 外)
council_ask完整的委员会;返回达成一致的答案codex_model、codex_effort、claude_model、claude_effort、synthesizer、max_rounds、workspace、web_search、skill、codex_session_id、claude_session_id
council_debate与上者相同;返回包含每个步骤和设置的 JSON与 council_ask 相同
council_ask_codex、council_ask_claude仅使用一个模型model、effort、workspace、web_search、skill、session_id
council_join主持方作为一名成员参与me(必填:claude 或 codex)、other_session_id、other_model、other_effort、synthesizer、max_rounds、workspace、web_search、skill
council_turn发送主持方的回合(council_id、text)–
council_result等待正在运行的任务给出答案(或使用 council_join 时,等待主持方的下一个回合)job_id
council_cancel停止正在运行的任务job_id

每个工具也会将结果作为 structuredContent 返回(在其 outputSchema 中声明):status(done、working、your_turn 或 stopped)、text,以及后续要使用的 job_id 或 council_id。0.11.7 之前的工具名称(debate、ask_codex、ask_claude)仍然有效。

  • workspace:项目文件夹的绝对路径,两个模型都会在其中工作。在 Claude Code 和 Codex 中,插件的 skill 会指示主持方传入你当前所在的文件夹。
  • Codex 的 effort:none、minimal、low、medium、high、xhigh。Claude 的 effort:low、medium、high、xhigh、max。
  • Claude 模型:别名(opus、sonnet、fable)或完整模型名称。Codex 模型:Codex CLI 接受的任意名称。
  • 未指定的选项将使用你的配置中的值。

从终端使用

npx -y codex-claude-council ask "Which is faster for 10M rows, A or B?"
npx -y codex-claude-council debate "..." --codex-effort xhigh --claude-model opus
npx -y codex-claude-council ask "..." --max-rounds 0          # until both agree
npx -y codex-claude-council ask "..." --synthesizer codex     # ChatGPT writes the final answer
npx -y codex-claude-council codex "..." --effort low          # Codex only
npx -y codex-claude-council claude "..." --model sonnet       # Claude only
npx -y codex-claude-council ask "..." --workspace ~/code/app  # this project
npx -y codex-claude-council ask "..." --no-workspace          # no project folder
npx -y codex-claude-council ask "..." --no-web                # no web search
npx -y codex-claude-council ask "..." --network               # Codex's commands may reach the network
npx -y codex-claude-council ask "..." --skill llm-council     # with an installed skill
npx -y codex-claude-council ask "..." --skill llm-council,caveman  # with several
npx -y codex-claude-council ask "..." --html council.html  # also save the discussion as a page to share
npx -y codex-claude-council ask "..." --claude-session <uuid> --codex-session <id>  # your sessions
npx -y codex-claude-council codex "..." --session <id>        # your Codex session

在终端中,除非传入 --workspace、--no-workspace 或会话 ID,否则两个模型都会在你运行命令所在的 git 仓库(如果有)中工作。除非传入会话 ID,否则每次运行都会创建一对新会话。也可以通过管道从 stdin 传入问题。若要使用更短的命令,可进行全局安装(npm install -g codex-claude-council),然后使用 codex-claude-council ask "..."。

配置

npx -y codex-claude-council config --init

这会创建 ~/.codex-claude-council/config.json。每次调用时都会重新读取配置,因此编辑后会立即生效:

{
  "timeout_seconds": 600,
  "skill_timeout_seconds": 1800,
  "tool_wait_seconds": 50,
  "synthesizer": "claude",
  "max_rounds": 5,
  "web_search": true,
  "network": false,
  "network_domains": [],
  "allow_api_key_auth": false,
  "codex":  { "command": null, "model": null, "effort": "high" },
  "claude": { "command": null, "model": null, "effort": "high" }
}
设置含义
timeout_seconds每次 CLI 调用的时限
skill_timeout_seconds使用 skill 时每次 CLI 调用的时限,以及使用 council_join 时主持方每个回合的时限(默认值为 1800)
tool_wait_seconds单次工具调用等待多久后返回“仍在运行”以及 job_id(默认值为 50,低于某些应用的 60 秒限制);0 表示等待,直到答案就绪
synthesizer起草最终答案的模型:claude(默认)或 codex(ChatGPT)。council_join 不使用此项,由主持方起草
max_rounds双方达成一致前的交流轮数:5(默认值)、0 表示不设上限、null 表示一轮
web_search是否允许模型搜索网页并阅读页面:true(默认)或 false
network是否允许 Codex 命令访问网络(磁盘仅可读取):false(默认)或 true
network_domains配合 network 使用,限定 Codex 可连接的域名,例如 ["api.github.com", "*.example.com"];[](默认值)表示允许任意域名
codex.model、claude.model默认模型;null 表示使用 CLI 自身的默认值
codex.effort、claude.effort默认 effort
codex.command、claude.commandCLI 未被自动找到时使用的完整路径
allow_api_key_auth设为 true 时,允许使用 API 密钥登录的 CLI(按 token 计费)

设置 COUNCIL_CONFIG 可使用其他配置文件。安装程序会在支持绘制 sixel 图像的终端中显示插件图标,并会向终端请求绘制(因此通过 ssh 使用时也有效);设置 COUNCIL_BANNER=image 可始终显示图标,设置 COUNCIL_BANNER=text 则永不显示。

安全与隐私

  • 所有操作都在你的计算机上运行。 你的问题会通过 OpenAI 和 Anthropic 的官方 CLI,在你自己的账户下发送给它们。
  • 成员无法更改你的文件。
    • Codex 会在由操作系统强制执行的只读沙盒中运行 codex exec,并将 approval_policy 设为 never。这两项都通过命令行设置,会覆盖你的 config.toml,因此即使配置授予了完全访问权限,也仍然是只读的。
    • Claude Code 在计划模式下运行:它会读取、搜索并运行已知为只读的命令;由于没有人可以批准,每项编辑、写入或其他命令都会被拒绝。计划模式是 Claude Code 自带的权限防护,不是操作系统沙盒;它唯一可能写入的文件是 ~/.claude/plans/ 下的计划文件。
    • 使用 council_join 时,主机是你自己的会话,并保留其自身权限;它只是会被要求不要更改文件。
  • 你的设置会应用于成员。 成员会使用你的技能、插件、MCP 服务、钩子、CLAUDE.md / AGENTS.md 和权限规则。此插件在成员内部会被关闭,因此成员无法启动另一个 council。MCP 工具在各自的进程中运行:计划模式会拒绝 Claude 执行会造成更改的工具,而 Codex 会遵循每个服务自身的批准设置;请谨慎使用可能造成更改的 MCP 服务。
  • 成员读取的内容会发送给模型提供商。 两个模型选择读取的任何内容都会发送给 OpenAI 或 Anthropic,就像你把这些内容粘贴给它们一样。两者也都能读取项目之外的文件,就像你平时使用它们时一样:Codex 的只读沙盒允许读取整个磁盘,计划模式则允许在任何位置运行只读命令。如果没有设置 workspace,它们会从一个空文件夹开始,并被告知根据问题开展工作。
  • 网页访问。 Codex 的网页搜索在 OpenAI 端运行(其沙盒中的命令无法联网,除非你启用 network);Claude 可以搜索和获取网页,其只读命令也可以访问网络。此外,如果设置了 workspace,项目中的文本若试图指示模型(提示词注入),原则上可能会诱使模型将项目内容发送到网站,例如放入它获取的 URL 中。对于敏感项目,请关闭网页访问。
  • 会话。 成员的会话会像其他会话一样由 CLI 保存,因此会显示在该文件夹对应的 claude --resume 和 codex resume 中。你按 ID 传入的会话会在原处继续:council 的轮次会添加到该会话中。
  • 使用订阅,而非 API 密钥。 CLI 启动前会移除 API 密钥环境变量。Codex 必须使用 ChatGPT 登录,Claude Code 必须使用 Claude 订阅,除非你设置了 allow_api_key_auth。
  • 隐私政策: PRIVACY.md。该插件没有服务端,也不收集遥测数据;发送给 OpenAI 和 Anthropic 的内容会通过它们的 CLI,在你的账户下传输。
  • 插件本身以你的用户权限运行:它是 src/ 中约 1,700 行、无依赖的 JavaScript。你可以在安装前阅读代码。

故障排查

运行 doctor。它会检查 Node.js、两个 CLI、它们的登录状态以及你的有效配置:

npx -y codex-claude-council doctor
  • “The council needs … signed in”:没有发送任何内容。消息会指出有问题的 CLI 以及解决方法:codex login(选择 Sign in with ChatGPT)和/或 claude auth login。
  • “usage limit”:你的 ChatGPT 或 Claude 套餐已达到使用限额。等待限额重置,或降低 effort。
  • “timed out”:提高 timeout_seconds(使用 skill 时则提高 skill_timeout_seconds),或降低 effort。
  • 工具调用大约 60 秒后结束:更新到 0.6.2 或更高版本;此后每个工具都会在大约 50 秒内返回,宿主会轮询 council_result。如果你的应用没有此类限制,设置 "tool_wait_seconds": 0,即可在一次调用中等待。
  • “no … session named …”:不存在该名称的会话。使用 claude --resume / codex resume --all 检查会话,通过 /rename 重命名会话,或传入 /status 中显示的会话 ID。
  • “Waiting for the … session”:另一个 council 或问题正在使用该会话;每个会话一次只能处理一项任务,此项会在会话空闲后开始。如果消息指出某个 council_join 任务正在等待你的回复,该任务会一直占用会话,直到宿主给出答复(默认最长 30 分钟,即 skill_timeout_seconds 的值):使用 council_turn 发送回复,或使用 council_cancel 停止该任务。
  • “… is not waiting for your reply now”(council_join):另一个模型仍在处理;宿主应使用该 ID 调用 council_result,以获取其下一轮回复。
  • skill "…" is not installed:使用 skill add 安装,然后重启应用,以便工具列表中显示该 skill。
  • 工具未显示:安装后完全退出并重新打开应用。在桌面应用中,检查是否已在 Settings → Plugins 下安装并启用该插件。
  • macOS 上的桌面应用找不到 node:GUI 应用不会读取你的 shell 配置文件,因此它们可能无法找到通过 nvm 安装的 Node。请从 nodejs.org 或 Homebrew 安装 Node。
  • 找不到 CLI:将 codex.command / claude.command 设置为完整路径。
  • “unknown option” / “unexpected argument”:CLI 版本过旧。请更新:claude update,或运行 npm install -g @openai/codex@latest。
  • Windows:安装或更新时出现 “Access is denied (os error 5)”:请参阅更新。

卸载

npx -y codex-claude-council uninstall

这会从 Claude Code 和 Codex 中移除此插件,以及从 Claude Desktop 中移除聊天入口,同时保留你的配置文件和已安装的 skills。在桌面应用中,可通过 Settings → Plugins 卸载。

开发

git clone https://github.com/hamza-aziz-ai/codex-claude-council.git
cd codex-claude-council
npm test

测试使用伪造的 codex / claude 可执行文件,因此不会调用模型。CI 会在 Windows、macOS 和 Linux 上运行这些测试。要试用本地检出的代码库,请将其路径用作 marketplace:claude plugin marketplace add ./codex-claude-council 或 codex plugin marketplace add ./codex-claude-council。

免责声明

本项目与 OpenAI 或 Anthropic 无关联,也未获得其认可。Codex、ChatGPT、Claude 和 Claude Code 是其各自所有者的商标。插件图标以及共享讨论页面上的 OpenAI 和 Claude 徽标(来自 @lobehub/icons)仅用于标识该插件运行的两个 CLI;安装程序使用 chafa 绘制图标。你对每个 CLI 的使用均受其提供商的条款和套餐限额约束。

许可证

MIT © Hamza Aziz

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。