Codex doesn’t run on an iPhone. It runs on your computer, and your phone is a window onto it: you follow what it’s doing, approve the commands it wants to run, and send the next prompt. There are three ways to open that window. They differ most in which Codex they reach: the one in the ChatGPT desktop app, or the codex you started in a terminal.
Updated . We make Hako, the third way.
At a glance
| ChatGPT Remote Control | SSH and tmux | Hako | |
|---|---|---|---|
| Reaches | Codex in the ChatGPT desktop app | Any agent in a terminal | Any agent in herdr |
| On your phone | The ChatGPT app’s Codex view | A terminal | A list of agents, and a terminal |
| Several computers | Pair each one | One host at a time | Every Mac in one list |
| Knows when an agent asks | Approvals in the app | No | Lock Screen questions and answers |
| Needs | ChatGPT with Codex, on desktop and phone | Remote Login and Tailscale | Hako for Mac and Tailscale |
| Available | Now, Mac and Windows hosts | Now | Coming soon |
1. ChatGPT’s Remote Control
The ChatGPT phone app can drive Codex on your computer. The work runs on your Mac, with its projects, files, credentials and tools; your phone sends prompts, approvals and follow-ups through OpenAI’s relay.
- Install the ChatGPT desktop app on your Mac and sign in with an account that has Codex.
- Open Settings → Connections → Control this Mac or PC, choose Set up, and approve remote access.
- Scan the QR code with your iPhone, finish setup in the ChatGPT app, and open Codex there.
It’s the quickest start, and the app shows diffs, terminal output and approvals in a view made for a phone. The catches: it’s set up in the desktop app, and OpenAI’s guide says it can’t be set up from the Codex CLI or IDE extension, so a codex you started in a terminal isn’t what your phone sees. It’s for Codex only, the session goes through OpenAI’s servers, and the desktop app has to stay open on a Mac that’s awake and online. Each phone pairs with each computer separately.
2. SSH, tmux and Tailscale
The do-it-yourself way reaches the Codex CLI itself, and Claude Code, Gemini or anything else that runs in a terminal. tmux keeps Codex running while your phone is away; Tailscale lets your phone reach the Mac from anywhere without opening a port.
- On the Mac, turn on Remote Login in System Settings → General → Sharing.
- Install Tailscale on the Mac and the iPhone, signed in to the same account.
- On the Mac, start Codex inside tmux:
tmux new -s codex, thencodex. - On the iPhone, connect with an SSH app (Termius, Blink Shell, Secure ShellFish or Moshi) to the Mac’s Tailscale name, then run
tmux attach -t codex.
Nothing leaves your network but encrypted SSH, and it costs nothing beyond the apps. But you see one session at a time, nothing tells you when Codex stops to ask for approval, and with several agents on two Macs you spend your time reconnecting and switching windows to find the one that’s waiting. Mosh, where your app supports it, survives the phone changing networks better than plain SSH. SSH into your Mac from iPhone walks through the setup, keys included.
3. Hako
Hako is built for running several agents across several Macs. Your agents run in herdr, an open-source runtime that keeps their terminals alive and marks each one working, blocked or idle. Hako puts every pane on every Mac in one native list on your iPhone, iPad and Mac, sorted by who needs you, with Codex and Claude Code side by side. Running several agents at once covers giving each its own worktree.
- Install Hako for Mac on each Mac. It sets up its bridge and herdr in your user account.
- Turn on Tailscale, and iCloud Keychain so your Macs pair on their own. Without it, pair with a QR code.
- Open Hako on your iPhone. Allow notifications, and when Codex stops to ask, its question shows on your Lock Screen, where you can answer it.
Each pane is a real terminal, over SSH or Mosh, so the Codex CLI looks and behaves as it does on your Mac, with your own config and approval settings. Hako is coming soon to the App Store; it suits you if you run more than one agent and want to see at a glance which one is waiting. See how it works.
Keep your Mac awake
Whichever way you choose, Codex runs on your Mac, so a sleeping Mac stops it and takes it out of reach. The ChatGPT desktop app has a Keep this Mac awake setting for Remote Control while the Mac is plugged in. For a terminal, turn on “Prevent automatic sleeping when the display is off” in System Settings → Energy on a desktop Mac, or start Codex with caffeinate -i codex to hold off idle sleep until it exits.
Questions
Can Codex run on the iPhone itself?
No. The Codex CLI needs macOS, Linux or Windows. Codex in ChatGPT can also run tasks in OpenAI’s cloud, and you can start and follow those from your phone, but they work on a GitHub repository in a cloud environment, not your Mac’s files and tools.
Does this work on an iPad?
SSH with tmux and Hako do. The SSH apps above run on iPad, and Blink Shell is built around long sessions at an iPad keyboard. Hako runs on iPad with iPadOS 17 or later, with the same list of agents, and Handoff carries the pane you have open between your iPhone, iPad and Mac. OpenAI’s Remote Control docs name the ChatGPT app on iOS and Android phones and don’t mention iPad, so check it there before you count on it.
Does this work for Claude Code too?
SSH with tmux and Hako work with any agent that runs in a terminal. Claude Code has its own Remote Control in the Claude app; Claude Code on iPhone compares the ways to reach it.
How do I get a notification when Codex finishes?
Codex’s notify setting runs a program of yours when a turn ends, which can send a push through an app such as ntfy. Agent notifications on iPhone sets it up, beside Hako’s Lock Screen questions.
Is it safe to reach my Mac from my phone?
With Tailscale, your Mac is only reachable from your own devices, and SSH encrypts the session. Hako adds no account and no server that sees your panes: they go straight from your phone to your Mac. See what leaves your devices.