AI 工具 17 min read

OpenAI 官方外掛讓 Codex 進 Claude Code:實測兩種 review,一種漏掉兩個高風險問題

OpenAI 在自己的 GitHub organization 下開源了給 Claude Code 用的官方外掛 codex-plugin-cc(Apache-2.0,撰文當下 30,993 顆星),裝上去就能在 Claude Code 裡直接叫 Codex 審 code 或把任務丟給它跑。我裝了 v1.0.6 並拿一段故意寫壞的批次退款程式碼實測:/codex:review 花 41 秒抓出 2 個 P1;同一份程式碼換 /codex:adversarial-review 抓出 4 個,多的兩個是「刪訂單摧毀稽核軌跡」與「完全沒有退款授權邊界」,標準 review 完全沒提。這篇把安裝步驟、7 個指令的實際差別,以及那個預設關閉、逾時或失敗都會 block 你 session 的 review gate 寫透。

OpenAI 官方外掛讓 Codex 進 Claude Code:實測兩種 review,一種漏掉兩個高風險問題
本文目錄 · 10
TL;DR
OpenAI 在自己的 GitHub 上開源了一個給 Claude Code 用的官方外掛 openai/codex-plugin-cc(Apache-2.0,撰文當下 30,993 顆星)。裝上去之後,你可以在 Claude Code 裡直接叫 Codex 審 code、或把整個任務丟給它跑。
我實際裝了 v1.0.6 並拿一段我故意寫壞的付款程式碼測:/codex:review 花 41 秒抓出 2 個 P1;但同一份程式碼換 /codex:adversarial-review 抓出 4 個,多出來的兩個是「刪訂單摧毀稽核軌跡」和「完全沒有退款授權邊界」——這兩個標準 review 完全沒提。
這篇把安裝、7 個指令的實際差別、以及那個預設關閉、開了會咬人的 review gate 寫透。

📌 目錄

⭐ 這是什麼,以及為什麼值得注意

手繪風格封面圖:白髮黃圍巾的吉祥物站在工作檯旁,藍色機器人把藍圖交給拿放大鏡的綠色機器人檢查,後方閘門橫桿擋住去路,被退回的紙張散落一地

openai/codex-plugin-cc 是 OpenAI 官方發布、掛在 OpenAI 自己 GitHub organization 下的 Claude Code 外掛。授權是 Apache-2.0,完全開源。

我在撰文當天(2026-08-03)用 GitHub API 撈到的客觀數據:

項目數值
Repoopenai/codex-plugin-cc
Stars30,993
授權Apache-2.0
建立時間2026-03-30
最新 releasev1.0.6(2026-07-08)
Contributors13
Open issues396
值得注意的點在於「誰做給誰用」:這是 OpenAI 把自家的 coding agent 送進 Anthropic 產品的工作流裡。README 的定位寫得很直白——「給那些已經習慣 Claude Code、想順手開始用 Codex 的人」。

順帶一提 396 個 open issue 這個數字:對照 31k 星,代表用的人多、但也還在快速迭代中。這不是一個穩定到可以閉眼睛裝的東西。

🔧 裝起來:實際指令與前置需求

前置需求

README 明列兩項:

  • ChatGPT 訂閱(含 Free)或 OpenAI API key——用量會計入你的 Codex 額度
  • Node.js 18.18 以上

安裝

三步,在 Claude Code 裡打:

/plugin marketplace add openai/codex-plugin-cc
/plugin install codex@openai-codex
/reload-plugins

裝完跑 /codex:setup 檢查。我這台實際跑出來的結果(--json 版本,方便看全貌):

{
  "ready": true,
  "node":  { "available": true, "detail": "v24.18.0" },
  "npm":   { "available": true, "detail": "11.16.0" },
  "codex": { "available": true, "detail": "codex-cli 0.144.4; advanced runtime available" },
  "auth":  {
    "loggedIn": true,
    "detail": "ChatGPT login active",
    "authMethod": "chatgpt",
    "verified": true
  }
}

ready: true 才算真的裝好。如果 Codex 沒裝,/codex:setup 會問要不要幫你裝;想自己裝就 npm install -g @openai/codex,沒登入就 !codex login

我裝的版本是 1.0.6claude plugin list 確認 Status: ✔ enabled

提醒:這個外掛會註冊 SessionStartSessionEndStop 三個 hook。動全域 plugin 設定前,我習慣先備份 ~/.claude/plugins/ 底下的 installed_plugins.jsonknown_marketplaces.json,出事好回頭。

📋 7 個指令各自在幹嘛

README 列了 7 個 slash command 加 1 個 subagent。我把它們按用途分三組:

