codex execに-iで画像を付けたら「No prompt provided via stdin」で止まった。後ろの指示文まで画像として読まれていた

運営者

2026年10月4日、部下役のAIに、記事のサムネイルを描き直してもらおうとしました。
元の画像を土台にして、一部だけを差し替える作業です。
codex exec に -i(画像を渡す指定)で元の画像を付けたところ、1秒ほどでこう出て止まりました。

Reading prompt from stdin...
No prompt provided via stdin.

指示文はコマンドの最後に書いてあったのに、指示文が無いと言われた形です。

指示文をパイプで渡すと、通りました。
パイプは、前のコマンドの出力を次のコマンドへ流す仕組みです。
同じ画像と同じ指示文で、3分かからずに描き直した画像ができています。

Codex CLI(文字を打ち込んで使うコマンド版のCodex)は、部下役のAIに呼ばせて使っている道具です。
版は codex-cli 0.154.0 です。

3本のうち、指示文を後ろに置いた2本が止まった

10月4日は、描き直しの案を3つ、別々の部下役のAIに並行して頼みました。
3本とも、元の画像を -i で付けています。

止まった2本は、指示文を -i の後ろに並べていました。

codex exec -m gpt-5.6-luna -C (出力先のフォルダ) --sandbox workspace-write --skip-git-repo-check -i eyecatch.png "(指示文)"

-m gpt-5.6-luna は、僕の環境でモデルを名指しするための指定で、この話とは別です。
理由は末尾の記事に書きました。

残りの1本は、最初から指示文をパイプで流していて、1回で通っています。

-i が、後ろの指示文も画像として受け取っていた

codex exec --help を開くと、-i はこう書かれています。

  -i, --image <FILE>...
          Optional image(s) to attach to the initial prompt

<FILE>... の ... は、値を後ろにいくつも続けられるという印です。
そのため、画像の後ろに置いた指示文も、2つめの画像の場所として受け取られたと見ています。

指示文の欄(PROMPT)の説明は、こうでした。

  [PROMPT]
          Initial instructions for the agent. If not provided as an argument (or if `-` is used),
          instructions are read from stdin. If stdin is piped and a prompt is also provided, stdin
          is appended as a `<stdin>` block

指示文がコマンドの後ろに無ければ、stdin から読む、という意味です。
stdin は、パイプなどで外から流し込まれる入力の入り口です。
指示文があってパイプも来ているときは、パイプの中身を後ろに足す、とも書かれています。

部下役のAIがコマンドを動かす場では、そこに何も流れてきません。
だから空のまま読み終わり、指示文が無いとして止まったのだと考えています。
止まるまで1秒ほどで、画像は1枚も描かれていませんでした。

公式の説明では、-i は繰り返し指定でき、カンマ区切りの並びにも対応する、となっています。
2枚以上を付けるならその書き方になりますが、僕はまだ試していません。

指示文の渡し方を3通り試した

2026年11月10日に、部下役のAIに手元で確かめてもらいました。
赤一色の小さな画像を -i で付け、「添付画像の色を一語で答えてください」と頼む形です。

まず、10月4日と同じ並びにすると、同じエラーで止まりました。

codex exec -m gpt-5.6-luna -C (フォルダ) --sandbox read-only --skip-git-repo-check -i red.png "添付画像の色を一語で答えてください"

次の3つは、どれも「赤」と返ってきて通りました。

1つめは、指示文をパイプで渡し、最後に - を置く形です。

echo "添付画像の色を一語で答えてください" | codex exec -m gpt-5.6-luna -C (フォルダ) --sandbox read-only --skip-git-repo-check -i red.png -

- は、指示文を stdin から読ませる印です。
公式の説明にも、- を使うと指示文を stdin から流し込める、とあります。

2つめは、-- で区切ってから指示文を書く形です。

codex exec -m gpt-5.6-luna -C (フォルダ) --sandbox read-only --skip-git-repo-check -i red.png -- "添付画像の色を一語で答えてください"

-- は、ここから後ろは指定ではない、とコマンドに伝える区切りです。
画面の1行目に Reading additional input from stdin... と出ましたが、そのまま進みました。

3つめは、指示文を -i より前に置く形です。

codex exec -m gpt-5.6-luna -C (フォルダ) --sandbox read-only --skip-git-repo-check "添付画像の色を一語で答えてください" -i red.png

返ってきたのが「赤」なので、画像と指示文の両方が届いていたことになります。

長い指示文は、ファイルに書いてから stdin に流す

10月4日に止まった2本は、指示文を stdin から渡す形に変えて通りました。
指示文が長いので、先にファイルへ書いておき、それを流しています。

1本は、パイプで流す形です。

cat prompt.txt | codex exec -m gpt-5.6-luna -C (出力先のフォルダ) --sandbox workspace-write --skip-git-repo-check -i eyecatch.png

もう1本は、最後に - を置き、< prompt.txt でファイルを読ませる形でした。

codex exec -m gpt-5.6-luna -C (出力先のフォルダ) --sandbox workspace-write --skip-git-repo-check -i eyecatch.png - < prompt.txt

< は、ファイルの中身を stdin へ流し込む書き方です。

パイプの形は最後に - がありませんが、それでも通っています。
指示文がコマンドの後ろに無いので、パイプの中身を読んだのだと見ています。

その日のうちに、部下役のAIが読む作業メモを直しました。
元の画像を -i で渡すときは、指示文をパイプで stdin から渡す、という一行です。
書いた形は echo "<指示>" | codex exec ... -i <画像> - です。

描き直しでも、出てきた画像は1734×907でした。
サムネイルの1280×670に合わせて、あとで縮めています。

参考

  • 運営記録 2026-10-04:サムネイルの描き直しで2本が停止・パイプで成功・作業メモを修正
  • 運営記録 2026-11-10:手元での再現と、3通りの渡し方の確認(codex-cli 0.154.0)
  • codex exec --help(codex-cli 0.154.0)の -i, --image と [PROMPT] の説明
  • codex exec の指定一覧(PROMPT と -i):https://learn.chatgpt.com/docs/developer-commands?surface=cli#codex-exec

同じ codex exec は、前の日の10月3日にも、モデルの指定が原因の400で止まっています。
codex execが「not supported when using Codex with a ChatGPT account」の400で止まった。設定ファイルの既定モデルを別アプリが書き換えていた

記事URLをコピーしました