Claude Code Remote Control: What It Does, Its Limits, and Alternatives

Remote Control lets you drive a Claude Code session on your own machine from the Claude app or a browser. How to set it up, what it can't do, and when another tool fits better.

By the AlertMCP team9 min read

Claude Code Remote Control connects the Claude app for iOS and Android, or claude.ai/code in a browser, to a Claude Code session that keeps running on your own computer. From your phone you can read the conversation, send messages, answer permission prompts and get push notifications, while code execution and file access stay on your machine. It's available on Pro, Max, Team and Enterprise plans, and not with API keys.

Anthropic shipped it as a research preview for Max users in late February 2026 (Help Net Security), added phone push in April (week 16 release notes), and has kept extending it since. Many launch-week guides are now out of date, so everything below comes from the current Remote Control docs.

What Remote Control is, and isn't

Remote Control is a window into a local session. Your filesystem, MCP servers, tools and project configuration stay available. The conversation, including subagent progress, stays in sync across every connected device, so you can type from the terminal, a browser and your phone interchangeably. You can attach photos and files from your phone, and Claude Code downloads them to your machine.

It is not:

  • A cloud runner. Your computer has to stay on and the claude process has to keep running. If the laptop sleeps or the network drops, Claude Code reconnects when the machine is back, but nothing runs in between.
  • A separate app. Remote Control sessions show up in the Code tab of the regular Claude app, next to cloud sessions.
  • A full terminal. Commands that only run in the terminal interface, such as /plugin and /resume, don't work from your phone. Text-output commands such as /compact, /clear and /usage do, and /model and /effort work when you pass the value as an argument.

Who can use it

The requirements are stricter than most guides mention:

  • Plans. Pro, Max, Team and Enterprise. On Team and Enterprise, an Owner must first turn on the Remote Control toggle in the Claude Code admin settings.
  • Sign-in. You log in through claude.ai with /login. API keys are not supported.
  • Provider. It's unavailable on Amazon Bedrock, Google Cloud's Agent Platform (formerly Vertex AI) and Microsoft Foundry. It's also unavailable when ANTHROPIC_BASE_URL points anywhere other than api.anthropic.com, such as an LLM gateway or proxy, or when you sign in through an enterprise Claude apps gateway.
  • Privacy settings. Setting CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC or DISABLE_GROWTHBOOK makes Remote Control unavailable. Organizations with Zero Data Retention or the HIPAA configuration can't enable it.

How to start a session

The CLI has two commands, plus a slash command for a session that's already running:

# Server mode: waits for connections and prints a session URL (press space for a QR code)
claude remote-control

# A normal interactive session that you can also drive remotely
claude --remote-control "Billing refactor"

Inside a running session, /remote-control (or /rc) connects the current conversation with its history. The same slash command works in the VS Code extension and in the Code tab of the Desktop app. The first time, Claude Code asks you to confirm.

To connect, open the session URL in any browser, scan the QR code to open it in the Claude app, or open the app, tap Code and pick the session from the list. Remote Control sessions show a computer icon with a green dot when they're online. If you don't have the app yet, /mobile prints a QR code that opens the right app store.

Server mode has a few flags worth knowing:

  • --name "My Project" sets the session title shown on your phone.
  • --spawn worktree gives each new session its own git worktree instead of sharing one directory.
  • --capacity <N> caps concurrent sessions. The default is 32.
  • --permission-mode acceptEdits sets the starting permission mode for the server's sessions.

To connect every interactive session automatically, set Enable Remote Control for all sessions in /config, or put "remoteControlAtStartup": true in ~/.claude/settings.json. A project's committed settings file can turn auto-connect off, but it can't turn it on for everyone who opens the repo.

Push notifications and approvals

With Remote Control connected, Claude can push to your phone. Install the Claude app, sign in with the same account and organization you use in the terminal, allow notifications, then run /config and turn on one or both toggles (mobile push docs):

  • Push when Claude decides (agentPushNotifEnabled). Claude pushes when it judges it worthwhile, typically when a long task finishes. You can also ask for one in your prompt, for example "notify me when the tests finish".
  • Push when actions required (inputNeededNotifEnabled). You get a push whenever a permission prompt or question is waiting.