指令用途會不會改你的 code
/codex:review一般 code review否(read-only)
/codex:adversarial-review可導向的挑戰式 review否(read-only)
/codex:rescue把任務丟給 Codex 動手
/codex:transfer把當前 Claude session 轉成 Codex thread
/codex:status看背景任務進度
/codex:result看完成任務的結果
/codex:cancel取消背景任務
三組的分野是:兩個 review 只看不動、rescue 才真的動手、其餘三個是背景任務管理

/codex:review/codex:adversarial-review 都支援 --base 比對分支、--wait 前景等、--background 背景跑。差別在 adversarial 可以吃自訂 focus 文字,一般 review 不行

/codex:review --base main
/codex:adversarial-review --base main 質疑這裡的快取與重試設計是不是對的

/codex:rescue 走的是 codex:codex-rescue 這個 subagent。我讀了它的定義檔,它被寫成一個「薄轉發層」——明文禁止它自己讀 repo、自己想解法,只准把你的需求轉發給 Codex。支援 --model--effort--resume--fresh;講 spark 會被對應到 gpt-5.3-codex-spark

🧪 實測:兩種 review 差在哪

這是我最想驗的一題:兩個 review 指令到底只是換句話說,還是真的不一樣。

測試設計

我在 /tmp 開了一個乾淨的 git repo,先 commit 一份基準 payment.js,然後加一個我故意寫壞的批次退款函式當作「未提交的改動」:

// 新增:批次退款
async function refundBatch(orderIds) {
  for (const id of orderIds) {
    const order = await db.query(SELECT * FROM orders WHERE id = ${id});
    await db.query(UPDATE accounts SET balance = balance + ${order.amount} WHERE user_id = ${order.user_id});
    await db.query(DELETE FROM orders WHERE id = ${id});
  }
  return orderIds.length;
}

我埋的問題:字串內插造成 SQL injection、三個操作不在同一交易內、刪掉訂單等於刪掉稽核依據、完全沒檢查呼叫者有沒有權限退這筆。

一般 review:41 秒,2 個 P1

終端機截圖:/codex:review 執行結果,41 秒完成,回報兩個 P1 問題,各自標註 payment.js 的行號,底部附 Codex session ID 與 resume 指令

抓到的兩個:

  • [P1] 參數化呼叫端傳入的 order IDpayment.js:19-21)——指出 1 OR 1=1 這類輸入可以刪到不該刪的訂單
  • [P1] 讓餘額入帳與訂單刪除具原子性payment.js:20-21)——指出 DELETE 失敗會導致重複退款
兩個都命中、都附行號、都給了修法。以 41 秒的成本來說,這個品質是可用的。

Adversarial review:4 個,含兩個前面沒抓到的

同一份 code,改下這行:

/codex:adversarial-review --wait 質疑這個批次退款的設計方向本身是否正確

回傳 Verdict: needs-attention,四個 finding:

嚴重度問題一般 review 有抓到嗎
critical退款非原子且無冪等性,重試或併發會重複入帳✅ 有(P1)
high刪除訂單破壞帳務稽核與失敗復原能力❌ 沒有
high退款資格與授權邊界完全缺失❌ 沒有
highorderIds 直接插入 SQL✅ 有(P1)
多出來的兩個,正好是我埋進去、但一般 review 沒講的那兩個。它給的建議也從「這行怎麼改」升級成「這個資料模型方向不適合不可逆的財務操作」,並要求改成帶冪等鍵的退款狀態機。

另外一個實用細節:我用繁體中文下 focus,它整份就用繁體中文回

我的解讀

一般 review 看的是「這段 code 對不對」,adversarial review 看的是「這個設計該不該存在」。要注意這是單一案例、單次執行,不是統計結論——但方向明確:上線前的把關,用 adversarial 那個。

兩者跑完都會給 Codex session ID,可以 codex resume 直接跳進 Codex 接著弄。

⚠️ review gate 的坑:預設關閉,失敗時會擋住你

這是我覺得整包東西裡最需要講清楚、README 也給了警告的功能。

/codex:setup --enable-review-gate
/codex:setup --disable-review-gate

開啟後,它掛的 Stop hook 會在 Claude 每次要結束回合時,叫 Codex 針對這一輪的改動做一次審查;審出問題就擋住,讓 Claude 先修完再停

我讀了 stop-review-gate-hook.mjs 的實作,有幾個數字和行為是文件沒細講、但你該知道的:

  • hook 的 timeout 設定是 900 秒(15 分鐘)
  • Codex 必須回傳開頭是 ALLOW:BLOCK: 的第一行
  • 回傳無法解析、逾時、或執行失敗,一律當作 block 處理——也就是說,Codex 那邊出基礎設施問題時,擋住你的不是「你 code 有 bug」,而是「審查跑不起來」
  • prompt 明文要求:只審上一輪真的有動到 code 的情況,純狀態回報一律直接 ALLOW
