让 Claude Code 把 Codex.app 当作可控的子代理来用:Claude 负责规划与审阅,Codex 负责执行——所有对话都实时显示在 Codex.app 的左侧栏,你能看见每一步在做什么。
这是嗨妮好(Hinihao)做的一个 Claude Code Skill 彩蛋,开源送给愿意一起折腾 AI 协作工作流的粉丝朋友 :)
如果你已经在用 Claude Code,但想让 Codex(OpenAI Codex 桌面端)也加入工作流——比如 Claude 当总规划师 + Codex 当执行写代码 + 双方互相 review,目前没有现成的桥。
这个 Skill 就是那座桥:
- Claude Code 通过 Chrome DevTools Protocol(CDP)+ agent-browser 远程控制 Codex.app 的 DOM;
- Codex.app 还是 Codex.app——所有对话在它原生的 UI 里展开,你能正常看到、读到、点击、随时接手;
- 但 Claude Code 可以主动:开新对话、贴长 prompt、等回合结束、读结果、归档线程,全自动;
- 配合内置的 cross-review 工作流(一份代码两边独立审 → 共识才放行),让 AI 写的代码更靠谱一点点。
┌─────────────┐ ┌─────────────┐
│ Claude Code │ ──── CDP / agent ──> │ Codex.app │
│ (规划/审阅) │ <─── 最新对话内容 ──── │ (执行/写码) │
└─────────────┘ └─────────────┘
│
│ spawn 一个独立 sub-agent
▼
┌────────────────┐ ┌────────────────┐
│ Claude 侧 review│ 对比 ◀│ Codex 侧 review │
└────────────────┘ 结果 └────────────────┘
│
▼
共识 → 上线 / 分歧 → 派回 Codex 修
前置:macOS、装好 Codex.app(
/Applications/Codex.app)、Codex 账号已登录、Python 3.8+、Node.js。
npm install -g agent-browser# 把整个仓库 clone 到 Claude Code 的 skills 目录
git clone https://github.com/DuoDuo25/codex-bridge.git \
~/.claude/skills/codex-bridge
# 验证文件落到了正确位置
ls ~/.claude/skills/codex-bridge/
# 应该能看到 SKILL.md、bridge.py、references/在 Claude Code 里跟 Claude 说一句:
派给 Codex 写一个 hello world Python 脚本
如果一切正常,Claude 会:
- 自动启动 / attach 到 Codex.app(带
--remote-debugging-port=9222) - 在你选的 workspace 里开新对话
- 把 prompt 贴进去,按发送
- 等 Codex 执行完,读结果回报给你
所有命令都是 python3 ~/.claude/skills/codex-bridge/bridge.py <command>。
| 命令 | 作用 |
|---|---|
attach |
确保 Codex.app 起来 + CDP 已连接 |
list-workspaces |
列出左侧栏所有 workspace 名(JSON) |
new --workspace <ws> --prompt-file <f> |
开新对话并发送 prompt |
send --prompt-file <f> |
在当前对话里发追加消息 |
wait [--timeout 600] [--auto-approve] |
阻塞等当前 turn 结束 |
read [--since-user] |
读最新一条 / 自上一条用户消息以来的全部回复 |
archive |
归档当前活动对话(带确认) |
open-thread --title "<substring>" |
按标题子串切到历史对话 |
review --workspace <ws> |
在指定 workspace 开一条独立的 review 线程 |
任何命令都可加 --json 拿结构化输出。new 和 send 强烈建议用 --prompt-file——shell 转义会毁掉带引号 / $ / 反引号的长 prompt。
这是这个 Skill 最有意思的部分:两份独立 staff-engineer review,达成共识才放行。
1. Claude 规划改动(暂不调 Codex)
2. Codex turn 1 —— 只实现,不 review
3. 并行:
├─ Codex turn 2: spawn 一个 isolated sub-agent 重审刚才的 diff
└─ Claude 侧: Agent 工具 spawn 一个 isolated sub-agent 重审同一份 diff
4. 两份判决到位 → Claude 比对
- 都 ALL_CLEAN_SHIP_IT → 通知你完成
- 有任一 BLOCKED → 整理 must-fix,回到第 2 步
完整模板和踩坑记录在 references/workflow.md。
- macOS only:靠
pgrep+open -a+ Codex.app 的本地路径。Linux/Windows 适配需要改bridge.py的进程检测和启动逻辑。 - Codex.app 必须先登录:Skill 借用你已有的 ChatGPT/Codex 账号,token 用量计入你的账号。
- 依赖 Codex.app 的 DOM 结构:Codex 大版本更新可能让选择器失效。如果断了,先去翻
references/selectors.md比对当前页面 DOM。 - 中文 ARIA label:当前 selector 写死了中文(如
归档对话、是),系统语言切英文时需要相应改bridge.py。欢迎 PR 适配多语言。 - Workspace 必须先在 Codex.app 里手动创建——这个 Skill 不会自动建项目。
- archive 偶尔被沙盒限制:如果你的 Claude Code 配置里限制了某些点击,archive 可能要手动做。
- 提 Issue 描述场景 + 重现步骤。
- PR 欢迎,特别是:
- Linux / Windows 启动逻辑适配
- Codex.app 英文 locale 下的选择器
- 新增 cross-review 模板
- 文档/示例的中英 / 中日翻译
这个 Skill 是在做 Claude × Codex 协作工作流时一点一点踩坑磨出来的。每一个看起来奇怪的实现细节(为什么不用 keyboard type、为什么 wait 要看 stop 按钮和审批弹窗两个信号、为什么要 --prompt-file)背后都有一次掉坑经历——详见 references/workflow.md 末尾的 "Hard-won lessons" 章节。
MIT —— 详见 LICENSE。你可以自由使用、修改、再分发,包括商用。