Both are off by default. Beyond these two toggles there's no per-event configuration.

This is the feature's strongest point. Tap the push and you answer Claude Code's own permission prompt from your phone. Permission prompts and AskUserQuestion questions stay open until someone answers. From the app you can switch between Manual, Accept edits, Plan and Auto, but you can't select Bypass permissions (Claude Code on mobile).

Claude Code skips pushes while you're typing in or focused on the connected terminal. To skip them whenever you're at the machine, even in another window, set CLAUDE_CLIENT_PRESENCE_FILE to a marker file that a screen-lock listener deletes when the screen locks and recreates when you're back. Pushes are skipped while the file exists.

If pushes don't arrive, check three things. Open the Claude app if /config says No mobile registered, so it refreshes its push token. On iOS, Focus modes and notification summaries can hold pushes back. On Android, exempt the Claude app from battery optimization.

Limits worth knowing

  • One remote session per interactive process. Use server mode if you want several sessions from one process.
  • The process has to keep running. Close the terminal, or quit VS Code or the Desktop app, and the session goes offline. On a remote box, start claude inside tmux or screen so it survives an SSH disconnect.
  • Long network outages. Server mode gives up after roughly 10 minutes without a network and exits. An interactive session keeps retrying and reconnects when the network returns.
  • A resume window. After you stop claude remote-control, running it again in the same directory brings its sessions back for about four hours.
  • Other dialogs expire. Permission prompts wait indefinitely, but other forwarded dialogs, such as the model choice after a safety refusal, close after five minutes by default (dialogExpiry).
  • Your account only. A session appears in your own account's Claude apps. There's no built-in way to route a decision to a teammate.

Security and data

Your machine makes outbound HTTPS requests only and never opens an inbound port. Traffic goes through the Anthropic API over TLS, using several short-lived credentials that are each scoped to one purpose.

While Remote Control is connected, the session transcript, meaning your messages, Claude's responses and tool activity, is stored on Anthropic's servers. Execution and file access stay on your machine.

Trusted Devices, currently in beta, can require an enrolled device and a sign-in no older than 18 hours, refreshed with Face ID, Touch ID, Windows Hello or a passkey. Team and Enterprise Owners turn it on for the organization, and Pro and Max users can turn it on for themselves. To switch Remote Control off entirely, set disableRemoteControl.

Remote Control vs other Anthropic options

Anthropic now has several ways to work away from the terminal. They differ in where Claude runs and what your phone can do.

Option Where Claude runs What you do from your phone Who can use it
Remote Control Your machine (CLI, Desktop app, VS Code) Follow, message, answer permission prompts, get pushes Pro, Max, Team, Enterprise; no API keys
Cloud sessions Anthropic-managed cloud by default Start a task on a GitHub repo, check progress, answer questions; runs with your laptop closed Pro, Max, Team; Enterprise with premium or Chat + Claude Code seats
Dispatch Your machine, through the Desktop app Message a task; get a push when the Code session it starts finishes or needs approval Pro and Max only
Channels (preview) Your machine (CLI) Chat through Telegram, Discord or iMessage; relay permission prompts if the channel supports it claude.ai or Console API key; not Bedrock, Agent Platform or Foundry
Agent view (preview) Your machine Nothing; it notifies in the terminal when background sessions need input or finish Claude Code CLI
Hooks Your machine Whatever the hook sends: a desktop popup, ntfy, AlertMCP Any Claude Code setup

Rule of thumb: Remote Control for steering work you started at your desk, cloud sessions for work that should keep going with the laptop shut, and Dispatch for handing off a task in a sentence.

When something else fits better

