Claude Code Remote Control: how to use it, and why it fails to connect
Claude Code Remote Control: three ways to start it, what it needs, each error and its fix, Dispatch compared, and Caprock for the sessions it cannot reach.
Claude Code Remote Control connects a session running on your machine to claude.ai/code or the Claude app, so you can carry on from a phone or another browser. Start it with /remote-control inside a session. It needs a claude.ai login on Pro, Max, Team or Enterprise, talking to api.anthropic.com directly.
How Remote Control connects
Claude keeps running on your machine; the phone or browser is a window into that session. Your files, MCP servers and project configuration stay where they are, so the computer has to stay on and claude has to keep running.
- Outbound only. The local session makes outbound HTTPS requests and never opens an inbound port. It registers with the Anthropic API and polls for work.
- Routed through Anthropic. Messages between the device and your session pass through the Anthropic API over TLS, on several short-lived credentials, each scoped to one purpose.
- The transcript is stored. While connected, your messages, Claude's replies and tool activity are kept on Anthropic's servers. Organizations with Zero Data Retention or the HIPAA configuration cannot enable it.
- An off switch. The
disableRemoteControlsetting turns it off entirely; an IT department can set it in managed settings.
What Remote Control needs
- A claude.ai login on a paid plan. Pro, Max, Team or Enterprise, signed in with
/login. "API keys are not supported", and a long-lived token fromclaude setup-tokenorCLAUDE_CODE_OAUTH_TOKENcannot start it either. - The Anthropic API, directly. Not on Amazon Bedrock, Google Cloud's Agent Platform or Microsoft Foundry; not with
ANTHROPIC_BASE_URLpointing anywhere butapi.anthropic.com; not through an enterprise Claude apps gateway sign-in. - Feature flags on.
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICorDISABLE_GROWTHBOOKmakes it unavailable.DISABLE_TELEMETRYandDO_NOT_TRACKare fine from Claude Code v2.1.283, unless your organization requires Trusted Devices. - An Owner's yes on Team and Enterprise. It is off by default there.
- A trusted folder. Server mode asks
Trust <directory>? [y/N]in a folder you have not trusted. Trust is never saved for your home directory, so run it from a project folder.
How to use Claude Code Remote Control
Three commands, one for each situation:
- 1
Hand the session you are in to another device, history kept
- 2
Start a session you can type into here and remotely
- 3
Server mode: wait for sessions started from the phone
The first time, Claude Code asks you to confirm: Enable Remote Control? (y/n) in server mode, an Enable Remote Control button in a session. In the Claude Desktop app's Code tab and the VS Code extension, type /remote-control in the prompt box; VS Code shows no QR code and takes no name.
While connected, a session shows /rc active, linked to it on claude.ai. Run /remote-control again for the URL, the QR code and a button to disconnect while the local session keeps running.
Server mode flags worth knowing:
--spawn worktreegives each session started from the phone its own git worktree. The default,same-dir, shares the folder, so two sessions can edit the same files. Presswto switch while it runs.--capacity <N>caps concurrent sessions; the default is 32.--permission-mode acceptEditssets the starting mode for its sessions.--name "My Project"titles the session in the list.
Every session, automatically: /config → Enable Remote Control for all sessions, or "remoteControlAtStartup": true in ~/.claude/settings.json. A true in a project's .claude/settings.json is ignored, so a checked-in file cannot turn it on for everyone who opens the repository; a false there turns it off.
Connect from your phone or a browser
- Scan the QR code to open the session in the Claude app. In server mode, press the spacebar to show it.
- Open the session URL in any browser.
- Find it in the list at claude.ai/code, or under Code in the Claude app. A computer icon with a green dot means it is online.
No Claude app yet? /mobile shows a QR code for the app store. From the device you send messages, attach photos and files, answer prompts, change the model or effort, see the diff of your changes and stop a background subagent. Working from the phone itself — commands, push notifications — is in Claude Code on your phone.
Limits and timeouts
| Case | What happens |
|---|---|
| One interactive process | one remote session; server mode runs many |
claude stops | the session is offline until you bring it back |
| Server stopped with Ctrl+C | claude remote-control in the same folder brings its sessions back for about four hours |
| Network down, server mode | gives up after about 10 minutes and exits |
| Network down, interactive | retries until the network returns |
| HTTP 403 after a VPN or network change, interactive | retries for up to three minutes, then disconnects |
| No contact with the server | disconnects after about 30 minutes; run /remote-control |
| Other forwarded dialogs | close after five minutes by default (dialogExpiry) |
tmux or screen so it outlives the connection.Claude Code Remote Control not working: the message and the fix
Run claude doctor first: it names the eligibility check that failed. Then match what Claude Code printed:
- "Remote Control requires a claude.ai subscription" — you are signed out, or another credential wins over your login. If it names
ANTHROPIC_API_KEY,ANTHROPIC_AUTH_TOKENorapiKeyHelper, remove it from your shell or theenvblock of your settings, then runclaude auth loginand choose claude.ai. - "Remote Control requires a full-scope login token" — you are on a
claude setup-tokentoken orCLAUDE_CODE_OAUTH_TOKEN, which can only make model requests. Runclaude auth login. - "Remote Control is only available when using Claude via api.anthropic.com" — Bedrock, Google Cloud, Foundry or a custom
ANTHROPIC_BASE_URL. The message names the variable; unset it and restart the session. - "Remote Control isn't enabled for this account" (before v2.1.239: "Remote Control is not yet enabled for your account") — usually entitlements cached from before a plan change. Run
claude auth logout, thenclaude auth login, and update Claude Code. - "Remote Control requires feature-flag evaluation" — the message names the variable. Unset
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICorDISABLE_GROWTHBOOK; forDISABLE_TELEMETRYorDO_NOT_TRACK, update to v2.1.283 or later. - "Unable to determine your organization for Remote Control eligibility" — a stale account cache. Run
claude auth login. - "Couldn't verify Remote Control eligibility" or "Couldn't verify your organization's policy for remote control" — offline, a VPN not connected yet, or a proxy in the way. Restore the network and run the command again.
- "Remote credentials fetch failed" — run
claude remote-control --verbose. Usually not signed in, or a firewall blocking outbound HTTPS on port 443. - "Remote Control got an unexpected server response" — this version cannot read the reply. Run
claude update, then/remote-control. - "Error: Workspace not trusted" — server mode could not ask whether to trust the folder, because its input or output is piped or the terminal is too small. Run
claude rcin the project from a normal terminal and answery, or runclaudethere once and accept. In your home directory trust is never saved, so start it from a project folder.
Remote Control failed to connect: run /login
Remote Control runs on short-lived credentials renewed from your claude.ai login. When that login expires or is rejected, or you sign out in another terminal, the session keeps running locally and the transcript shows a line such as:
Remote Control disconnected — Claude.ai login expired — run /login, then /remote-control
Run /login, then /remote-control. A message ending "run /login to restore Remote Control" reconnects on its own once you sign in. If you switched account or organization somewhere else, /remote-control starts a new session under the current one; to go back, /login to the old account, then /remote-control. After claude --resume, "Couldn't reconnect to your Remote Control session" may be temporary: run /remote-control again.
Enable Remote Control on Team and Enterprise
An Owner turns on the Remote Control toggle at claude.ai/admin-settings/claude-code. If you still see "Remote Control is disabled by your organization's policy", check in this order:
- It mentions disableRemoteControl: your IT department turned it off on this device in managed settings.
- Your plan is Pro or Max: Claude Code is still signed in under an earlier Team or Enterprise organization.
/statusshows which; runclaude auth logout, thenclaude auth login. - It does not say to contact your admin: a HIPAA configuration. The toggle is greyed out; an Owner can take it up with your Anthropic account team.
- Otherwise: the Owner has not turned it on yet. After they do, an open session fetches the policy about once an hour.
Trusted Devices, in beta at Anthropic, adds a second gate: each phone, browser or desktop app enrolls once after a full sign-in, and a sign-in older than 18 hours needs Face ID, Touch ID, Windows Hello or a passkey. An Owner turns it on under Organization settings → Capabilities → Remote sessions; on Pro and Max you turn on Require trusted devices yourself. "This device is not enrolled" and "session expired for trusted-device check" are both fixed with /login.
Remote Control vs Dispatch, Channels and cloud sessions
Anthropic's ways to work away from the terminal differ in where Claude runs and what starts the work:
- Remote Control steers a session already running on your machine. Use it to keep going on local work from another device.
- Dispatch is a conversation in the Claude Desktop app's Cowork tab that you message from the Claude app. For development work it starts a Code session on your machine, badged Dispatch, and pushes to your phone when it finishes or needs approval. Pro and Max only, not Team or Enterprise. Use it to hand off a new task with little setup.
- Channels push messages from Telegram, Discord, iMessage or your own server into a running CLI session. A research preview; it also works on a Console API key. Use it when Claude should react to chat or CI. More in Claude Code notifications.
- Cloud sessions (Claude Code on the web) run on infrastructure Anthropic manages by default, with nothing running on your machine. Use them for a repo you have not cloned, or several tasks at once.
What Remote Control does not reach: Caprock
Remote Control covers one kind of session: a claude.ai login, talking to api.anthropic.com, that you connected. A session on an API key, Bedrock, Google Cloud's Agent Platform (Vertex AI) or a company gateway has none, and neither does Codex or OpenCode.
Remote Control is Anthropic's free remote for one Claude Code session on a claude.ai plan. Caprock, a free desktop app, keeps the record of every agent on the machine — the sessions it did not start included, how close each subscription is to its limit, each pull request's CI state and what it cost — and the phone is how you carry that record, with no account:
- From anywhere, end to end encrypted. Pair the phone by scanning a QR code; it reaches your machine through a relay that carries only ciphertext, Caprock's or one you run.
- You choose what it may do. It can control sessions, ticked by default when you connect a phone, lets it start sessions and type; untick it and the phone only reads until you press Allow control beside it on the computer.
- Your shell profile's settings. A session Caprock starts gets the environment your login shell sets up, so an API key, Bedrock or Google Cloud's Agent Platform (Vertex AI) setting, or a gateway in
ANTHROPIC_BASE_URL, that your profile exports reaches it, as it reachesclaudein a new terminal; settings in~/.claude/settings.jsonapply as usual. A variable you set by hand in one terminal window does not. - Six agents. Start Claude Code, Codex, OpenCode, Gemini CLI, Grok Build or Hermes Agent, whichever is installed, in any folder under your home directory, type into it, attach a photo, stop it. In Claude Code sessions it started, a permission prompt gets Yes, Claude Code's second option and No as buttons.
- Every session, watched. It reads every Claude Code session on the machine, including ones started in your own terminal, and types only into the ones it started.
- Alerts. Settings → Telegram sends a message through your own bot when a Claude Code session waits for approval or finishes.
Pairing, granting control and the phone screens, step by step: Claude Code on your phone. To type into a session you started in your own terminal on a claude.ai plan, use Remote Control.
Caprock is free and open source, and nothing leaves your machine unless you switch it on. Install Caprock.
Questions people ask
- How do I use Claude Code Remote Control?
- Run /remote-control in a running session, or claude remote-control in your project folder, then scan the QR code or open the URL in the Claude app or at claude.ai/code. It needs a claude.ai login on Pro, Max, Team or Enterprise.
- Why is Claude Code Remote Control not working?
- Common causes: an API key, auth token or ANTHROPIC_BASE_URL taking precedence over your claude.ai login, a stale login, or a Team or Enterprise Owner who has not turned it on. claude doctor names the check that failed.
- Is Claude Code Remote Control secure?
- Your machine makes outbound HTTPS requests only and opens no inbound port; traffic is routed through the Anthropic API over TLS. While connected, the session transcript is stored on Anthropic's servers.
- What is the difference between Claude Code Remote Control and Dispatch?
- Remote Control steers a session already running on your machine. Dispatch takes a task you message from the Claude app and can start a Code session in Claude Desktop for it; it is on Pro and Max only.
- How do I enable Remote Control on a Team or Enterprise plan?
- An Owner turns on the Remote Control toggle at claude.ai/admin-settings/claude-code. It is off by default on both plans.
Sources
- Claude Code docs — Continue local sessions from any device with Remote Control, read 20 October 2026
- Claude Code docs — Error reference (Remote Control login, API endpoint and workspace trust errors), read 20 October 2026
- Claude Code docs — Desktop: Sessions from Dispatch, read 20 October 2026
- Claude Code docs — Channels, read 20 October 2026
- Claude Code docs — Use Claude Code in the cloud, read 20 October 2026
- Caprock README — Open it on your phone: from anywhere, through an encrypted relay; Hear about it on your phone
- Caprock ADR-058 — A phone reaches the machine from anywhere, through a relay that carries only ciphertext
- Caprock ADR-034 — A phone the owner chooses can work on sessions
- Caprock ADR-035 — A permission prompt is answered with a button
- Caprock ADR-036 — Phone alerts through the owner's own Telegram bot
- Caprock source — what a paired phone may read, and what a controller may do
- Caprock source — sessions it starts get your login shell's environment
- Caprock changelog — 0.71.0, your phone as a controller; 0.72.0, prompt buttons, photos, phone alerts; 0.117.0, pairing from anywhere through the relay; 0.133.0, Connect a phone
Try it
The record of every coding agent you run, the sessions it did not start included. Free, open source; nothing leaves your machine.
Notarized by Apple. One file for Apple silicon and Intel, macOS 13 or later.
Or run it yourself:
Paste in Terminal: it installs Caprock and opens it.Or with Homebrew: brew install --cask dspv/tap/caprock-app