关于 Codex–Claude Council
Codex–Claude Council 是本地工具,让 ChatGPT(通过 Codex CLI)和 Claude(通过 Claude Code)分轮讨论问题并核验最终答案。它面向同时使用两个 CLI、希望模型审阅项目内容和最新网页信息且不修改文件的用户。
主要功能
- 01Codex 与 Claude 分轮讨论
- 02一致性检查与最终答复
- 03查看项目文件和 Git 历史
- 04以只读计划模式访问
- 05搜索最新网页信息
- 06加入现有模型会话
适用场景
- 01为项目计划获取另一方审阅
- 02比较模型对技术问题的回答
- 03核对最新 API 或文档信息
- 04不做修改地审查项目历史
MCP 相关
它为 MCP 客户端提供本地 stdio MCP 服务,并调用已安装的 Codex CLI 和 Claude Code CLI。也可注册到 Claude Desktop。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
8收录的工具列表 · 更新于 1 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| skill | string | 否 | 可选:已安装的技能名称,两个模型可在判断需要时于回答此问题的步骤中使用,包括其调用的任何子 Agent;多个技能的名称以逗号分隔("llm-council, caveman")。仅传入用户按名称或技能所述触发短语要求使用的技能。Claude Code 和 Codex 已启用插件中的技能也可指定。已安装:无(使用 `codex-claude-council skill add <GitHub URL>` 安装)。使用技能的步骤会耗时更久,并消耗两个计划更多的配额。 |
| network | boolean | 否 | 可选:是否允许 Codex 的 shell 命令访问网络(例如调用 API 或获取实时数据),但磁盘操作仍为只读。省略时使用配置的默认值(除非用户更改,否则为 off)。仅在用户提出要求时传入 true。 |
| question | string | 是 | 问题,以及模型所需的任何上下文。 |
| workspace | string | 否 | 你正在使用的项目文件夹的绝对路径。之后,两个模型会在该目录中以计划模式工作:读取文件、搜索并运行 git log 和 diff 等只读命令,但绝不修改内容。问题涉及此项目中的代码、更改、修复、错误或日志时,请传入此参数。仅当问题与任何项目都无关(或传入 session id 时;此时使用该会话自己的文件夹)才省略。 |
| max_rounds | integer | 否 | 可选:对话轮数上限。两份独立回答之后,每个模型都会逐轮回复对方的最新消息,直到双方达成一致;随后综合者撰写最终答案,另一个模型进行检查。N(1 或更大):最多 N 轮交流。0:不设上限(可能耗时很久,并大量消耗两个计划的配额)。省略时使用配置的默认值(除非用户更改,否则为 5)。仅在用户要求指定轮数或要求不设上限地达成一致时设置。 |
| web_search | boolean | 否 | 可选:是否允许模型搜索网络并阅读网页。省略时使用配置的默认值(除非用户更改,否则为 on)。仅在用户要求不访问互联网时传入 false。 |
| codex_model | string | 否 | 可选的 Codex(ChatGPT)模型覆盖值,例如 gpt-5.6-sol。省略时使用配置的默认值;仅在用户要求指定模型时设置。 |
| synthesizer | enum | 否 | 可选:用于撰写最终答案的模型("codex" 表示 ChatGPT);另一个模型负责检查。省略时使用配置的默认值(除非用户更改,否则为 Claude)。claude | codex |
| claude_model | string | 否 | 可选的 Claude 模型覆盖值:可使用 opus、sonnet 或 fable 等别名,也可使用完整模型名称。省略时使用配置的默认值;仅在用户要求指定模型时设置。 |
| codex_effort | enum | 否 | 可选的 Codex 推理力度覆盖值。省略时使用配置的默认值;仅在用户要求指定时设置。none | minimal | low | medium | high | xhigh |
| claude_effort | enum | 否 | 可选的 Claude 推理力度覆盖值。省略时使用配置的默认值;仅在用户要求指定时设置。low | medium | high | xhigh | max |
| codex_session_id | string | 否 | 可选:用户已有的 Codex 会话:其 ID(如 `/status` 所示)或用户通过 `/rename` 命名的名称;在另一台机器上则为 user@host:<id or name>(通过 ssh 在该机器上运行),用于在原会话中继续而非新建会话,从而保留模型的会话记忆。仅当用户提供时,按原样传入。Council 的轮次会以计划模式添加到该会话中(不会进行任何更改)。 |
| claude_session_id | string | 否 | 可选:用户已有的 Claude Code 会话:其 UUID(如 `/status` 所示)或用户通过 `/rename` 命名的名称;在另一台机器上则为 user@host:<id or name>(通过 ssh 在该机器上运行),用于在原会话中继续而非新建会话,从而保留模型的会话记忆。仅当用户提供时,按原样传入。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 套餐登录)。 |
快速开始
- 安装到 Claude Code 和 Codex 中(这会先检查 Node.js 和两个 CLI;其他方式见安装):
npx -y codex-claude-council install - 重启 Claude Code 和 Codex,让它们加载插件。
- 提问,在项目中输入:“请议事会讨论:这个项目是做什么的,你会优先改进什么?”
真实议事会(低耗模式,已剪去等待过程):它们先连续两轮意见相左,随后达成一致。录制内容见 assets/demo.tape。
提示
已在某个模型的会话中?说 “和我的 Codex 会话 019a…讨论”(在 Claude Code 中),你的会话就会亲自参与,并带上它已有的全部上下文。参见
council_join。
为什么要用两个模型?
一个模型会自信地给出答案,无论对错。两个意见相左、且必须向对方解释理由的模型,能发现任一模型单独使用时会忽略的问题,就像第二位审阅者一样。
一次真实运行(低耗模式):“一款约有 20 位用户的单服务器内部工具,该用 PostgreSQL 还是 SQLite?”
| ChatGPT | Claude | |
|---|---|---|
| 开场回答 | SQLite | PostgreSQL |
| 第 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 日):
| 正确答案数 | 每题中位用时 | |
|---|---|---|
| 仅 Codex | 24 / 24 | 18 秒 |
| 仅 Claude | 23 / 24 | 11 秒 |
| 协作组 | 24 / 24 | 59 秒 |
- **协作组发现了唯一的一处错误:**对于
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]
- 作答:两个模型各自独立作答,互不查看对方的内容。
- 交换:每个模型都会收到另一个模型的最新消息(先是答案,然后是回复),并逐点回应:它接受哪些观点、立场如何改变、仍在哪些地方存在分歧及其原因,然后给出当前答案和结论:
AGREE或DISAGREE。双方交叉回复,反复进行:交错往复、逐轮缩小分歧。 - 达成一致:只要双方在同一轮交换中都表示
AGREE,其中一个模型就会撰写最终答案,另一个模型则检查答案是否与双方达成的共识一致(默认最多交换 5 轮;设置max_rounds: 0表示不设上限)。 - 未达成一致:如果先达到轮数上限,最终答案会列出双方一致的内容,以及每个仍有争议的问题和各自的立场。
没有任何一个模型主导讨论:每轮交换中,双方都会同时回复对方;只有在达成一致后,其中一个模型才会撰写最终文本。每个模型都会在不同问题之间保留会话,因此能记住讨论内容和已经读过的内容;每条提示词只会包含该模型尚未看到的内容。
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 | bashWindows: irm https://claude.ai/install.ps1 | iex | claude auth login |
| Codex CLI,以及 ChatGPT 计划 | 任意操作系统:npm install -g @openai/codexmacOS: 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
之后:
- 完全退出并重新打开 Claude Code 和 Codex(以及 Claude Desktop),以便它们加载插件。
- 检查设置:
npx -y codex-claude-council doctor。 - 在项目中试用:“请评议会说明这个项目的用途,以及你会优先改进什么?”
更新
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 Code | claude plugin marketplace add hamza-aziz-ai/codex-claude-councilclaude plugin install codex-claude-council@codex-claude-council --scope user |
| Codex(CLI 和 IDE 扩展) | codex plugin marketplace add hamza-aziz-ai/codex-claude-councilcodex 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_debate | claude_session_id, codex_session_id(可传入其中一个或两个) | --claude-session <id|name>, --codex-session <id|name> |
council_ask_claude, council_ask_codex | session_id | --session <id|name> |
查找会话的 ID 或为会话命名:
| Claude Code | Codex | |
|---|---|---|
| ID | 在会话中运行 /status(会显示 UUID),或运行 claude --resume | 在会话中运行 /status;也可以查看 ~/.codex/sessions/YYYY/MM/DD/rollout-…-<id>.jsonl 文件名末尾的部分 |
| 名称 | 在会话中运行 /rename <name> | 在会话中运行 /rename <name> |
| 列表 | claude --resume | codex 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.command | CLI 未被自动找到时使用的完整路径 |
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时,主机是你自己的会话,并保留其自身权限;它只是会被要求不要更改文件。
- Codex 会在由操作系统强制执行的只读沙盒中运行
- 你的设置会应用于成员。 成员会使用你的技能、插件、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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。