TL;DR — 用 Codex CLI 把 OpenAI Image-2 接進 Claude Code,不需要 OpenAI API key,說一句「生圖」圖片直接存到 ./images/。Claude Code 終端機版和 Claude App / Cowork 版各有一個 Skill,都可下載直接用。

我最近幾乎整天待在 Claude Code 裡。

寫文章、拆任務、整理素材、改程式、產生 prompt,大部分工作都可以在同一個 Claude 視窗裡完成。

但有一件事會讓流程突然斷掉:生圖。

我也有 ChatGPT / OpenAI 帳號,而 OpenAI 的圖像生成能力很好用。問題是,每次我要生圖時,通常得切到 ChatGPT 網頁版、貼 prompt、等圖片、下載,再把檔案搬回專案資料夾。

這些動作都不難,但很煩。

所以我想做一件很懶的事:

能不能直接在 Claude Code 裡說「幫我生一張圖」,然後讓它呼叫 Codex CLI,用我的 ChatGPT 帳號去跑 OpenAI Image-2,最後把圖片直接存進目前專案的 ./images/

答案是:可以。

這篇就是完整做法。

如果你剛開始熱衷使用 Claude Code,這篇會帶你看懂一件事:AI 工具真正好用的地方,不是單點能力,而是你能不能把它們接成一條不會中斷的工作流。


這篇特別適合你,如果你:

  • 剛開始熱衷使用 Claude Code
  • 同時也有 ChatGPT 或 OpenAI 帳號
  • 常常需要把圖片素材放進文章、簡報、產品 mockup 或專案資料夾
  • 不想每次生圖都切到 ChatGPT 網頁版
  • 想開始把 AI 工具串成自己的工作流,而不只是單點使用

如果你完全不碰 CLI,或只是偶爾生一張圖,直接用 ChatGPT 網頁版就好。這篇的價值在於:把生圖變成可以重複、可以批次、可以包成 Skill 的工作流。


先把幾個名詞翻成人話

名詞你可以先這樣理解
Claude CodeClaude 的開發者工作環境,可以在專案資料夾裡協助你讀檔、寫檔、跑指令
Codex CLIOpenAI 的本機命令列工具,可以用 ChatGPT 帳號登入,讓 OpenAI 的能力進到你的終端機
Image-2OpenAI 的圖像生成模型,本文用它來產生圖片;API 文件裡的模型名稱是 gpt-image-2
Skill給 Claude 的一組固定工作說明,讓它知道遇到某種需求時該怎麼做
MCP讓 Claude 桌面 App 可以呼叫本機能力的橋
CoworkClaude 桌面 App 裡更接近「一起工作」的介面,可產出檔案與 outputs

最後你會得到的效果

在 Claude Code 裡,你可以說:

幫我生一張戴墨鏡的柴犬,存成 ./images/shiba.png

Claude 會幫你整理 prompt,呼叫本機的 Codex CLI。Codex CLI 會用你的 ChatGPT 帳號呼叫 OpenAI Image-2,最後把圖片存到專案資料夾。

整個過程不用打開 ChatGPT 網頁版,不用手動下載圖片,也不用另外準備 OpenAI API key。


這條工作流怎麼跑?

主線很簡單:

你在 Claude 裡說需求
→ Claude 整理 prompt
→ Codex CLI 執行
→ ChatGPT 帳號授權
→ Image-2 生圖
→ PNG 存到 ./images/

不管你習慣在哪個介面工作,最後都收斂到同一條 OpenAI 鏈路:

Claude Code 跟 Claude 桌面 App 雙介面收斂到 OpenAI Image-2 的流程示意圖

兩條路徑的差別只有一個:Claude 是怎麼叫你本機的 codex 起來跑。

Claude Code 本來就能跑 Bash,所以直接呼叫。Claude App / Cowork 要碰本機指令,需要「Control your Mac」MCP 這座橋。再往後都一樣——Codex 用 ChatGPT 帳號驗證、呼叫 Image-2 出圖、圖片落到指定路徑。