README 自己的警語是:這可能造成 Claude/Codex 長時間互相來回,快速吃掉你的用量額度,只在你會盯著看的時候開

我的建議是預設維持關閉,需要嚴格把關的時候手動跑 /codex:adversarial-review 就好。自動化的把關很誘人,但一個會在失敗時 block、又可能燒額度的迴圈,值得你先想清楚再開。

🔌 它不是另一個 Codex,是你本機那個

README 的 FAQ 特別列了一條澄清:這個外掛沒有自己的 Codex runtime。它包的是你本機已經裝的 Codex CLI 與 Codex app server。

代表:

  • 用的是你本機同一份 Codex 安裝
  • 用的是你本機同一份登入狀態(我這台是 ChatGPT 帳號登入,authMethod: "chatgpt"
  • 用的是同一份設定檔
所以你原本的 ~/.codex/config.toml 會被沿用。要針對某個專案指定模型,在專案根目錄放 .codex/config.toml
model = "gpt-5.4-mini"
model_reasoning_effort = "high"

專案級設定只在該專案被標記為 trusted 時才會載入。

🤔 什麼情況該用、什麼情況不用

用了半天之後,我的判斷:

適合的情況

  • 你本來就同時有 ChatGPT 跟 Claude 訂閱,Codex 額度閒著
  • 你想在上線前多一雙不同來源的眼睛,尤其是設計層面的質疑
  • 你已經習慣 Claude Code 的工作流,不想為了用 Codex 切換環境
不適合的情況
  • 你沒有 Codex 帳號也不想再開一個——這外掛不會憑空給你 Codex 額度
  • 你要的是省 token:這是多花一份錢換第二意見,不是省錢方案
  • 你期待兩個 AI 自動協作把事做完——實際上是你手動下指令、它跑完回報的輪流制
真實限制
  • 兩個 review 都是 read-only,不會幫你修
  • 多檔案的 review 會跑一段時間,官方建議用 --background
  • 396 個 open issue,還在高速迭代
  • /codex:transfer 要求來源檔必須在 ~/.claude/projects 底下,太舊的 Codex 版本不支援 session import

❓ 常見問題

Q:這真的是 OpenAI 官方的嗎?
是。repo 在 github.com/openai/codex-plugin-ccplugin.json 的 author 欄位寫 OpenAI,授權 Apache-2.0。撰文當下 30,993 顆星。

Q:免費嗎?
外掛本身開源免費。但它會用掉你的 Codex 額度,而 Codex 需要 ChatGPT 訂閱(Free 方案也算)或 OpenAI API key。所以「外掛免費、推論要錢」。

Q:需要另外開一個 Codex 帳號嗎?
如果這台機器已經登入過 Codex,直接就能用,它讀你本機的 Codex CLI 認證。沒用過 Codex 的話要先 codex login

Q:/codex:review/codex:adversarial-review 差在哪?
一般 review 不可導向、不吃自訂文字,看的是程式碼細節;adversarial 可以吃 focus 文字,會質疑設計方向與取捨。我用同一段有問題的付款程式碼實測,一般版抓 2 個、adversarial 抓 4 個,多的兩個是稽核軌跡與授權邊界這類設計層問題。

Q:review gate 該開嗎?
預設是關的,我建議先維持關閉。它會在每次 Claude 要停下來時叫 Codex 審一遍,審出問題就擋。官方警告它可能造成長時間迴圈並快速消耗額度;而且從原始碼看,Codex 逾時或失敗也會 block,不只是 code 有問題才擋。

Q:它會偷偷改我的 code 嗎?
兩個 review 指令都是 read-only。只有 /codex:rescue 會實際動手,而那是你明確叫它做事的時候。

🔗 延伸資源

想接著做的話,我的建議順序是:先 /codex:setup 確認 ready: true,再拿一段你自己寫過、心裡有底的舊 code 跑一次 /codex:adversarial-review——用你已經知道答案的東西去測它,比拿新 code 更能看出它到底值不值得留在工作流裡。
author
陳彥彤

AI 工程師 · AI 顧問。Java 後端 8 年、AI 工程師 2 年。AI 內訓 · AI 導入顧問 · 前後端與雲端培訓。

support

覺得文章有用可以到 GitHub 給個 star,或是透過信箱聊聊 AI 內訓、AI 導入顧問或前後端 / 雲端培訓。

related

相關文章