# ウィンドウを切り替えずに画像生成：Claude Code に Codex CLI 経由で OpenAI Image-2 を呼ばせる

> Codex CLI 経由で OpenAI Image-2 を Claude Code に接続。一言で画像がプロジェクトフォルダに直接落ちる。API key もウィンドウ切り替えも不要だ。

- Author: Paul Kuo（郭曜郎）
- Date: 2026-04-29
- Pillar: 知性と秩序 / Intelligence & Order
- Tags: Claude Code, Codex CLI, OpenAI Image-2, ChatGPT 画像生成, Claude Skill, AIワークフロー統合, 画像生成の自動化
- Canonical: https://paulkuo.tw/ja/articles/claude-code-codex-imagegen/
- Language: Japanese (日本語)
- Translation: AI-translated from the zh-Hant (Traditional Chinese) original
- Original (zh-Hant): https://paulkuo.tw/articles/claude-code-codex-imagegen.md
- Site index for LLMs: https://paulkuo.tw/llms.txt
- Idea file (goal, constraints, tradeoffs, acceptance criteria; written in zh-Hant; feed it to your agent to rebuild this project): https://paulkuo.tw/articles/claude-code-codex-imagegen.idea.md

---

> **TL;DR** Codex CLI を使って OpenAI Image-2 を Claude Code に接続すれば、OpenAI API key は不要、「画像生成」と一言言うだけで画像が直接 `./images/` に保存される。Claude Code ターミナル版と Claude App / Cowork 版それぞれに Skill が一つずつあり、どちらもダウンロードしてそのまま使える。

<div class="listen-summary" style="margin:1.25rem 0;padding:0.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-section);">
  <div style="font-size:0.9rem;font-weight:600;color:var(--text-secondary);margin-bottom:0.5rem;letter-spacing:0.02em;">▶ 要約を聴く</div>
  <audio preload="none" controls style="width:100%;display:block;">
    <source src="https://audio.paulkuo.tw/claude-code-codex-imagegen-ja.mp3" type="audio/mpeg" />
    お使いのブラウザは音声再生に対応していません。<a href="https://audio.paulkuo.tw/claude-code-codex-imagegen-ja.mp3">音声をダウンロード</a>してください。
  </audio>
  <div style="font-size:0.75rem;color:var(--text-secondary);opacity:0.75;margin-top:0.4rem;">AI合成音声・著者本人の声のクローン</div>
</div>

私は最近、ほぼ一日中 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 アカウントも持っている人
- 画像素材を記事、スライド、プロダクトのモックアップ、プロジェクトフォルダへ頻繁に入れる必要がある人
- 画像を生成するたびに ChatGPT ウェブ版へ切り替えたくない人
- AI ツールを単発利用ではなく、自分のワークフローへ繋げ始めたい人

もしあなたが CLI にまったく触れない人や、たまに一枚生成するだけの人なら、ChatGPT ウェブ版を直接使えばいい。本記事の価値は、画像生成を繰り返し可能・バッチ処理可能・Skill としてパッケージ化可能なワークフローに変えることにある。

---

## まずいくつかの用語を人間の言葉に訳しておく

| 用語 | まずはこう理解しておけばいい |
|---|---|
| Claude Code | Claude の開発者向け作業環境。プロジェクトフォルダの中でファイルの読み書きやコマンド実行を手伝ってくれる |
| Codex CLI | OpenAI のローカルコマンドラインツール。ChatGPT アカウントでログインでき、OpenAI の能力をあなたのターミナルに引き込める |
| Image-2 | OpenAI の画像生成モデル。本記事ではこれで画像を生成する；API ドキュメント上のモデル名は `gpt-image-2` |
| Skill | Claude に与える一連の固定された作業指示。ある種の要求に出会ったときどう対処すべきかを 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 Code と Claude デスクトップ App の二つのインターフェースが OpenAI Image-2 に収束するフロー図](/images/articles/claude-code-codex-imagegen-flow.jpg)

二つの経路の違いはただ一つ：Claude がどうやってあなたのローカルの `codex` を起動して走らせるか、だ。

Claude Code はもともと Bash を実行できるので、直接呼び出す。Claude App / Cowork がローカルコマンドに触れるには、「Control your Mac」MCP というこの橋が必要になる。その後はみな同じだ。Codex が ChatGPT アカウントで認証し、Image-2 を呼び出して画像を出し、画像が指定したパスに落ちる。

```mermaid
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 をインストールする

二つのインストール方法から一つ選ぶ：

```bash
# npm 版（クロスプラットフォーム対応）
npm i -g @openai/codex