flowchart LR
    U([使用者]) -->|"「生圖一張柴犬」"| D{在哪個介面?}
    D -->|Claude Code 終端機| S1[gen-image-cli<br/>Skill]
    D -->|Claude App / Cowork 視窗| S2[gen-image-app<br/>Skill]
    S1 -->|Bash 直接呼叫| CX[Codex CLI 0.125+<br/>本機]
    S2 -->|Control your Mac MCP<br/>osascript 請本機跑| CX
    CX -->|ChatGPT 帳號驗證| TOOL[image_gen.imagegen]
    TOOL -->|背後呼叫| GPT[(OpenAI Image-2<br/>gpt-image-2)]
    GPT -->|PNG bytes| F[./images/foo.png]
    F -->|"CLI:落到專案資料夾<br/>App:自動回傳 Cowork outputs"| U

你需要先準備什麼?

1. 安裝 Codex CLI

兩個安裝方式任選一個:

# npm 版(跨平台都可)
npm i -g @openai/codex

# 或 Homebrew(macOS)
brew install --cask codex

2. 用 ChatGPT 帳號登入 Codex

codex login                # 會開瀏覽器引導你用 ChatGPT 帳號授權
codex login status         # 應顯示 Logged in using ChatGPT

3. 確認你的帳號能使用圖像生成

這條路線走的是 ChatGPT 帳號授權,不是 OpenAI API key。

OpenAI 官方公告,所有 ChatGPT 和 Codex 使用者都能用圖像生成:

帳號 / 方案能不能用備註
免費 ChatGPT✅ 可以基礎圖像生成能力
ChatGPT Plus / Pro / Business✅ 可以品質、可控性、複雜場景處理通常更好
OpenAI API✅ 可以但這是另一條路,走 API key 與 token 計費

重點:你不一定要付 Plus 才能跑這套整合。免費帳號也能用,差別只在輸出品質。

4. 如果要在 Claude App / Cowork 使用,再安裝 Control your Mac MCP

純 Claude Code 終端機用戶可以跳過這一步——Bash 直接就能跑 codex。

如果你想在 Claude 桌面 App 的 Chat / Cowork 視窗直接喊「生圖」,需要這個 MCP 讓 Claude 能呼叫你本機的 codex

k6l3/osascript-dxt(GitHub) 下載 .mcpb 檔,雙擊安裝到 Claude 桌面 App。第一次呼叫會跳 macOS 自動化權限請求,點允許。


最小可行版本:先跑一次看看

如果你只想先確認這件事真的能跑,不用急著包 Skill。

最小流程只有三步:

  1. 安裝 Codex CLI
  2. 執行 codex login
  3. 在你的專案資料夾裡執行:
mkdir -p ./images

codex exec -C "$(pwd)" -s workspace-write \
  --skip-git-repo-check \
  "請使用 image generation tool 生成一隻戴墨鏡的柴犬,存成 ./images/shiba.png"

成功的話,你會在目前專案底下看到:

./images/shiba.png

先跑通這一步,再來包 Skill。不要一開始就把 Codex CLI、Skill、MCP、Cowork 全部混在一起,不然會不知道問題出在哪一層。


實際輸出長這樣

跑了大約 1 分鐘,得到一張 1254×1254、約 2 MB 的 PNG:

戴墨鏡的柴犬,由 Codex CLI + Image-2 生成

圖:用 Claude Code 呼叫 Codex CLI,再透過 OpenAI Image-2 產生的測試圖。重點不是柴犬,而是圖片直接落在 ./images/shiba.png——整個過程沒有開瀏覽器、沒有貼 prompt 到網頁版、沒有手動下載。


我踩過的兩個坑

坑 1:第一次跑 Codex 被 .codex 權限擋住

如果你看到:

Failed to create session: Operation not permitted

通常是 ~/.codex 權限不對。跑這條修正一下:

sudo chown -R $(whoami) ~/.codex

再重新執行一次。

坑 2:圖片沒有出現在你以為的資料夾

-C "$(pwd)" 的意思是:請 Codex 以「你執行指令當下所在的資料夾」作為工作目錄。

所以你一定要先:

cd 你的專案資料夾

再執行 codex exec

不然圖片可能會被存到 home、Downloads,或其他你沒預期的位置。


包成 Skill:之後只要說「生圖」

前面的 codex exec 可以手動跑,但每次都打那一長串很累。

所以我把它包成兩個 Claude Skill:

