Launch offerUnlock Code Lens, Inline Agent, and Projects for $19 — normally $29.Pro $19 — normally $29
← Blog

How to give Codex a screenshot: CLI, IDE extension and Mac app

Codex reads images in all its forms: the command-line tool, the IDE extension, and the desktop app. How you attach one differs between them.

Codex CLI: the --image flag

Pass a screenshot when you start a task with -i or --image:

codex -i screenshot.png "Explain this error and suggest the smallest fix"

For several images, separate the paths with commas, or repeat the flag:

codex --image before.png,after.png "Compare these states and list the regressions"

Codex accepts common formats, including PNG and JPEG.

Codex CLI: paste into the composer

In an interactive session you can also paste an image into the composer. On macOS that is Control-V, as in Claude Code; Command-V pastes text. If nothing attaches, check that the image is actually on the clipboard: macOS screenshot shortcuts save a file unless you hold Control as well (Control-Shift-Command-4 copies an area).

IDE extension and Codex app: hold Shift while you drag

In the IDE extension, drag an image into the prompt composer while holding Shift. Without Shift, the editor takes the drop and opens the file instead. The Codex app for Mac works the same way: hold Shift while dragging into the composer.

Codex app: Appshots

The Codex app for Mac has a built-in shortcut, Appshots: press Command twice to attach the frontmost window. Codex gets both a screenshot and the window's text, including content scrolled out of view. It is the fastest option when the thing you want to show is a whole window in the Codex app. It does not crop, annotate or redact, and the CLI and IDE extension do not have it.

Let Codex find screenshots in the repo

Each method above hands over one image at a time, in one session. Codex also reads AGENTS.md and the files in your repository. Screenshots saved in the project, with an index describing them, can be found by name later without being attached at all:

look at the screenshots tagged checkout and fix the total
How screenshot context works: capture with a Project active, Bigshot saves the PNG and an index.json entry in .screenshots/, and the agent reads the index and opens the image.
How screenshot context works: capture with a Project active, Bigshot saves the PNG and an index.json entry in .screenshots/, and the agent reads the index and opens the image.

This is what Bigshot's screenshot context does. It saves captures in .screenshots/, keeps the folder out of Git, writes index.json with tags, notes, the source app and on-device OCR text, and adds a short block to AGENTS.md so Codex knows where to look. See Let your agent find your screenshots.

Which to use

You are inAttach with
Codex CLI, starting a taskcodex -i file.png "…"
Codex CLI, mid-sessionControl-V, or type the file's path
IDE extensionShift-drag into the composer
Codex appShift-drag, or Appshots for a whole window
Any of them, over several promptsScreenshots saved in the repo

Before you attach

Bigshot does all three in one editor, and its island under the notch keeps recent captures ready to drag into the Codex composer (with Shift) or a terminal.