XiaoDuoYa

XiaoDuoYa/codex-with-chatgpt

ChatGPT thinks. Codex works. Use ChatGPT as the planning brain while keeping the Codex harness.

⭐ 4.1k ⑂ 436 TypeScript MIT · 1 天前推送
4.1k
Watchers
0
贡献者
0
Commits
0
Releases
12
Open Issues
1 天前
最近推送
原文 中文

Codex with ChatGPT

English | 简体中文

ChatGPT 负责思考,Codex 负责干活。

解决什么问题

ChatGPT 付费订阅的网页版额度大量闲置,Codex 却在消耗紧张的 API 额度做 规划和 Review。本项目把"思考"交给你已付费的网页版 ChatGPT,Codex 只负责 执行。不用 API Key、不搞逆向代理——官方网页 + 只读 MCP 桥接。

这是什么

把 ChatGPT 网页版变成 Codex 编码会话的"规划与审查大脑",而执行权完全保留在 Codex 手里。你的仓库永远不会被上传——ChatGPT 通过一条安全的、OAuth 保护的 只读 MCP 连接,按需读取当前工作区里它真正需要的那几行代码。

一段话安装(纯小白专用)

不懂 git、Node、终端?完全不需要懂。把下面这段话原样复制给你的编码 Agent(Codex),然后去倒杯咖啡:

请帮我完整安装并配置 Codex with ChatGPT,全程自动,我是不懂技术的小白,
所有事情你自己做:

1. 环境自检:需要 git 和 Node.js ≥ 20,缺什么就自动安装
  (macOS 用 Homebrew,Windows 用 winget),同时安装 cloudflared。
2. 下载:把 https://github.com/XiaoDuoYa/codex-with-chatgpt 克隆到
   ~/codex-with-chatgpt(已存在就 git pull 更新)。
3. 构建:在该目录里执行 corepack pnpm install 和 corepack pnpm build。
4. 安装 Skill:把仓库里的 skill/SKILL.md 复制到
   ~/.codex/skills/codex-with-chatgpt/SKILL.md,并把文件中
   "The codex-with-chatgpt checkout lives at:" 那一行的路径改成实际克隆路径。
5. 首次配置:按 SKILL.md 里的 first-time setup 流程执行
  (运行 c2c setup,用内置浏览器打开 ChatGPT 配置连接器并输入配对码)。
   全程只用内置浏览器,禁止打开任何第三方浏览器。
6. 只有遇到需要我登录(ChatGPT / Cloudflare)、验证码或两步验证时才叫我,
   而且一次只告诉我一个动作。
7. 完成后给我看 ✓ 清单,并确认文件读取测试通过。我不懂 MCP、OAuth、
   Tunnel、端口这些词,不要向我解释;出了问题先自己修。

更新:Skill 每天自动检查一次 GitHub,有新版本会自动更新并继续任务, 无需任何操作;也可以随时对 Codex 说"更新 Codex with ChatGPT"。

安装 → 配置 → 使用(手动版)

  1. 安装 Codex Skill:把 skill/ 复制到 ~/.codex/skills/codex-with-chatgpt/
  2. 对 Codex 说:"使用 Codex with ChatGPT 完成首次配置。"
  3. 之后正常使用:"使用 Codex with ChatGPT,帮我实现 XXX。"

说明书到此结束。你不需要知道 MCP、OAuth、Tunnel、端口、localhost 是什么—— Codex 会自动完成所有配置,你只会看到:

Codex with ChatGPT

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

Ready.

唯一可能需要你动手的步骤:登录 ChatGPT(如果要用固定域名,再登录一次 Cloudflare)。新仓库还会请你在 ChatGPT 里建一次项目(合集):名字用仓库名,记忆选「仅限项目记忆」。侧栏如果没有「项目」,把鼠标放在「聊天」上,点右边三个点,选「按项目整理」。之后对话都从合集页开,不用回首页。已经在用的仓库默认还是原来的一条长对话,除非你说要改成 Project。

可选的固定域名

默认公网地址是临时的,桥重启后会变。Codex 会删掉这个项目的 ChatGPT 插件再按新地址加回去。

