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 Code | Claude 的開發者工作環境,可以在專案資料夾裡協助你讀檔、寫檔、跑指令 |
| Codex CLI | OpenAI 的本機命令列工具,可以用 ChatGPT 帳號登入,讓 OpenAI 的能力進到你的終端機 |
| Image-2 | OpenAI 的圖像生成模型,本文用它來產生圖片;API 文件裡的模型名稱是 gpt-image-2 |
| Skill | 給 Claude 的一組固定工作說明,讓它知道遇到某種需求時該怎麼做 |
| MCP | 讓 Claude 桌面 App 可以呼叫本機能力的橋 |
| Cowork | Claude 桌面 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 是怎麼叫你本機的 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。
最小流程只有三步:
- 安裝 Codex CLI
- 執行
codex login - 在你的專案資料夾裡執行:
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:

圖:用 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 / Cowork | gen-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 變成自己的第二工作台,歡迎常回來逛逛。
💬 留言討論
載入中...