你在哪裡使用 Claude該用哪個 Skill需要 MCP 嗎?
Claude Code 終端機gen-image-cli不需要
Claude 桌面 App / Coworkgen-image-app需要 Control your Mac MCP

Claude Code 使用者:先用 CLI 版

如果你主要在 Claude Code 裡工作,事情最簡單。Claude Code 本來就能跑 Bash,所以 gen-image-cli 可以直接呼叫本機的 codex,沒有額外設定。

Claude App / Cowork 使用者:再看 App 版

如果你想在 Claude 桌面 App 或 Cowork 視窗裡直接說「生圖」,那就需要多一層橋:Control your Mac MCP。

因為 Claude App 不能像 Claude Code 那樣直接跑終端機指令,所以要透過 MCP / osascript 請你的 Mac 幫忙執行 codex

下載與安裝

📦 下載:gen-image-skills.zip

mkdir -p ~/.claude/skills && unzip -o ~/Downloads/gen-image-skills.zip -d ~/.claude/skills/

裝完後,在哪個介面都能說「生圖一張戴帽子的水豚」,Claude 會根據當下可用工具自動挑對應的 Skill。

如果想自己手刻 CLI 版的 ~/.claude/skills/gen-image-cli/SKILL.md,核心內容是這樣:

---
name: gen-image-cli
description: 在 Claude Code(CLI)內透過 Bash 呼叫本機 Codex CLI 生圖(背後是 OpenAI Image-2,API 模型 gpt-image-2),存到當前工作目錄的 ./images/。觸發詞:生圖、畫一張、來張圖、generate image。
allowed-tools: Bash(codex:*) Bash(mkdir:*) Bash(ls:*) Bash(pwd:*)
---

# 生圖 Skill(Claude Code CLI 版)

當使用者說「生圖」、「畫一張」時,依下列步驟執行:

1. 確認當前工作目錄(pwd)
2. 建立輸出資料夾:mkdir -p ./images
3. 從用戶描述萃取圖像描述跟英文檔名
4. 呼叫:
   codex exec -C "$(pwd)" -s workspace-write \
     --skip-git-repo-check \
     "請使用 image generation tool 生成:[描述],存成 ./images/[檔名].png"
5. ls 確認檔案、回報絕對路徑

App 版的差別在於 allowed-tools 改用 mcp__Control_your_Mac__osascript,透過 osascript 在你的 Mac 上跑 codex,最後把圖複製回 Cowork outputs 給你預覽。完整內容在 zip 的 gen-image-app/SKILL.md

幾個共通重點:description 寫清楚觸發詞,Claude 才知道用戶在喊它;allowed-tools 限縮到必要工具,避免誤觸;步驟描述用人類語言寫就行。


這套方法適合誰?不適合誰?

適合:

  • 已經習慣在 Claude Code 裡工作的使用者
  • 同時使用 Claude 與 ChatGPT / OpenAI 的人
  • 常常需要產出文章封面圖、簡報插圖、產品 mockup、課程素材的人
  • 想把 AI 工具變成可重複工作流,而不是每次手動操作的人
  • 想開始理解 Claude Skill、MCP、本機 CLI 如何串起來的人

不太適合:

  • 只偶爾生一兩張圖的人(直接用 ChatGPT 網頁版就好)
  • 完全不想碰終端機的人
  • 對圖片落檔位置、批次生圖、自動化沒有需求的人

結論:不是多一個工具,而是少一次中斷

這套做法真正有價值的地方,不是「我又多接了一個 AI 工具」。

而是它讓工作流少了一次中斷。

Claude 繼續當我的大腦,負責理解需求、拆任務、整理 prompt。Codex CLI 當我的手,負責把 OpenAI Image-2 叫起來生圖。最後圖片直接落在專案資料夾,不用切視窗、不用下載、不用搬檔。

如果你跟我一樣,同時使用 Claude 和 ChatGPT,這是目前我覺得最順的一種整合方式。

訂閱費沒白付,工作流還變更短。

我會持續在 paulkuo.tw 記錄這類 AI 工作流實作:不是只看 AI 新聞,而是把 Claude、Codex、Skill、MCP、知識管理與自動化真正塞進日常工作。如果你也正在把 AI 變成自己的第二工作台,歡迎常回來逛逛。