OpenAI's docs give two ways to show Codex a picture: pass it with codex --image when you start, or paste it into the interactive composer. Paste is the one that breaks, and the reason is usually the terminal, not Codex. Here is what works on each setup, checked against the docs and open issues on the Codex repo.
The fix that always works: --image
- Save the screenshot as a PNG. On a Mac, Cmd+Shift+4 saves a file to your desktop.
- Move it into your project folder, so the path is short.
- Start Codex with the picture and your note:
codex --image screenshots/cart.png "On /cart the total stays at $20 when I change the quantity to 3. Expected: $60."No clipboard is involved, so none of the paste problems below can stop it.
macOS
- Use Ctrl+V, not Cmd+V. Terminals send text on Cmd+V, so the picture never arrives. In the Codex issues about this, Ctrl+V is the key that works.
- Copy the screenshot, don't just save it. Cmd+Ctrl+Shift+4 puts it on the clipboard. Plain Cmd+Shift+4 only saves a file.
- Look for the chip. When it works, an
[Image #1]chip shows in the composer before you send. No chip means no picture.
Linux
- On Wayland, Ctrl+V may do nothing. An open issue reports this with kitty and Alacritty, with no error shown. Reporters say dragging the file into the terminal works.
- Check your terminal config. In the same issue, one person's Alacritty key settings were the cause.
- Use
--imageif neither works.
The path trick
Paste or type the full path of an image file into the composer. Codex turns a path to an existing image into an [Image #1] attachment, so you get the picture without the clipboard. If you wanted the path as plain text, put a word in front of it.
Skip the paste step with Darnly
Every fix above ends with a file Codex can read. Darnly makes that file for you. It's a free Chrome extension, and a free Mac app for things outside the browser.
Press Option+Shift+B (Windows is coming soon), click the broken part, and type what you expected. With your project folder linked, Darnly saves a PNG with the broken part boxed in red into .darnly/inbox/, next to a short report with the element, the page address and recent errors. Then tell Codex "fix my bugs". It reads the files from the folder. No clipboard, no key to remember.
For what to write next to the picture, see how to give Codex a screenshot of a bug. Using Claude Code or Cursor? See screenshot won't paste into Claude Code or Cursor.