跳到主要内容
AI教程

Codex with ChatGPT 教程:让 ChatGPT 规划审查,让 Codex 专注执行

无需 API Key,为 Codex 接入 ChatGPT 网页版的推理与审查能力

项目简介

Codex with ChatGPT 是一个非官方社区项目,目标是让 ChatGPT 网页版成为 Codex 编码会话的“规划与审查大脑”。ChatGPT 负责分析需求、制定计划和检查结果,Codex 则保留全部执行权,负责编辑文件、运行 Shell 命令、执行测试以及修复问题。

这种分工可以利用已经购买的 ChatGPT 网页版订阅,减少 Codex 在规划和 Review 阶段消耗 API 额度。项目不需要 API Key,也不依赖逆向代理,而是通过官方 ChatGPT 网页和一个受 OAuth 保护的只读 MCP 桥接协作。

核心原则:ChatGPT 负责思考,Codex 负责干活。

主要功能与特点

  • 规划与执行分离:ChatGPT 负责规划和审查,Codex 负责实际修改代码、运行测试和处理 Git 操作。
  • 只读工作区访问:ChatGPT 只能通过 MCP 按需读取工作区信息,服务端不提供写文件、删除文件、Shell 或提交代码的工具。
  • 独立结果审查:Codex 完成执行后,ChatGPT 会直接读取真实的 Git diff 和测试记录,而不是仅依赖 Codex 的文字汇报。
  • 无需 API Key:连接使用 ChatGPT 网页版、OAuth 2.1 和一次性配对码。
  • 自动建立公网连接:项目使用 Cloudflare Quick Tunnel,并通过 cloudflared 提供公网连接。
  • 工作区隔离:每个令牌绑定单一工作区,并阻止符号链接、../ 和绝对路径等越界访问。
  • 敏感文件保护:.env*、密钥、SSH 文件和各类凭据默认禁止读取,但 .env.example 可以读取。
  • Skill 自动更新:安装后的 Skill 每天检查一次 GitHub;发现新版本时会自动更新并继续任务。

工作原理

Codex 与 ChatGPT 之间的通信分为控制面和数据面。控制面只传递体积很小的结构化状态消息,不会直接粘贴 diff、日志或文件内容。其基本流程为:

INIT → PLAN → EXECUTED → REVIEW → DONE

数据面由只读 MCP 提供。ChatGPT 根据任务需要主动读取具体信息,目前包含以下 8 个工具:

  • workspace_info:读取工作区概要。
  • list_directory:列出目录内容。
  • read_file:读取允许访问的文件。
  • search_workspace:搜索工作区。
  • git_status:检查 Git 状态。
  • git_diff:查看真实代码差异。
  • test_status:读取测试状态。
  • execution_summary:读取执行摘要。

C2C Bridge 只监听本机回环地址,并负责只读 MCP、OAuth、配对和 Tunnel 管理。Codex Harness 仍然是唯一能够编辑工作区、运行测试和执行修复的一方。

安装前准备

项目需要以下环境:

  • Node.js 20 或更高版本
  • git
  • cloudflared,公网连接时需要;Skill 可以自动检测并安装
  • Codex,用于安装和运行项目提供的 Skill
  • 可登录的 ChatGPT 网页版账号

如果不熟悉 Git、Node.js 或终端,推荐直接使用自动安装方式。如果希望检查构建过程或参与开发,可以选择手动安装。

方式一:让 Codex 自动安装

这是普通用户最简单的方式。将下面的要求交给 Codex,让它自行完成环境检查、下载、构建、Skill 安装和首次配置:

请帮我完整安装并配置 Codex with ChatGPT,全程自动:

1. 检查 git、Node.js 20 或更高版本以及 cloudflared,缺少时自动安装。
2. 克隆 https://github.com/XiaoDuoYa/codex-with-chatgpt 到 ~/codex-with-chatgpt;已存在则更新。
3. 执行 corepack pnpm install 和 corepack pnpm build。
4. 把 skill/SKILL.md 安装到 ~/.codex/skills/codex-with-chatgpt/SKILL.md,
   并将其中的 checkout 路径改为实际克隆路径。
5. 按 SKILL.md 的 first-time setup 流程运行 c2c setup。
6. 使用内置浏览器配置 ChatGPT 连接器并输入配对码。
7. 仅在登录、验证码或两步验证时要求我操作。
8. 完成后确认文件读取测试通过。

根据项目说明,macOS 可使用 Homebrew 安装缺失依赖,Windows 可使用 winget。自动流程应使用 Codex 的内置浏览器;用户通常只需要在必要时登录 ChatGPT、Cloudflare,或完成验证码与两步验证。

配置成功后,预期会看到类似状态:

Codex with ChatGPT

✓ 当前项目已识别
✓ Workspace Bridge 已启动
✓ 安全连接已建立
✓ ChatGPT 已连接
✓ 文件读取测试通过

Ready.

方式二:手动安装与构建

如果需要手动控制安装过程,先克隆仓库并安装依赖:

git clone https://github.com/XiaoDuoYa/codex-with-chatgpt.git ~/codex-with-chatgpt
cd ~/codex-with-chatgpt
corepack pnpm install
corepack pnpm build

构建完成后会生成 dist/,并提供 c2c 命令。随后将仓库中的 skill/ 内容安装到 Codex 的 Skill 目录:

mkdir -p ~/.codex/skills/codex-with-chatgpt
cp ~/codex-with-chatgpt/skill/SKILL.md \
  ~/.codex/skills/codex-with-chatgpt/SKILL.md

