Claude Code Remote Control: Setup, Handoff and Recovery

Claude Code Remote Control

Claude Code Remote Control lets you continue a coding session running on your computer from the Claude mobile app or another browser. You can review progress, steer an edit and respond to permission requests without moving the repository or installing a remote desktop tool. Your computer still runs the commands.

The useful test is whether the same task survives a desk-to-phone-to-desk handoff, not whether a green connection icon appears. This guide uses a deliberately small Node.js change with an enforceable permission prompt, a verifiable test result and separate recovery checks for lost connectivity, laptop sleep and a stopped Claude Code process.

The desk-to-phone-to-desk workflow at a glance

WhereActionEvidence to look for
DesktopCreate a failing two-test fixture and start an interactive remote session.The baseline has one failing test; the phone can see the named session.
PhoneRequest one restricted edit, then approve the test command when prompted.Permission is requested remotely; the tool call actually completes.
DesktopRe-run the tests and inspect the Git diff.Two tests pass and only the intended source file has changed.
Recovery checkInterrupt the connection, sleep the computer or stop the process in separate runs.Record which conversation, permissions and on-disk edits return.

Requirements: a current Claude Code installation, the same Claude account on both devices, a computer that can stay running and a Pro, Max, Team or Enterprise subscription. Team and Enterprise administrators must enable Remote Control. API-key-only sessions do not qualify, nor do sessions routed through Bedrock, Google Cloud’s Agent Platform, Microsoft Foundry or a custom Anthropic API gateway. If you need to choose a subscription first, see our Claude Code pricing guide. Older Max-only setup articles no longer describe the current eligibility.

Check claude --version and use claude update if your installation is outdated. Sign in with claude auth login using your claude.ai account. If Remote Control says you need subscription authentication, check whether ANTHROPIC_API_KEY or another API credential is overriding that login.



Start the right kind of Remote Control session

Two similarly named commands behave differently. Choose before leaving the desk:

claude --remote-control "RC status check"

This starts a normal interactive session that accepts input from your terminal and from the phone. For an existing conversation, type /remote-control or /rc within Claude Code instead. The existing context comes with you. This is the best choice for a genuine handoff back to your keyboard.

claude remote-control --name "RC status check"

This starts server mode, which waits for remote connections rather than acting as an ordinary interactive terminal. It shows a session URL and can display a QR code when you press the spacebar. Server mode also supports multiple sessions and, in a Git repository, separate worktrees. Avoid letting several agents edit the same checkout: the default shared-directory mode can produce conflicting changes.

On your phone, open the Claude app, select Code and find the named computer session. Alternatively, open its session URL in a browser. A green status indicator means it is connected, but it does not prove that an approval or command has been processed. Anthropic details the current modes and reconnect rules in its official Remote Control documentation.

Prepare a small edit that can be proven correct

Use a disposable Git repository and Node.js 22 or later. From a terminal, run:

mkdir claude-rc-check
cd claude-rc-check
git init

Create src, test and .claude folders inside this directory. Save the following as src/status.mjs:

export function statusLabel(value) {
  return value;
}

Create test/status.test.mjs with these two tests:

import test from 'node:test';
import assert from 'node:assert/strict';
import { statusLabel } from '../src/status.mjs';

test('queued status has a readable label', () => {
  assert.equal(statusLabel('queued'), 'Queued');
});

test('other statuses stay unchanged', () => {
  assert.equal(statusLabel('done'), 'done');
});

Run node --test test/status.test.mjs before starting Claude. The first assertion should fail and the second should pass. This gives you a known defect rather than a vague request to improve the project.

Next, create .claude/settings.local.json in the repository. Its explicit ask rules make the test command require approval even when other routine commands would be allowed:

{
  "permissions": {
    "ask": [
      "Edit(src/status.mjs)",
      "Bash(node --test *)",
      "PowerShell(node --test *)"
    ]
  }
}

