Claude Code from your phone, and where it still breaks
Short answer: there is an official way, it is called Remote Control, and for most people it is the right one. It connects the Claude app on your phone to a Claude Code session running on your own machine — your code, your filesystem, your terminal.
The longer answer is that it has some sharp edges people hit within the first hour, there are four other official routes that suit different situations, and SSH plus tmux is still better for one specific thing. That's what the rest of this is.
On this page
Remote Control — the direct answer
From Anthropic's docs:
"Remote Control connects claude.ai/code or the Claude app for iOS and Android to a Claude Code session running on your machine."
The important part is where the work happens:
"When you start a Remote Control session on your machine, Claude keeps running locally the entire time, so your code execution and filesystem access stay on your machine … The web and mobile interfaces are a window into that local session."
There are four ways to start one.
# server mode — stays resident, prints a session URL,
# press space for a QR code
claude remote-control
# a normal interactive session that is also exposed remotely
claude --remote-control # or --rc
Inside a session already in progress, /remote-control (or /rc) keeps your conversation history. The VS Code extension has the same command. To make every session remote-capable, /config → Enable Remote Control for all sessions.
Useful flags on server mode: --name, --continue, --session-id, --spawn <same-dir|worktree|session>, --capacity <N> (default 32), --sandbox.
On the network side this is better than most self-hosted setups: the local session "makes outbound HTTPS requests only and never opens inbound ports on your machine." No port forwarding, no exposing SSH. The trade is that while connected, the session transcript — your messages, Claude's replies, tool activity — is stored on Anthropic's servers. Organisations on zero data retention can't use it at all.
It is not the same as Claude Code on the web
These get conflated constantly and they are opposites.
| Remote Control | Claude Code on the web | |
|---|---|---|
| Where code runs | Your machine | An Anthropic-managed VM |
| Where code comes from | Your working directory | Cloned from GitHub |
| Machine must be on | Yes | No |
| Status | Available on Pro/Max | Research preview |
The GitHub detail catches people out, and the docs say it plainly:
"The session clones your current directory's GitHub remote at your current branch, so push first if you have local commits, since the VM clones from GitHub rather than your machine."
There is an escape hatch — running claude --cloud in a repo with no GitHub remote bundles and uploads your local repository. It needs at least one commit, must be under 100 MB, and does not include untracked files.
Handoff between the two is one-way. claude --teleport (or /tp) pulls a cloud session down into your terminal; you cannot push a terminal session up to the web from the CLI. Only the desktop app can do that, and only with a clean working tree.
Where it breaks
These are user reports from Anthropic's issue tracker, with reaction counts, as of July 2026. Several have partial fixes in the changelog and the issues are still open — check them before assuming any one still bites.
| Issue | 👍 | What happens |
|---|---|---|
| #29006 | 154 | Sessions started from the desktop app can't enable Remote Control at all |
| #28351 | 129 | Slash commands don't work remotely — no /clear, no /compact |
| #34255 | 99 | Reconnection doesn't recover on its own. "The only fix is to physically walk to the terminal" |
| #29214 | 80 | Permission prompts on every edit even with --dangerously-skip-permissions |
| #32982 | 74 | Session dies after roughly 20 minutes idle. The phone shows "Failed to send message" while the terminal still says "Remote Control active" |
That last one is worth reading in the reporter's words, because it names the problem precisely: "This affects every RC user who steps away from their keyboard — the core use case."
Simon Willison, writing in February 2026, summed it up as "a little bit janky right now" — he hit an "is not enabled for your account, contact your administrator" error on his own personal account, then a run of API 500s. On Hacker News the top comment called it "an extremely clunky and buggy prerelease" and listed the things that stick: you press stop and Claude keeps going, the UI disconnects intermittently, one session at a time.
Some of the limits are simply documented behaviour rather than bugs, and those won't be fixed:
- The local process must keep running. Close the terminal and the session ends.
- If the machine is awake but offline for more than about 10 minutes, the session times out and the process exits.
- One remote session per interactive process (server mode is the exception).
/pluginand/resumeare local-only.- You cannot pick Bypass permissions from mobile — Manual, Accept edits and Plan only.
- Ultraplan disconnects Remote Control, because both want the same interface.
tmux or screen." If you were wondering whether the terminal-multiplexer era is over — it isn't.Things that silently disable it
This is the section that saves an evening. Remote Control will simply not work, often without a clear error, if any of these are true:
- You authenticated with an API key. Remote Control requires a claude.ai account login. So do the web, mobile, desktop app, Routines and Slack.
- You are on Bedrock, Vertex or Microsoft Foundry. Cloud sessions and Remote Control are both unavailable.
ANTHROPIC_BASE_URLpoints anywhere other thanapi.anthropic.com— an LLM gateway or proxy disables it.- Any of
DISABLE_TELEMETRY,DO_NOT_TRACK,CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICorDISABLE_GROWTHBOOKis set. One is enough. Remote Control depends on feature-flag evaluation. - A long-lived token from
claude setup-token/CLAUDE_CODE_OAUTH_TOKEN— it needs a full-scope login token. - You're on Team or Enterprise — an admin has to enable it. Dispatch isn't available on those plans at all.
One more that surprises people: the web shares your account's rate limits with everything else. There's no separate compute charge for the cloud VM, but parallel cloud tasks eat your allowance proportionally.
The other four official routes
Remote Control isn't the only one, and for "I'm away and want something to happen" the others are often better.
| Route | How you trigger it | Where Claude runs |
|---|---|---|
| Dispatch | Message a task in the Claude mobile app | Your machine, via the desktop app |
| Channels | Telegram, Discord or iMessage | Your machine (CLI) |
| Slack | @Claude in a channel | Anthropic cloud |
| Routines | A schedule | Cloud, desktop or CLI |
Channels is the closest thing to "text my agent" and it is a research preview. It needs Bun, and it has one limitation that decides whether it's useful to you: "Events only arrive while the session is open, so for an always-on setup you run Claude in a background process or persistent terminal." Also, if Claude hits a permission prompt while you're away, the session pauses until you answer — only channels that declare a permission-relay capability can forward that prompt to your phone.
Routines (cloud) is the only one of these that doesn't need your machine powered on, at the cost of running against a fresh clone rather than your working directory. Minimum interval is one hour. Desktop-scheduled tasks go down to a minute but need the machine awake.
When SSH and tmux is still better
Remote Control attaches to a session that is already running. That leaves a gap, and it's the reason people keep the old setup around: you cannot start something new from your phone, and you cannot cd into a different project. A shell can do both.
The stack the community has converged on is three layers, and the shape is the same as Remote Control's — your computer does the work, the phone is a viewport:
- Tailscale (or WireGuard) so you can reach your machine without port forwarding or exposing SSH to the internet.
- An SSH client — on iOS, Blink Shell (native mosh, better on-screen keyboard) or Termius (friendlier setup). On Android, Termux or Termius.
- tmux, so the session survives your phone locking, the network switching, or you closing the app.
Add mosh if you move between Wi-Fi and cellular — it survives the switch in a way plain SSH doesn't.
Two details most tutorials skip:
# tmux tuned for a touchscreen
set -g mouse on
set -g status off
bind -n PageUp copy-mode -eu # Termius sends PageUp on two-finger swipe
And an authentication trick: start the session locally, at your desk, then attach from the phone. Because Claude Code authenticated while you were physically there, you skip re-authentication (and on macOS, keychain unlocking) entirely.
# at your desk
tmux new -s cc
claude
# later, from the phone
tmux attach -t cc
Being honest about the downside, since the people who use this setup are the loudest about it: typing into a terminal with your thumbs is genuinely unpleasant. Reported problems include iOS voice-to-text not reaching stdin in Termius, no swipe or autocorrect, and one commenter's summary — "terrible UX. Very low bandwidth." Another put the whole category in perspective: "We've re-invented GNU screen in the most inefficient way imaginable."
Where we fit, briefly
We build UFO, so treat this paragraph accordingly — and it is deliberately short, because for the question this page answers, Remote Control is the right tool and it is free. If what you want is one Claude Code session, driven from your phone, stop here and use it.
UFO is a different shape rather than a better version of that. It's a team chat where AI agents are members of channels alongside people: several agents on several models in one room, each running on a machine you've paired, with task cards for work that outlives a session and human-only channels the agents can't see. The reason it exists is the thing that starts mattering after the first session — you end up wanting more than one agent, and other people wanting to see what they did.
It's hosted, so you give up the thing Remote Control does well: nothing of ours needs to be trusted with your session if you just use Anthropic's.
Sources
Official behaviour, commands and limitations are from Anthropic's documentation, read 2026-07-31. Complaints are linked to their original issues and dated — the project moves fast, and several of these have partial fixes in the changelog while the issues remain open.
- code.claude.com/docs/en/remote-control
- code.claude.com/docs/en/platforms
- code.claude.com/docs/en/claude-code-on-the-web
- code.claude.com/docs/en/mobile
- code.claude.com/docs/en/channels
- code.claude.com/docs/en/feature-availability
- Simon Willison on Remote Control
- Hacker News discussion
Not affiliated with Anthropic. If something here is wrong or has gone stale, tell us and we'll fix it.