codex-vision について
シェルラッパーを介して Claude から OpenAI Codex CLI を呼び出し、画像の確認、生成、編集を行うスキルです。用途別のモードがあり、確認セッションの継続にも対応します。
主な機能
- 01Codex による画像確認
- 02プロンプトからの画像生成
- 03既存画像ファイルの編集
- 04画像確認セッションの再開
- 05出力先とモデルの指定
活用シーン
- 01Codex にスクリーンショットを確認させる
- 02モックアップやワイヤーフレームを生成
- 03画像の修正や注釈追加
- 04更新した画像を再度レビュー
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ thenamangoyal/ codex-vision --skill codex-visionインストール後、Claude Code で/codex-visionを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignoreLICENSECHANGELOG.mdREADME.mdscripts/check-triggering.shcodex-vision.shtests/test_select_image.shtest_rollout_extract.shtests/quoting/check-quoting.shtests/session-modes/check-session-modes.shtests/triggering/cases.yaml詳細
codex-vision
画像入力、画像生成、画像編集などのビジョンタスク向けに、OpenAI Codex CLI(アップストリームのバイナリ /Applications/Codex.app/Contents/Resources/codex)をラップします。Claude は一時ファイルを手動で書き出したり、その都度シェルを直接呼び出したりせずに Codex を呼び出せます。
このスキルを呼び出すタイミング
該当する条件は 2 通りあります。
A. 明示的な呼び出し — 無条件で起動します。 use codex-vision、/codex-vision、またはラッパーを直接シェルから呼び出す記述がある場合です。画像のコンテキストは必要ありません(ユーザーが意図的にスキルを指定しているためです)。
B. 画像に関する意図を示すトリガー — 画像のコンテキストと Codex を使う意図の両方が必要です。 画像のコンテキストとは、既存の画像パスまたは添付ファイル(PNG、JPG、JPEG、WebP、GIF)、ユーザーが今まさに言及している新たに作成したスクリーンショット、またはビジュアル成果物(モックアップ、ワイヤーフレーム、デザイン画像)の生成・編集を明示的に求めることです。「codex」という単語だけでは不十分です。対象ファイルがない状態での「screenshot」だけでも不十分です。
- ユーザーが特定のスクリーンショットまたはディスク上の PNG/JPG パスを Codex に見てもらうよう Claude に依頼する →
review。 - ユーザーが Codex に画像/モックアップ/ワイヤーフレーム/デバイスフレームのレンダリングを生成するよう依頼する(Codex を使う意図が明示されている必要があります。「モックを生成して」だけの場合は、ほかのツールに振り分けます) →
generate。 - ユーザーが Codex に既存の画像ファイルを編集/注釈付け/クリーンアップするよう依頼する(パスが必要です) →
edit。 - スクリーンショットが作成された直後(例:
mcp__claude-in-chrome__computerがsave_to_disk: trueで保存)かつ、ユーザーがその画像を Codex 側でレビューするよう明示的に依頼している場合。スクリーンショットの後に行う Codex のタスクなら何でもよいわけではありません。
このスキルを呼び出さないタイミング
次の場合は、通常の codex exec または永続的な Codex セッションスキルを優先してください。
- ユーザーが Codex にコード、PR、差分、関数のレビューを依頼する — テキストのみで、画像はありません。
-iフラグは関係ありません。 - ユーザーが Codex にコードの作成、リファクタリング、デバッグを依頼する —
codex exec "<prompt>"を直接呼び出してください。 - ユーザーが画像を添付せずに Codex に一般的な質問(「X についてどう思うか Codex に聞いて」「Y を Codex に説明してもらって」など)をする。
- ユーザーが Codex との長時間のリポジトリコーディングセッションを希望している。特にスクリーンショットを基に実装を繰り返す場合は、インストール済みの永続的な Codex/tmux ワークフローを使ってください。同じリポジトリスコープの Codex セッションでレビュー、実装、テストを行い、再開できます。
- ユーザーが「codex」と言及していても、実際の成果物がテキスト(ログ、スタックトレース、JSON、コード)の場合 — codex-vision を使っても意味がありません。
image_genツールをプロンプトすると、モデルを誤った方向に誘導してしまいます。 - ユーザーがディスク上にスクリーンショットを持っていても、現在の依頼がそのスクリーンショットと無関係な場合 —
/tmp/に PNG が存在するというだけで自動的に起動しないでください。
ユーザーの意図が曖昧な場合(「Codex、私の成果物を見て」など)は、どちらの方法も呼び出す前に、成果物が画像かテキストかを確認してください。
呼び出し方
このスキルは単一のシェルラッパーです。Bash ツールから実行します。
~/.claude/skills/codex-vision/scripts/codex-vision.sh <mode> [options] <args>
長時間の画像作業
永続的なリポジトリ作業には、このスキルの --tmux モードを使わないでください。このモードは、1 回限りの codex exec 呼び出しを監視するラッパーにすぎません。
「このダッシュボードのスクリーンショットを使って、ページを再設計し、コードを実装してテストし、後で作業を続ける」といったタスクでは、codex-vision ではなく、インストール済みの永続的な Codex/tmux ワークフローを使ってください。このワークフローでは、リポジトリスコープの Codex UUID が維持され、画像を繰り返し添付でき、入出力画像がリポジトリ内の .agent/codex/images/ の受け渡し領域に保存されます。
成果物の保存
このスキルは意図的に一時的な単発処理として設計されています。codex-vision からリポジトリ内に .agent/codex/ ツリーを作成または管理しないでください。
- 入力画像は呼び出し側が指定するパスから読み取ります。呼び出し側から URL が渡された場合は、まず
/tmp/にダウンロードしてください。 - 生成・編集した画像は、デフォルトで
/tmp/codex-vision-out/<slug>-<timestamp>.pngに保存されます。 - tmux の監視ログは、デフォルトで
/tmp/claude-codex-<slug>.logに保存されます。
ユーザーがリポジトリ内での永続的な画像履歴、スクリーンショットの繰り返し保存、または実装作業に関連付けられた生成アセットを希望する場合は、永続的な Codex/tmux ワークフローに振り分けてください。
モード
| モード | 概要 | 動作 |
|---|---|---|
review IMAGE [IMAGE...] PROMPT | 1 回限りの画像レビュー | codex exec -i ... を実行します |
generate PROMPT | Codex に画像の生成を依頼します | プロンプトを「Use image_gen to ; save to 」としてラップします |
edit IMAGE PROMPT | Codex に画像の編集を依頼します | プロンプトを「Use image_gen to edit the attached image: ...」としてラップします |
オプション
| オプション | 効果 |
|---|---|
--out PATH | 生成/編集した画像の出力先(デフォルト:/tmp/codex-vision-out/<slug>-<ts>.png) |
--tmux NAME | claude-codex-<NAME> tmux セッション内で実行します。ユーザーは tmux attach -t claude-codex-<NAME> でライブ状況を確認できます |
--keep | 完了後も tmux セッションとログを残します(デフォルトではクリーンアップします) |
--model MODEL | codex exec --model に渡します(例:gpt-5-codex) |
--resume UUID | ID で特定の codex セッションを再開します。呼び出し元が UUID を把握している場合に便利です |
--resume-last-vision | 直近の codex-vision セッションを強制的に再開します(~/.claude/skills/codex-vision/.last-session-uuid にキャッシュされています) |
--fresh | プロンプトの表現がスマート再開ヒューリスティックに該当する場合でも、必ず新しい codex セッションを開始します |
セッションの継続
このラッパーは後続の呼び出しでも codex のコンテキストを維持するため、モックアップの反復や更新されたスクリーンショットの再レビューで、コールドスタートのコストを二度負担せずに済みます。呼び出しが成功するたびに codex セッション UUID が
~/.claude/skills/codex-vision/.last-session-uuid に記録され、次の呼び出しでは簡単なヒューリスティックを使ってこのキャッシュを参照します。
- 自動再開は
reviewのみに適用されます。reviewプロンプトに後続作業を示す表現(continue、iterate、follow up、based on the previous、again with、now also、now add、also add、refine、tweak、as before、same image、keep going)が含まれている場合、ラッパーはキャッシュされたセッションを自動再開します(更新されたスクリーンショットの再レビューでもコンテキストが維持されます)。 generate/editは自動再開されません(後続作業を示す表現があっても同様です)。画像セッションを再開すると、ほぼ同じ画像が再出力されるためです(同一画像を再生成するバグ)。--resume <UUID>/--resume-last-visionを指定しない限り、新しいセッションを開始します。- それ以外の場合、ラッパーは新しいセッションを開始し、新しい UUID でキャッシュを更新します。
フラグの優先順位は次のとおりです。--fresh(必ず新規)> --resume UUID
(指定された UUID を使用)> --resume-last-vision(キャッシュを強制的に使用)> ヒューリスティック。
再開したセッションでは、元のターンの codex サンドボックスとワークスペース設定が再利用されます。そのため、generate/edit は --sandbox を再指定しなくても、初回と同じ OUT_PATH の親ディレクトリに書き込みます。キャッシュファイルがない場合、ヒューリスティックはエラーを出さずに新しいセッションへ移行します。
Claude が従うべき規約
- tmux セッションには必ず
claude-codex-をプレフィックスとして付けてください。 スクリプトで強制されます。これを回避してはいけません。ユーザーはtmux ls | grep claude-codex-で Claude が作成したセッションを識別できます。 - ログは
/tmp/claude-codex-<slug>.logに出力します。 ユーザーが個別にtail -fできるよう、予測可能な場所に保存します。 - 画像はデフォルトで
/tmp/codex-vision-out/に出力します。 - codex-vision の画像を
.agent/codex/に書き込まないでください。 このフォルダーは永続的なリポジトリ単位の Codex/tmux セッション用です。 --tmuxを使うのは、 実行に 30 秒以上かかる見込みがある場合、ユーザーが実行状況の確認や中断を希望する場合、またはユーザーが明示的にセッションを求めた場合に限ります。短時間の画像レビューでは、デフォルトで同期モードを使用します。- 複合ワークフロー(入力画像と生成された出力の両方を扱う)の場合は、
editモードを使用します。1 回の Codex 呼び出しで両方を設定できます。
例
# Quick screenshot review
~/.claude/skills/codex-vision/scripts/codex-vision.sh review /tmp/ui.png "What's wrong with this layout?"
# Image generation
~/.claude/skills/codex-vision/scripts/codex-vision.sh generate "isometric diagram of a 4-trajectory GRPO group with advantages" --out /tmp/grpo.png
# Image editing
~/.claude/skills/codex-vision/scripts/codex-vision.sh edit /tmp/raw.png "remove the red overlay; make background transparent" --out /tmp/clean.png
# Long observable review
~/.claude/skills/codex-vision/scripts/codex-vision.sh review /tmp/ui.png "deep walk-through" --tmux ui-review
# user attaches with: tmux attach -t claude-codex-ui-review
このスキルが実行されたときに Claude が行うこと
- ユーザーの意図からモードを特定します:レビュー(画像を見る)/生成(画像を作る)/編集(画像を変更する)。
- 画像のパスを解決します — 画像はすでにディスク上に存在している必要があります。ユーザーが URL を指定した場合は、まず
/tmp/にダウンロードします。 - シェルラッパーを使ってコマンドを組み立てます。
Bashを 1 回だけ呼び出します。 - 同期実行と
--tmuxのどちらかを選びます:短いタスクには同期実行、ユーザーが実行を見たい場合やタスクに時間がかかる場合は--tmuxを使います。 - 呼び出し後、Codex のテキスト応答(レビューモード)、または出力パスと 1 行の要約(生成/編集モード)を返します。
OUT_PATHに生成ファイルが存在する場合は、ユーザーに提示します(例:「画像を/tmp/codex-vision-out/...に保存しました」)。
前提条件
このスキルでは、以下を前提としています:
- Codex CLI がインストールされていること(macOS では
/Applications/Codex.app/Contents/Resources/codex、または OpenAI Codex CLI から PATH 上にあるcodex) - Codex の認証が済んでいること — ユーザーが一度
codex loginを実行している(または Codex.app にサインインしている) --tmuxを使う場合はtmuxがインストールされていること(macOS ではbrew install tmux)
スクリプトは次の順序で codex バイナリを自動検出します:
$CODEX_VISION_CODEX_BIN(明示的な上書き — 任意の codex バイナリを指定します)which codex(PATH 上の任意の場所)/Applications/Codex.app/Contents/Resources/codex(単体の Codex.app)/Applications/ChatGPT.app/Contents/Resources/codex(ChatGPT.app に同梱された codex — Codex アプリが ChatGPT.app に統合されたもの)- ユーザーごとの
~/Applications/にある上記 2 つのバンドル - 明確なエラーメッセージを表示して失敗
codex が通常とは異なる場所にある場合は、export CODEX_VISION_CODEX_BIN=/path/to/codex を実行してください。
ユーザーによるスキルのインストール方法
ユーザーから「codex-vision をインストールする方法」について尋ねられた場合や、誰かと共有したい場合は、npx skills からインストールします。
Claude Code 専用 — ~/.claude/skills/codex-vision/ に直接配置します:
npx skills add thenamangoyal/codex-vision -g -a claude-code -y
すべてのエージェントに一括インストール — Claude Code、Cursor、Codex CLI、Gemini CLI。ソースは ~/.agents/skills/codex-vision/ に一度だけ書き込まれ、各エージェントのスキルディレクトリにシンボリックリンクされます:
npx skills add thenamangoyal/codex-vision -g --all
@v0.3.1 を指定すると、特定のバージョンに固定できます。プロジェクト単位でインストールするには -g を省略します。アンインストールするには npx skills remove codex-vision を実行します。
確認:
~/.claude/skills/codex-vision/scripts/codex-vision.sh doctor
~/.claude/skills/codex-vision/scripts/codex-vision.sh selftest
代替の直接インストール(npx skills を使わない場合):git clone https://github.com/thenamangoyal/codex-vision ~/.claude/skills/codex-vision。
トリガーテスト
トリガー評価(tests/triggering/cases.yaml + scripts/check-triggering.sh)
では、このマニフェストの実行条件を、手作業で作成した 50 個のユーザープロンプトに対してベンチマークします —
15 個は実行、20 個はスキップ、15 個は確認を要求する必要があります。ランナーはすべてのケースを
1 回の codex exec 呼び出しにまとめ、判定結果を解析し、誤検知
(skip/clarify が期待されているのにモデルが FIRE と回答)または誤検出漏れ(fire が期待されているのにモデルが SKIP/CLARIFY と回答)が
1 つでもあれば失敗します。v0.3.2 時点で、3 回の試行すべてで 50/50 の安定した結果が得られています。次のコマンドで実行します:
bash ~/.claude/skills/codex-vision/scripts/check-triggering.sh # one trial
bash ~/.claude/skills/codex-vision/scripts/check-triggering.sh --runs 3 # majority over 3
YAML の description、または When to invoke/When NOT to
invoke のセクションを変更した場合は、テストを再実行し、50/50 に戻るまで表現を調整してください。
セッションモードのストレステスト
セッション継続ロジックには、独自のリグレッションテスト
tests/session-modes/check-session-modes.sh があります。codex CLI をスタブ化し、
プライベートな CODEX_HOME の下に現実的なロールアウトファイルを作成して、
4 つの主要な動作を検証します:デフォルトで新規セッション、--resume UUID、ヒューリスティックによる再開(プロンプトにフォローアップを示す表現が含まれる)、ヒューリスティックによる新規セッション(プロンプトに含まれない)。
5 つ目のケースでは、--fresh がヒューリスティックより優先されることを確認します。実行ごとに、
tests/session-modes/results-<timestamp>.md に Markdown の要約が書き込まれます。次のコマンドで実行します:
bash ~/.claude/skills/codex-vision/tests/session-modes/check-session-modes.sh
このテストはオフラインで実行されます(ネットワークも実際の codex 呼び出しも使用しません)。ラッパーのセッション継続ブロックを編集した後は、テストを再実行してください。
禁止事項
claude-codex-プレフィックスを省略しないでください — これは、Claude が起動したセッションをユーザーが識別するためのものです。--keepが渡されていない限り、ログやセッションを残さないでください。- ユーザーに確認せず、ユーザーのリポジトリに画像を書き込まないでください。デフォルトの
/tmp/codex-vision-out/は安全です。 - 5 秒で終わる簡単なレビューに
--tmuxを使わないでください — その場合は余計な手間がかかるだけです。