如果你有 Cloudflare 账号,并且域名已经加在 Cloudflare 上,首次配置时(老用户则在下一次编码时问一次)会问你要不要用固定域名,例如 c2c-<项目>.你的域名。选是的话,浏览器里授权一次 Cloudflare 即可。之后重启一般不用再改插件。没有账号、不想用、登录失败:继续用临时地址,功能一样,只是修复更慢。

凭证放在系统目录,不进项目。

工作原理

             ┌───────────────────────────┐
             │      ChatGPT 网页版       │
             │   推理 / 规划 / 审查      │
             └──────────┬──────────▲─────┘
                        │          │
               MCP      │          │ Computer Use
              数据面    │          │ 控制面(消息 < 1 KB)
                        ▼          │
             ┌─────────────────────┐
             │      C2C Bridge     │   仅监听本机回环地址
             │  只读 MCP           │   OAuth 2.1 + 一次性配对码
             │  OAuth + 配对       │   Cloudflare Quick Tunnel
             │  Tunnel 管理        │
             └──────────┬──────────┘
                        │  只读
                        ▼
             ┌─────────────────────┐          ┌─────────────────────┐
             │     本地工作区      │◀─────────│    Codex Harness    │
             └─────────────────────┘ 编辑/git │  Shell / 测试 / 修复 │
                                              └─────────────────────┘
  • 控制面(Computer Use):Codex 与 ChatGPT 之间只交换极小的结构化 [C2C] 状态消息——INIT → PLAN → EXECUTED → REVIEW → DONE。绝不粘贴 diff、日志 或文件内容。
  • 数据面(MCP):ChatGPT 缺什么自己拉什么,共 9 个只读工具: workspace_infolist_directoryread_filesearch_workspacegit_statusgit_difftest_statusexecution_summaryexecution_output
  • 独立审查:Codex 执行完毕后,ChatGPT 通过 MCP 亲自检查真实的 git diff 和测试记录——绝不因为 Codex 说"测试全过"就直接相信。

安全模型(简版)

  • 从构造上只读:服务端根本不存在写文件/删除/Shell/提交类工具,任何提示 注入都无法启用它们。
  • 一个工作区 = 一道边界:每个令牌绑定单一工作区;路径校验基于规范化 realpath(symlink、../、绝对路径逃逸全部被拦截并有测试覆盖)。
  • 敏感文件永不外泄.env*、密钥、SSH、各类凭据默认拒绝 (.env.example 放行);.c2cignore 可追加自定义规则。
  • 知道 URL 不等于有权限:公网 MCP 端点强制 OAuth 2.1(PKCE S256、动态 客户端注册、refresh token 轮换)。无令牌:401;令牌属于别的工作区:403。
  • 模型永远接触不到长期凭据:唯一会出现在浏览器里的秘密是一次性配对码 (5 分钟有效、限 5 次尝试、限速、用后即毁)。

完整威胁模型:docs/security.md

开发者

pnpm install
pnpm build          # 产出 dist/,暴露 c2c 命令
pnpm test           # vitest:146 个测试(路径安全、OAuth、配对、MCP 端到端)

c2c setup           # 一条命令:Bridge + 隧道 + 配对码
c2c sandbox-allow   # 把本地设置目录加入 Codex 沙箱白名单(macOS / Windows)
c2c status / doctor / pair / unpair / logs / stop

环境要求:Node.js >= 20、git;公网连接需要 cloudflared (自动检测,Skill 会替你安装)。

文档:架构 · 协议 · 安全 · 故障排查

目录结构

src/
  bridge/     本机回环 HTTP 服务、端口自动恢复、管理 API
  mcp/        9 个只读工具、无状态 Streamable HTTP
  auth/       OAuth 2.1(PKCE、动态注册、refresh 轮换、吊销)
  pairing/    一次性配对码(CSPRNG、TTL、限速)
  workspace/  路径收敛、敏感文件策略、搜索、git
  tunnel/     TunnelProvider 抽象 + Cloudflare Quick Tunnel
  execution/  审查闭环所需的执行记录
  process/    守护进程生命周期
  cli/        c2c 命令行
skill/        Codex Skill(真正的 UX 层)
tests/        单元 + 集成测试
docs/         架构 / 协议 / 安全 / 故障排查

状态与声明

V1。已端到端验证:Bridge、OAuth + 配对、公网隧道、ChatGPT 连接器配置、 零操作首次配置体验。

非官方社区项目,与 OpenAI 无关联,未获其背书。

许可证

MIT