Remote Control is the right tool for steering a Claude Code session from your phone. It's a weaker fit in these cases:

  • You use an API key, a cloud provider or a gateway. Remote Control is off the table. Channels accept a Console API key and can relay permission prompts, though they don't work on Bedrock, Agent Platform or Foundry. Hooks work with any setup: a Notification hook can forward "Claude needs you" to ntfy, Pushover or AlertMCP (hook setup guide).
  • You run more than Claude Code. Native phone clients are per vendor: the Cursor iOS app for Cursor and Codex in the ChatGPT app. If you want one inbox across Claude Code, Cursor, Codex and Gemini CLI, an MCP server is the common layer (remote MCP setup per client).
  • A decision needs a deadline. A permission prompt waits until someone answers, which is right for permissions. For "deploy now?" you may want a defined outcome when nobody replies.
  • Decisions belong to a team. Remote Control sessions live in your own account, so routing a question to whoever's on call needs something else.
  • You want filtering. Two on/off toggles, plus whatever your phone's focus settings do. There are no priorities, topics or quiet hours.

That's where an agent-initiated approach like AlertMCP fits, and it's what we build. The agent calls ask with two to four buttons, safest option first, and waits with get_answer. Each workspace sets a maximum response time between 5 minutes and 24 hours. On timeout, the agent is told nobody answered, continues with the safest option, or the question escalates to team admins, whichever you chose. Alerts carry priorities and topics with quiet hours, and they reach Android, iOS (TestFlight beta), macOS, Windows, Linux and the web. Because AlertMCP is an MCP server, it doesn't care whether Claude Code bills through a subscription, an API key or Bedrock.

The trade-off is direct, so here it is plainly: AlertMCP does not answer Claude Code's permission prompts. Remote Control does. AlertMCP only carries the questions the agent chooses to ask, because your CLAUDE.md or its own judgment tells it to. If Claude stops on a Bash approval, no MCP server can tap "Yes" for you.

Community projects fill other gaps. claude-remote-approver, for example, pairs a PermissionRequest hook with ntfy so you can answer Claude Code's own prompts without Remote Control. Tools like that are unaudited, so read the code before you give them approval power. Pushary and other MCP servers cover agent-initiated asks, much as AlertMCP does.

A setup that uses both

The two approaches cover different moments, so they combine well. Here's a setup for a Pro or Max user who also runs Cursor or Codex:

  1. Turn on Remote Control auto-connect and Push when actions required. Claude Code's permission prompts reach your phone, and you answer them in the Claude app.
  2. Add an MCP ask server and a CLAUDE.md line for the decisions the agent should raise itself: migrations, deploys, anything that deletes data. Use the same server in your other agents.
  3. Set CLAUDE_CLIENT_PRESENCE_FILE so nothing buzzes while you're at your desk. If you also run notification hooks, skip them while CLAUDE_CODE_BRIDGE_SESSION_ID is set so you don't get two pushes for one event.

Which decisions deserve a question at all is a policy call, not a tooling one. Our guide to human-in-the-loop AI agents covers how to draw that line.

Frequently asked questions

What is Claude Code Remote Control?
A Claude Code feature that connects the Claude app for iOS and Android, or claude.ai/code in a browser, to a Claude Code session running on your own computer. You can follow the session, send messages and answer permission prompts from another device while code still runs locally.
Which plans include Claude Code Remote Control?
Pro, Max, Team and Enterprise. API keys are not supported, and it doesn't work on Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry or through a custom API base URL. On Team and Enterprise, an Owner has to turn it on in the Claude Code admin settings first.
Does Remote Control keep working if my laptop sleeps?
The session pauses. Your computer has to stay on and the claude process has to keep running. If the laptop sleeps or the network drops, Claude Code reconnects when the machine comes back online. For work that continues with your laptop closed, use cloud sessions instead.
Can I approve Claude Code permission prompts from my phone?
Yes. With Remote Control connected, turn on Push when actions required in /config. You get a push when a permission prompt or question is waiting, and you answer it in the Claude app. Permission prompts stay open until someone answers them.
Is there an alternative for API-key or Bedrock users?
Remote Control isn't available there. Hooks work with any setup and can forward Claude Code's notifications to a push service. Channels work with a Console API key. An MCP server with ask and wait tools works across Claude Code, Cursor, Codex and other clients, but it only carries questions the agent chooses to ask, not Claude Code's own permission prompts.
by PostMCP AI