接着打开复制后的 SKILL.md,找到 The codex-with-chatgpt checkout lives at: 所在行,将路径改成实际仓库位置,例如 ~/codex-with-chatgpt

安装 Skill 后,对 Codex 发送:

使用 Codex with ChatGPT 完成首次配置。

Codex 会按照 Skill 中的首次配置流程执行 c2c setup,启动 Bridge 和 Tunnel,生成一次性配对码,并通过内置浏览器配置 ChatGPT 连接器。

首次配置中的安全配对

公网 MCP 端点使用 OAuth 2.1,包含 PKCE S256、动态客户端注册和 refresh token 轮换。仅知道公网 URL 并不能读取工作区:没有令牌会返回 401,使用属于其他工作区的令牌会返回 403。

浏览器中会使用一次性配对码。该配对码有效期为 5 分钟,最多允许尝试 5 次,并具有速率限制;成功使用后立即失效。长期凭据不会暴露给模型。

配对完成后,应确认“文件读取测试通过”。这说明 ChatGPT 连接器可以通过受限的只读工具访问当前工作区。

基本使用方法

首次配置完成后,不需要每次手动启动或解释 MCP、OAuth、Tunnel 和端口。直接在任务中明确要求使用该 Skill 即可。

示例一:实现功能

使用 Codex with ChatGPT,帮我为当前项目实现用户搜索功能。

在这一流程中,ChatGPT 会先读取必要的项目信息并制定计划,Codex 根据计划修改代码和运行测试。执行结束后,ChatGPT 再通过只读 MCP 检查 Git diff 和测试记录,并给出审查结果。

示例二:修复缺陷

使用 Codex with ChatGPT,分析并修复当前测试失败的问题。

ChatGPT 可以使用 search_workspaceread_filetest_status 等工具定位问题;实际修复与测试仍由 Codex 完成。

示例三:重构并审查

使用 Codex with ChatGPT,重构当前模块,保持现有行为不变,并审查最终 diff。

完成后,ChatGPT 会使用 git_diff 查看真实改动,并参考执行记录判断测试是否完成,从而形成独立审查闭环。

常用管理命令

开发者或需要排查状态的用户可以直接使用 c2c 命令行:

c2c setup
c2c status
c2c doctor
c2c pair
c2c unpair
c2c logs
c2c stop
  • c2c setup:启动 Bridge、Tunnel,并进入配对流程。
  • c2c status:检查当前运行状态。
  • c2c doctor:诊断环境和连接问题。
  • c2c pair:执行配对。
  • c2c unpair:解除已有配对。
  • c2c logs:查看运行日志。
  • c2c stop:停止相关进程。

遇到连接或配置异常时,优先运行 c2c statusc2c doctor,再通过 c2c logs 获取进一步信息。

进阶使用技巧

添加自定义忽略规则

项目默认拒绝访问 .env*、密钥、SSH 文件和凭据。若仓库中还有业务数据、内部配置或其他不应读取的内容,可以通过 .c2cignore 追加自定义规则。

配置忽略规则后,建议重新执行文件读取测试,确认必要文件仍可访问,同时敏感路径被正确拒绝。

保持 Skill 和项目更新

Skill 每天会自动检查一次 GitHub,并在有新版本时更新后继续任务。需要立即更新时,也可以直接对 Codex 说:

更新 Codex with ChatGPT。

如果采用手动维护方式,可以进入仓库执行更新和重建:

cd ~/codex-with-chatgpt
git pull
corepack pnpm install
corepack pnpm build

开发与测试

准备修改项目源码时,可以使用以下命令:

pnpm install
pnpm build
pnpm test

README 所描述的 V1 测试套件基于 Vitest,共包含 76 个测试,覆盖路径安全、OAuth、配对和 MCP 端到端流程。

理解项目目录

  • src/bridge/:本机回环 HTTP 服务、端口自动恢复和管理 API。
  • src/mcp/:8 个只读工具与无状态 Streamable HTTP 实现。
  • src/auth/:OAuth 2.1、PKCE、动态注册、令牌轮换与吊销。
  • src/pairing/:一次性配对码、有效期和限速机制。
  • src/workspace/:路径收敛、敏感文件策略、搜索和 Git 读取。
  • src/tunnel/:TunnelProvider 抽象与 Cloudflare Quick Tunnel。
  • src/execution/:审查闭环使用的执行记录。
  • src/process/:守护进程生命周期管理。
  • src/cli/c2c 命令行实现。
  • skill/:Codex Skill,也是面向用户的主要交互层。
  • tests/:单元测试和集成测试。
  • docs/:架构、协议、安全与故障排查文档。

安全使用建议

  1. 为不同仓库保持独立工作区,不要尝试复用其他工作区的令牌。
  2. 检查仓库中的敏感数据,并使用 .c2cignore 补充默认保护规则。
  3. 配对时只使用当前安装流程生成的一次性配对码。
  4. 任务完成后如需关闭服务,可执行 c2c stop
  5. 如果需要了解完整边界和威胁模型,请阅读项目的安全文档

结语

Codex with ChatGPT 通过只读 MCP、OAuth 2.1、一次性配对和工作区边界,把 ChatGPT 网页版的规划与审查能力接入 Codex,同时让代码修改和命令执行继续由 Codex 掌控。普通用户可以让 Codex 自动完成安装与配置,开发者则可以使用 c2c 命令、测试套件和项目文档进一步调试或扩展。

该项目目前为 V1,采用 MIT 许可证。它是非官方社区项目,与 OpenAI 无关联,也未获得 OpenAI 背书。