Both shell rules are included because Windows sessions may use PowerShell while other environments use Bash. Keep the settings file local and do not add it to the commit. Start in Manual permission mode rather than bypass mode. If Claude runs the test without prompting, inspect /permissions and the actual command it chose before treating the permission part of the test as successful.

Stage the two fixture files with git add src/status.mjs test/status.test.mjs. This gives Git a baseline for a useful unstaged diff without requiring a commit or a configured Git identity.

Hand off an actual task to the phone

  1. At the desk: start claude --remote-control "RC status check" inside the fixture directory. Ask: “Read the source and test files. Explain the smallest change needed for queued to display as Queued. Do not edit or run commands until I reply.” Confirm that the answer identifies src/status.mjs and leaves the other status unchanged.
  2. Move to the phone: open the same session from the Code tab. Reply: “Apply only the proposed change to src/status.mjs. Run exactly node –test test/status.test.mjs. Do not change tests or relax permissions. Report the tool result and files changed.”
  3. Handle the genuine approval: read the permission card before accepting it. Approve only the requested edit or test command, not unrestricted shell access. Check that the tool result follows the approval. A button disappearing without a test result is not evidence that the command ran.
  4. Back at the desktop: inspect the session and run the independent commands below. A correct conversation summary is helpful, but the working tree and test runner are the final check.
node --test test/status.test.mjs
git diff -- src/status.mjs
git diff -- test/status.test.mjs
git status --short

The intended edit is return value === "queued" ? "Queued" : value;. The acceptance result is two passing tests, no change to the test file and a source diff limited to the status function. The local settings file may also appear as untracked in git status; that is separate from Claude’s requested code edit.

Fixture verification: the isolated Node.js example was checked with Node 22.16.0. It produced one pass and one failure before the one-line change, then two passes after it. That checks the fixture itself, not the mobile connection or approval flow. Those require an actual paired Claude session and should be recorded separately.

Recover by failure type, not by repeatedly restarting

InterruptionWhat it meansRecovery and verification
Phone loses Wi-Fi or the app is backgroundedThe host process can remain active. A disconnected mobile view does not establish whether Claude stopped working.Reconnect in the Code tab or browser. Check the newest tool result, then verify the local diff. Avoid resending the same edit while its status is unknown.
Host loses internet while still awakeAn interactive Claude Code session retries its Remote Control connection. Model-dependent work cannot be assumed to progress while the host has no access.Restore connectivity and check the terminal’s Remote Control indicator. If automatic reconnection fails, run /remote-control and verify the working tree.
Laptop sleeps, then wakesThe computer cannot continue executing a coding task while asleep. Remote Control should reconnect once the machine is awake and online, provided the local process survives.Wake and sign in to the computer; confirm the original process is still running. Reopen the phone session, check for pending prompts, and rerun the test rather than assuming it ran during sleep.
Interactive claude process is stoppedThe remote execution endpoint is gone. Code already written to disk is a separate matter from the live conversation.From the same repository, run claude --continue or claude --resume. If the remote attachment is missing, run /remote-control. Review existing changes before asking Claude to repeat work.
claude remote-control server stopsServer mode can exit after roughly ten minutes of extended network outage. This is different from an interactive session’s ongoing retries.Start claude remote-control again in the same directory to restore eligible sessions. --continue targets the server’s initial session; restoration is documented for roughly four hours after shutdown, subject to its conditions.

Test these cases separately on a throwaway project. If you change the network and close the terminal in one test, you will not know which event caused the failure. For server mode, a child session crash is another distinct case: newer Claude Code versions can serve the session again when a connected device sends it a message, provided the server itself is still running.

Your search, your sources
Make DIY AI a preferred source

See more of our reporting in Google Top Stories, AI Overviews and AI Mode.

Add DIY AI on Google

Four different kinds of state can survive differently

Developers often say a remote session was “lost” when only one layer failed. Check each layer independently:

StateHow to verify itWhat not to assume
Repository filesgit diff, git status and the test command on the hostThat an interrupted tool completed its write
Conversation contextReopen the same session and inspect the last completed exchangeThat starting a new remote session restores every earlier message
Pending approvalsCheck the phone card and the host terminal for the same requested actionThat tapping Approve means the result reached Claude
Running commands or subagentsInspect the corresponding tool result and actual process or outputA spinner or green indicator proves completion

Real-world reports repeatedly describe a session that looks connected yet ignores phone input, or a permission prompt visible at the unattended computer but not actionable on mobile. One such failure was eventually traced to endpoint security rather than Claude itself. Compare the phone app with the browser, inspect the host process and check VPN, firewall or antivirus behaviour before changing permission safeguards. Do not switch to unrestricted permissions merely to make a stuck approval disappear.

One more trap: changing conversations with /resume locally can leave a connected device without the switched-to conversation’s earlier history. That is a display and context issue, not necessarily a loss of files. If you see “Couldn’t reconnect to your Remote Control session”, the local conversation can still run; retry /remote-control rather than assuming the repository needs rebuilding.

Local execution does mean no Cloud data handling

Remote Control uses outbound HTTPS and does not require opening inbound ports on your computer. Tools, filesystem operations, MCP servers and test commands execute in your local environment. However, messages, responses and tool activity travel through Anthropic’s service, and the connected session transcript is stored on Anthropic’s servers so devices can stay in sync and reconnect. Code or other context supplied to the model also remains subject to the product’s data-handling terms.

Do not position this as an air-gapped workflow. Organisations using Zero Data Retention or Anthropic’s HIPAA configuration cannot enable Remote Control, and Team or Enterprise administrators can restrict the feature. Keep secrets out of test prompts, use a disposable branch or worktree and give the phone no more authority than the task needs.

Where Remote Control earns its place

Remote Control is useful when an edit has clear boundaries, you have already established the tests, and you want to answer a question or approve a command away from your desk. The computer must remain available for work to continue. For long unattended jobs on an unreliable laptop, an appropriately configured cloud execution environment may be a better fit, though it changes where code runs and what environment the task can reach.

Our Claude Code vs OpenAI Codex comparison covers the wider choice of interactive and automated coding workflows. For Remote Control specifically, use this pass condition: the phone sends a real instruction, a permission is honoured, the host produces a completed test result, and the desktop diff matches the original scope. Repeat the three interruption checks before trusting it with a longer task.

You Might Also Like:

best AI coding tools

Best AI Coding Tools 2026

By: Steven Jones On:
Updated on: August 12, 2026
Claude Code is the best AI coding tool overall in 2026 because it leads the DIY AI dataset for repository…
Claude Code & Claude Pro Pricing 2026

Claude Code Pricing 2026

By: Steven Jones On:
Updated on: October 17, 2026
Claude Code pricing starts at $20 per month with Claude Pro; Max 5x costs $100 per month, and Max 20x…
code review automation

Code Review Automation

By: Steven Jones On:
Updated on: October 15, 2026
Code review automation runs repeatable checks on a pull request and helps determine whether it can be merged. A useful…
Steven Jones

Writer: Steven Jones

AI Tools Reviewer and Technical Analyst

Steven Jones is a technology analyst specialising in artificial intelligence, machine learning workflows, and emerging automation tools.

At DIY AI, he focuses on clear, practical guidance for people comparing AI tools in the real world. His work covers text generation, image generation, video tools, data platforms, developer-focused AI products, and the automation workflows that connect them.

Steven's reviews are built around hands-on testing, practical benchmarks, and transparent scoring rather than vendor claims. He looks closely at where each tool performs well, where it falls short, and what those trade-offs mean for creators, teams, and businesses trying to make sensible AI adoption decisions.

He has a particular interest in safety, reliability, output quality, performance metrics, and dataset quality. When he is not reviewing the latest AI model updates, he experiments with prompt engineering techniques and contributes to DIY AI ongoing work on fair, explainable scoring frameworks for AI tools.

Contact

Leave a Comment On: Claude Code Remote Control

Your email address will not be published.