← All posts
5 min read

Codex CLI + Mac Screen Capture

Codex CLI speaks MCP over stdio and remote HTTP, and takes image input. Here is how to wire a Mac screen-capture server to it and send annotated regions instead of raw screenshots.

Codex CLI lives in the terminal, which is exactly where it cannot see the thing you are complaining about. Wiring up screen capture fixes that, and the setup is short.

Where Codex stands on MCP

As of August 2026, Codex CLI supports two MCP transports:

  • stdio — Codex launches the server as a local child process and talks to it over stdin/stdout.
  • remote HTTP — Codex connects to a server over HTTP, with optional OAuth or bearer-token authentication.

On a Mac, stdio is the one to start with. The server runs as a local process, there is nothing to host, and nothing leaves the machine.

Image input

Codex CLI supports image input, including inline data URLs and local images. Remote HTTP(S) image inputs return clear, model-visible validation errors when they fail — which is helpful for debugging, but also a hint about which path is more predictable. Local and inline images are the steadier option.

One distinction worth being precise about, because it is easy to blur: what is documented here is image input. That is not the same claim as an MCP tool result rendering an image inline the way VS Code does. If you are relying on a specific behaviour, test it in your setup rather than assuming parity across agents — client behaviour around images varies more than the protocol suggests.

Wiring up a capture server

Screentack's MCP server runs over stdio and ships inside the app, so there is no separate install:

screentack --mcp

Point Codex's MCP configuration at that binary and it gains tools to list windows, capture a specific one, zoom into a region for readable text, and pull text out of a region with on-device OCR.

There is also an HTTP transport for always-on setups where the app and the agent share live state. It needs the app running and a bearer token, so reach for it when you actually want that, not by default.

What to send

The same rule that applies to every agent applies here: a full-screen capture is mostly noise. Your wallpaper, your dock, three windows you were not asking about — all of it competing with the one region that matters.

Capture the window, mark the regions you care about, label them, and let the manifest carry the spatial relationship. The agent gets the wide shot for context and the crops for precision, instead of one large image it has to search.

The token argument behind that is in why AI coding agents burn tokens on visual bugs, and the general workflow across agents is in how to give your AI coding agent visual context.

Give Codex CLI something to look at. Download Screentack — a free 7-day trial, then $29 once.

Frequently asked questions

Does Codex CLI support MCP servers?

Yes. As of August 2026, Codex CLI supports two MCP transports: stdio, where Codex launches the server as a local child process and talks to it over stdin/stdout, and remote HTTP, with optional OAuth or bearer-token authentication.

Can Codex CLI take images?

Yes — image input is supported, including inline data URLs and local images. Remote HTTP(S) image inputs return model-visible validation errors when they fail, so local or inline images are the more predictable path.

Why send region crops instead of a full screenshot?

A full-screen capture makes the model work out which part matters, and a lone zoomed crop throws away the surrounding context. Sending the full screenshot, the labelled crops, and a manifest of where each sits gives both at once.