---
title: "Codex CLI + Mac Screen Capture"
description: "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."
date: 2026-07-30
updated: 2026-08-09
canonical: https://screentack.com/blog/codex-cli-mac-screen-capture
---

# Codex CLI + Mac Screen Capture

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](/blog/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](/blog/give-your-ai-coding-agent-visual-context).

> Give Codex CLI something to look at. [Download Screentack](/#waitlist) — a free 7-day trial, then $29 once.
