What you can do with Claude Code from a phone
There is no Claude Code that runs on iOS. It runs on your Mac, a Linux server or a cloud machine, and the phone connects to it. From the phone you usually want one of three things:
- Know when it stops for you: a permission prompt, a question, a plan to approve, or the end of a task.
- Answer it: Allow or Deny a command, pick an option, or send the next instruction.
- Start new work while you are away from the desk.
Option 1: Remote Control in the Claude app
Remote Control is Anthropic's own way to drive a local Claude Code session from the Claude app or from claude.ai/code. Claude keeps running on your machine with your files, tools and MCP servers; the phone is a window into that session. See Anthropic's Remote Control and Claude Code on mobile.
What you need
- A Pro, Max, Team or Enterprise plan, signed in with
/login. API keys, Amazon Bedrock, Google Cloud, Microsoft Foundry and gateways set throughANTHROPIC_BASE_URLare not supported. On Team and Enterprise, an Owner turns it on in the Claude Code admin settings first. - The Claude app on your iPhone, signed in to the same account.
/mobilein Claude Code shows a QR code for the App Store page.
Set it up
- Start a session with Remote Control on, in your project folder:
In a session that is already running, typecd ~/Developer/my-app claude --remote-control "my-app"/remote-control(or/rc) instead. It keeps the conversation so far. - On your iPhone, open the Claude app, tap Code and pick the session. Or run
/remote-controlagain in the terminal to show a QR code and scan it. - Turn on pushes: run
/configand enable Push when actions required for permission prompts and questions, and Push when Claude decides for finished tasks.
Server mode, claude remote-control without the dashes, serves several sessions from one terminal and shows a QR code when you press the space bar. Enable Remote Control for all sessions in /config makes every interactive session reachable.
From the phone you can send messages, answer permission prompts and questions (they stay open until you do), attach photos and files, and see a diff of your changes. Some commands, such as /plugin and /resume, only work in the terminal, and Bypass permissions mode is not offered.
The trade-offs
- The computer has to stay on and the
claudeprocess has to keep running. If your laptop sleeps, the session reconnects when it wakes, but no work happens in between. - Each session is its own entry in the app, so with five sessions you open each one to see which is waiting, unless a push tells you.
- It covers Claude Code only.
- While connected, the transcript is stored on Anthropic's servers to keep devices in sync. Your machine makes outbound HTTPS requests only.
If your computer will be off, use Anthropic's cloud sessions instead: from the same Code tab, pick a GitHub repository and branch and describe the task, and it runs on Anthropic's infrastructure.
Using Codex too? OpenAI's equivalent pairs the ChatGPT phone app with the ChatGPT desktop app on your Mac or PC: Settings → Connections → Control this Mac or PC, then scan the QR code. You can start and steer Codex tasks and approve commands. Setup starts in the desktop app, not the Codex CLI. See OpenAI's remote connections docs.
Option 2: push alerts with a hook
If you mainly want to know when to walk back to your desk, a Claude Code hook can send a push to your phone. It works on any plan, including API keys, and on any machine with curl. It is one-way: you still answer at the keyboard or over SSH.
With ntfy
ntfy is free and needs no account. Install the ntfy app on your iPhone and subscribe to a topic name that is hard to guess, because anyone who knows the topic can read it. openssl rand -hex 12 makes a good one. Save this as ~/.claude/hooks/phone.sh and run chmod +x on it. It needs jq.
#!/bin/sh
# Push Claude Code events to your phone with ntfy.
topic="claude-3f9a1c7e5b2d04a8" # your own topic
input=$(cat)
msg=$(printf '%s' "$input" | jq -r '.message // "Finished"')
dir=$(basename "$(printf '%s' "$input" | jq -r '.cwd // "."')")
curl -s -H "Title: Claude Code: $dir" -d "$msg" "https://ntfy.sh/$topic" >/dev/null
Register it in ~/.claude/settings.json for the Notification event, which fires on permission requests and idle prompts, and the Stop event, which fires when Claude finishes:
{
"hooks": {
"Notification": [
{ "matcher": "", "hooks": [ { "type": "command", "command": "~/.claude/hooks/phone.sh" } ] }
],
"Stop": [
{ "matcher": "", "hooks": [ { "type": "command", "command": "~/.claude/hooks/phone.sh" } ] }
]
}
}
Start a new session so the hooks load. For pushes on permission requests only, set the Notification matcher to "permission_prompt" and drop the Stop entry.
With Pushover
Pushover is a paid app with a simple API. Replace the last line of the script with:
curl -s https://api.pushover.net/1/messages.json \
--form-string "token=YOUR_APP_TOKEN" \
--form-string "user=YOUR_USER_KEY" \
--form-string "title=Claude Code: $dir" \
--form-string "message=$msg" >/dev/null
The same two hook events drive desktop banners too. The Claude Code notifications on Mac guide has that version.
Chat apps through Channels
Anthropic's Channels, a research preview, connect a running session to Telegram, Discord or iMessage, so you can message Claude from your phone and get the reply in the same chat. Channels with permission relay can forward Allow and Deny prompts too.
Option 3: open-source phone clients (Happy, Happier)
Community projects wrap the CLI on your computer and mirror the session to a phone app. Both of these are MIT-licensed and have iOS and Android apps in the stores:
- Happy: install with
npm install -g happy, then starthappy claude(orhappy codex) instead ofclaude. It says traffic between your devices is end-to-end encrypted. - Happier: lists built-in support for Claude Code, Codex, OpenCode, Cursor, Gemini, Copilot, Pi, Grok and others.
The appeal is one app for more than one CLI. The cost is that you start each agent through their wrapper and trust a third party's relay and app with your sessions, so read their code and docs first.
Option 4: SSH and tmux from your phone
The oldest route still works for every CLI. Run your agents inside tmux on the Mac, then attach from an SSH app on the iPhone such as Blink Shell or Termius.
- On the Mac, turn on System Settings → General → Sharing → Remote Login.
- Install tmux (
brew install tmux) and start your agents inside it:tmux new -s agents # run claude here # Ctrl-b c opens another window, Ctrl-b d detaches - From the phone, connect and attach:
ssh you@your-mac.local tmux attach -t agents
your-mac.local works on the same Wi-Fi. Away from home, use a private route such as a VPN like Tailscale rather than exposing SSH to the internet. You get full control with any CLI and no third party, at the cost of a desktop terminal on a phone keyboard. Add a push hook from Option 2 so you know which window is waiting.
Option 5: Cadence's iPhone app (beta)
Cadence is a free Mac app that puts every coding agent in one Inbox: Claude Code (hosted natively), Codex, Gemini and other CLIs in herdr terminals, and, since 0.5.7, agents on your Linux servers. Its iPhone app takes that Inbox with you. It is in a private TestFlight beta (version 0.4.0); to ask for an invite, join the iPhone waitlist. What the beta does:
- Home opens on what needs you: questions, plan approvals and Allow/Deny requests from every agent, in one list.
- One-tap answers with a two-second undo, the same take-back the Mac Inbox has.
- Talk from Siri, Shortcuts, Control Center, the Action Button and widgets. Cadence sends your request to the agent already on that work, or starts one, like double-tapping ⌥ on the Mac (see the voice control guide).
- Pairing by QR code from ⋯ → Take Cadence with you… on the Mac toolbar, with one key per phone. The Mac lists every paired phone and Remove signs one out at once; Settings → Unpair on the phone does the same.
- End-to-end encryption. On the same Wi-Fi the phone talks to your Mac directly; elsewhere through a relay that only passes data encrypted with AES-256-GCM. Your Mac dials out and opens no ports.
The limits, plainly: the app is invite-only for now, it needs Cadence on an Apple Silicon Mac with macOS 13 or later, and the Mac has to be awake, because the agents run there. Testers can try a preview of Continue in the cloud, which moves a Claude Code agent to a private cloud sandbox while the Mac sleeps; it is off for new installs. Claude Code you start yourself can come along too: with Settings → Agents → Your own terminals on, claude typed in any terminal runs through Cadence and reaches the phone.
Which one to use
| Option | Answer prompts | Other CLIs | What you need | Status |
|---|---|---|---|---|
| Remote Control | Yes | No (Codex has its own) | Pro, Max, Team or Enterprise; the Claude app | Available |
| Push hook | No, alerts only | Via each CLI's own notify setting | ntfy or Pushover; a script | Available |
| Happy, Happier | Yes | Yes | Their CLI wrapper and app | Available, third party |
| SSH + tmux | Yes, in the terminal | Yes | An SSH app and a private route home | Available |
| Cadence | Yes, one list for every agent | Yes, through herdr | Cadence on a Mac; a TestFlight invite | Private beta |
For one Claude Code session, Remote Control is the simplest. For alerts on any plan, use a push hook. For several agents or CLIs answered from one list, that is the gap Cadence's app fills, once you have an invite.
Keep your Mac awake
Every option except cloud sessions stops when the Mac sleeps. To keep it awake while an agent works, start the session through caffeinate:
caffeinate -i claude --remote-control "my-app"
caffeinate -i blocks idle sleep until the command exits; a MacBook with its lid closed still sleeps unless it is plugged in with an external display. Cadence's toolbar ⋯ menu can keep the Mac awake: on, for an hour, or until no agent is working. For agents that never depend on your laptop, see Run Claude Code on a remote server.
Common questions
Is there a Claude Code app for iPhone?
Not a separate one. Claude Code sessions live in the Code tab of the Claude app for iOS and Android. That covers cloud sessions and Remote Control sessions running on your own computer.
Can I approve Claude Code permission prompts from my phone?
Yes, with Remote Control. Permission prompts and questions show up in the Claude app and stay open until you answer them. Turn on Push when actions required in /config to get a push for each one. Cadence's iPhone beta also puts every waiting agent on its Home screen, including Claude Code's Allow and Deny requests.
Does my computer need to stay on?
For Remote Control, SSH and Cadence, yes, because the agent runs there. Cloud sessions run on Anthropic's infrastructure and keep going with your laptop closed, but they work from a GitHub repository, not your local folder.
Does Remote Control work with an API key?
No. It needs a claude.ai login on a Pro, Max, Team or Enterprise plan. It is also not available through Amazon Bedrock, Google Cloud, Microsoft Foundry, or an ANTHROPIC_BASE_URL that points at a gateway.
Can I control Codex from my iPhone?
Yes. OpenAI's remote connections pair the ChatGPT phone app with the ChatGPT desktop app on your Mac or PC, and setup starts in the desktop app rather than the Codex CLI. Open-source clients like Happy also wrap Codex, and Cadence's iPhone beta shows Codex agents that run in herdr.
How do I get Cadence's iPhone app?
It is in a private TestFlight beta. Join the iPhone waitlist on the Cadence home page to ask for an invite. The Mac app is a free download with no account.