Codex on macOS, the negative list: what it refuses to do outside the browser.
OpenAI Codex shipped Computer Use for macOS in April 2026. The launch coverage focused on what it can do (drive Slack, Figma, Xcode with a synthetic cursor). The thing buyers actually need to know is what it refuses to touch and where it refuses to run. Below is the complete documented list, sourced directly from OpenAI's Computer Use page, with the engineering reason for each gate and the apps where each gate matters.
Direct answer (verified 2026-05-02)
Codex Computer Use on macOS will not automate terminal apps, will not automate Codex itself, will not authenticate as administrator, and will not approve macOS Privacy and Security permission prompts. Each new app needs explicit user approval before Codex can drive it (with an Always allow opt-in). Screenshots and visible app content are sent to OpenAI as part of processing context, subject to ChatGPT data controls. The feature is geographically unavailable in the European Economic Area, the United Kingdom, and Switzerland at launch. Source: developers.openai.com/codex/app/computer-use.
Why a list, not a tour.
The pages explaining Codex Computer Use right now read like product tours: it works with Slack, it works with Figma, it works with Xcode. That framing is fine for someone deciding whether to install the app. It is not enough for someone trying to design a real workflow on a Mac. The buyer for an agent makes the build-or-buy call based on the negative space, not the highlight reel. If the agent will not click the one button your workflow ends on, the sixteen apps it does click do not matter.
The negative list below is taken from OpenAI's own published limits, not interpretation. Each item links back to the source line. Where a limit has a non-obvious engineering rationale, that goes in the FAQ at the bottom.
“Codex Computer Use cannot automate terminal apps or Codex itself, since automating them could circumvent security controls.”
OpenAI, Codex Computer Use docs, May 2026
The five categories of refusal.
Every documented limit on Codex Computer Use for non-browser apps fits into one of these. Sorted roughly by how often a real Mac workflow trips on each one.
App-class bans
Terminal apps (Terminal.app, iTerm2, Warp, Ghostty, Alacritty, kitty, Hyper) and the Codex app itself are explicitly off-limits. Automating them would let the agent run arbitrary shell or change its own permissions, so the policy is to refuse the click. There is no Always allow override for these.
Geographic block
European Economic Area, United Kingdom, and Switzerland are excluded at launch. The Codex app installs and the chat works; the Computer Use cursor does not move. Affects roughly 460 million people across 30+ countries.
System dialog block
macOS Privacy and Security prompts, app-level permission prompts (camera, microphone, files, calendar), and admin authentication dialogs all stop the agent. It will not click Allow on a permission grant or type the user's password into the OS sudo prompt. By design, so a runaway agent cannot widen its reach.
Per-app approval gate
First touch of any new app pauses the task and asks the user to approve. Always allow opt-in lets you skip future prompts on trusted apps. Editable from Codex settings, Computer Use section.
Data-flow constraint
Screenshots and visible window content travel to OpenAI as processing context. Subject to ChatGPT data controls. A finance app, a CRM with PII, or an open password manager panel all leave the machine for the duration of the task. Different from a local accessibility-API agent, which reads the in-process AX tree as text and never uploads pixels.
What the refusal looks like, concretely.
Three real-world prompts a Mac user might give Codex, and what happens at each gate. The Codex behavior is from the published policy; the right column is what the same prompt looks like through an accessibility-API agent (Fazm) that does not have the same gate.
The approval flow, in five clicks.
From the moment a user kicks off a Computer Use task to the moment the agent's cursor moves on a non-browser app, this is the click path. Every step is a stop point at which the user can deny.
- 1
Install Codex desktop
macOS-only app, EEA/UK/Switzerland blocked at install.
- 2
Grant Screen Recording
System Settings, restart Codex.
- 3
Grant Accessibility
System Settings, no restart needed.
- 4
Approve target app
Per-app, on first touch, with Always allow option.
- 5
Cursor moves
Codex sends screenshots to OpenAI, dispatches clicks locally.
Where Fazm's routing layer sits, in one paragraph.
Fazm is a local Mac agent that picks a different driver per app category, instead of running one screenshot loop for everything. The routing rule lives in plain Swift in the open source repo at Desktop/Sources/Chat/ChatPrompts.swift around line 101: desktop apps (Finder, Mail, Settings, Notes, Terminal) go through mcp__macos-use__* tools that read the macOS accessibility tree as text and dispatch clicks via AXUIElement actions. The browser goes through Playwright, which works inside the user's signed-in Chrome. WhatsApp goes through a native MCP that drives the Catalyst app by accessibility roles. Telegram goes through a Python telethon path that skips the GUI altogether. There is no per-app approval prompt because the single macOS-level Accessibility permission granted at install time covers every app. There is no geographic gate. The model and the screen pixels stay on the machine for the routing layer; only the agent's text turns themselves go out, and only to whichever endpoint the user configured (Anthropic, OpenAI, a local Ollama instance, or any Anthropic-compatible gateway).
That is not a critique of Codex Computer Use as a product. The ban-list and the screenshot-and-cursor approach are coherent choices for an agent designed to ship to consumer ChatGPT users with strong safety guardrails and a single deployable model. It is just a different design point, with different tradeoffs that are visible the moment your workflow needs Terminal, runs in Frankfurt, or touches data you do not want uploaded.
FAQ
Frequently asked questions
Can Codex on macOS open and use Terminal for me?
No. The Codex Computer Use docs are explicit: it cannot automate terminal apps or Codex itself, since automating them could circumvent Codex security policies. That covers Terminal.app, iTerm2, Warp, Ghostty, Alacritty, kitty, Hyper, anything that registers as a terminal-class app. If your task is 'open Terminal and run xcode-select install', Codex will refuse the click. The Codex CLI is the OpenAI-blessed path for shell work, but the CLI runs inside its own Seatbelt sandbox and does not drive other GUI apps. So 'use Codex to operate Terminal' is a path that is closed at both ends.
Why is Codex Computer Use unavailable in the EEA, the UK, and Switzerland?
OpenAI's launch documentation states: 'Computer use is currently available on macOS, except in the European Economic Area, the United Kingdom, and Switzerland at launch.' OpenAI has not published the underlying reasoning publicly, but the geo-fence pattern is consistent with how OpenAI staged ChatGPT memory, voice, and Advanced Data Analysis previously, where new agentic features wait on regional regulatory review. The practical consequence: a Mac user in Berlin, Dublin, London, or Zurich can install the Codex app and use the chat and CLI, but the Computer Use cursor will not move on their machine.
Will Codex approve a macOS Privacy and Security prompt for me?
No. The doc states the feature 'cannot approve security and privacy permission prompts on the computer.' This means: when an app the user is touching pops up the standard macOS dialog asking for camera, microphone, files, contacts, calendar, accessibility, or screen recording access, Codex stops there. It will not move the cursor over Allow. The same applies to admin authentication prompts (the password dialog for sudo-class system changes); Codex will not authenticate as administrator. Both gates exist so a runaway agent cannot widen its own permissions, which is correct security policy but also a real workflow ceiling.
Does Codex need fresh approval every single time it touches a new app?
Once per app per machine, with an opt-out. From the docs: 'During a task, Codex asks for your permission before it can use an app on your computer. You can choose Always allow so Codex can use that app in the future without asking again.' The Always allow list is editable in the Computer Use section of Codex settings. So for a recurring workflow that touches Slack, Notes, and Mail, the friction is three approvals on the first run and zero on subsequent runs. For a one-off workflow that touches an unfamiliar app, you sit through one approval per app in real time.
What happens to my screen content when Codex is driving an app?
It leaves your machine. The OpenAI docs state plainly: 'Screenshots and visible content become part of Codex's processing context and are subject to ChatGPT's data controls.' Codex Computer Use is screenshot-and-cursor: it captures pixels, sends them to OpenAI for the model to plan the next move, and dispatches the click or keystroke locally. That is a fundamentally different data-flow from a local accessibility-API agent, which reads the in-process AX tree and never leaves the machine for tool routing. If you are operating a CRM with customer PII, a finance app with account balances, or a 1Password panel, you are uploading those frames to ChatGPT for the duration of the task.
Can Codex see things in apps that have not yet been saved to disk?
Sometimes, but with a documented gap. The Computer Use page calls this out explicitly: 'Desktop app modifications may not appear in review panels until saved to disk.' Codex's review and rollback tooling is built around file diffs, not in-memory state. If Codex types a paragraph into Notes or Pages and you have not saved, the review panel does not show that change, which means a 'rewind' may leave the typed content in the app. The pragmatic workaround is to ask Codex to save (Cmd-S) before approving any sensitive change.
Codex can drive Slack and Figma. Why not Terminal?
Slack, Figma, Xcode, and the rest are bounded apps. The worst Codex can do is post a wrong message or move a Figma frame. Terminal is unbounded: a single line can rm -rf, exfiltrate data with curl, install a launchd job, or chain into another shell. Letting an agent type into Terminal hands it the keys to the OS. OpenAI's mitigation is to ban it at the agent layer and offer the Codex CLI as the audited alternative, which executes inside a sandbox-exec profile that limits filesystem and network reach. The sandbox-exec approach is itself imperfect (a developer's hands-on writeup at jhartman.pl/posts/macos/2026-02-02-codex-in-the-jail/ documents 'sandbox-exec is too brittle for this use case'), but it is at least introspectable.
How does Fazm handle the things Codex Computer Use refuses?
Fazm uses macOS accessibility APIs to drive non-browser apps directly, without screenshot egress. The tool routing is in Desktop/Sources/Chat/ChatPrompts.swift around line 101 in the open source repo: desktop apps go through `mcp__macos-use__*` tools (Finder, Mail, Settings, Notes, Terminal), the browser goes through Playwright, WhatsApp goes through a native MCP that drives the Catalyst app, and Telegram goes through a Python telethon path that bypasses the GUI entirely. There is no per-app approval prompt because the macOS-level Accessibility permission granted once at install time covers every app. There is no geo-fence; the app runs locally and the model can be Claude, OpenAI, a local LLM via Ollama, or any Anthropic-compatible endpoint. There is no screenshot egress for the routing layer; AX tree dumps are text and stay on the machine. Terminal is a regular target, not a banned one.
Does Codex CLI fill the gap for non-browser app work?
Partly, and only if your work is shell-shaped. The Codex CLI is excellent at file edits, running tests, package installs, and anything you would otherwise do at a prompt. It does not click buttons in Mail, draft a Slack DM in the Slack app, edit a Figma frame, fill a form in Notion, or operate Settings. The split OpenAI ships is: 'use the CLI for code and shell, use the desktop app for GUI apps that have no API or CLI.' If your non-browser workflow is mostly typing and clicking inside GUI apps that the desktop app refuses (Terminal) or you are in a region the desktop app refuses (EEA/UK/Switzerland), neither half of Codex helps you on its own.
Where does this list come from? Can I verify it myself?
Three primary sources, all OpenAI-published as of May 2026: developers.openai.com/codex/app/computer-use is the Computer Use feature page, which contains the geographic exclusion, the terminal/Codex automation ban, the admin and Privacy and Security prompt restrictions, the per-app approval flow, the Always allow opt-out, and the screenshots-into-context disclosure. openai.com/index/introducing-the-codex-app/ is the launch announcement. developers.openai.com/codex/app is the broader app overview that names the platform constraint. Cross-checks: Help Net Security's April 17, 2026 piece 'Codex can now operate between apps, where are the boundaries?' and the LaoZhang AI walkthrough at blog.laozhang.ai/en/posts/codex-computer-use both confirm the same negative list, including the explicit Terminal and Codex bans.
Got a workflow Codex won't touch?
20 minutes. Bring the prompt that hits the wall. We'll show you what an accessibility-API agent does instead, on your real apps.
Related guides
Computer-use accessibility limits on macOS, by app category
Where accessibility-API agents fall short by app class (Electron, Qt, OpenGL canvases) and the macOS 26 cache states that look like permission failures but are not.
Accessibility tree limits beyond the browser
Four boundaries a browser-AX developer crosses at once when moving to the desktop: API surface, trust model, addressing model, error codes.
Accessibility API vs screenshot agents
The audit-trail gap, the latency gap, and the data-flow gap between accessibility-API and screenshot-cursor agents on macOS.