# または Homebrew（macOS）
brew install --cask codex
```

### 2. ChatGPT アカウントで Codex にログインする

```bash
codex login                # ブラウザが開き、ChatGPT アカウントでの認証へ案内される
codex login status         # Logged in using ChatGPT と表示されるはず
```

### 3. あなたのアカウントが画像生成を使えることを確認する

この経路は ChatGPT アカウント認証であり、OpenAI API key ではない。

[OpenAI 公式アナウンス](https://openai.com/zh-Hant/index/introducing-chatgpt-images-2-0/)によれば、すべての ChatGPT および Codex ユーザーが画像生成を使える：

| アカウント / プラン | 使えるか | 備考 |
|---|---|---|
| 無料 ChatGPT | ✅ 使える | 基本的な画像生成能力 |
| ChatGPT Plus / Pro / Business | ✅ 使える | 品質、可制御性、複雑なシーンの処理が通常より良い |
| OpenAI API | ✅ 使える | ただしこれは別の経路で、API key とトークン課金を通る |

ポイント：**この統合を走らせるのに必ずしも Plus を払う必要はない**。無料アカウントでも使える、違いは出力品質だけだ。

### 4. Claude App / Cowork で使いたいなら、Control your Mac MCP もインストールする

純粋な Claude Code ターミナルユーザーはこのステップを飛ばせる。Bash で直接 codex を走らせられる。

Claude デスクトップ App の Chat / Cowork ウィンドウで直接「画像生成」と叫びたいなら、この MCP が Claude にあなたのローカルの `codex` を呼び出させるために必要だ。

[k6l3/osascript-dxt（GitHub）](https://github.com/k6l3/osascript-dxt) で `.mcpb` ファイルをダウンロードし、ダブルクリックして Claude デスクトップ App にインストールする。初回呼び出し時に macOS の自動化権限リクエストが出るので、許可をクリックする。

---

## 最小実行可能版：まず一度走らせてみる

このことが本当に動くかどうかをまず確認したいだけなら、急いで Skill にパッケージ化する必要はない。

最小フローはたった三ステップだ：

1. Codex CLI をインストールする
2. `codex login` を実行する
3. あなたのプロジェクトフォルダで実行する：

```bash
mkdir -p ./images

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

成功すれば、現在のプロジェクト直下にこれが見えるはずだ：

```bash
./images/shiba.png
```

まずこのステップを通してから、Skill にパッケージ化する。最初から Codex CLI、Skill、MCP、Cowork をすべて混ぜないこと。さもないと、問題がどの層で起きているのか分からなくなる。

---

## 実際の出力はこうなる

約 1 分走らせて、1254×1254、約 2 MB の PNG を得た：

![サングラスをかけた柴犬、Codex CLI + Image-2 で生成](/images/articles/claude-code-codex-imagegen-shiba.png)

図：Claude Code から Codex CLI を呼び出し、OpenAI Image-2 を通して生成したテスト画像。ポイントは柴犬ではなく、画像が直接 `./images/shiba.png` に落ちていること。全工程でブラウザを開かず、ウェブ版に prompt を貼らず、手動でダウンロードもしていない。

---

## 私がハマった二つの落とし穴

### 落とし穴 1：初回 Codex 実行が `.codex` の権限で弾かれる

もしこう表示されたら：

```bash
Failed to create session: Operation not permitted
```

たいていは `~/.codex` の権限がおかしい。これを走らせて直す：

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

そしてもう一度実行する。

### 落とし穴 2：画像が思っていたフォルダに現れない

`-C "$(pwd)"` の意味は：Codex に「あなたがコマンドを実行したその時にいるフォルダ」を作業ディレクトリとさせる、ということだ。

だから必ず先に：

```bash
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](/downloads/gen-image-skills.zip)**

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

インストール後は、どのインターフェースでも「帽子をかぶったカピバラを一枚生成」と言える。Claude はその時に使えるツールに応じて、対応する Skill を自動で選ぶ。

CLI 版の `~/.claude/skills/gen-image-cli/SKILL.md` を自分で手作りしたいなら、コアの内容はこうだ：

```yaml
---
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 を併用する人
- 記事のカバー画像、スライドの挿絵、プロダクトのモックアップ、講座素材を頻繁に生み出す必要がある人
- 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 を自分の第二の作業台に変えようとしているなら、ぜひまた遊びに来てほしい。

---

**同じ codex ブリッジには、もう一段進んだ使い方がある**：codex を Claude の外で独立したレビュアーとして使い、誤りを指摘させてセカンドオピニオンを得る。やり方はこの記事に書いた：[codex に Claude の誤りを指摘させた、ただし言いなりにはならない](/ja/articles/ai-second-opinion-independence/)。
