Claude Code Remote Control: How to Code from Your Phone with a QR Code in 2026
MarkdownStep-by-step instructions for connecting Claude Code to your phone using /rc and a QR code. Commands, limits, security, and 6 common first-run bugs.
Read full article
Key takeaway
Run claude --rc in the terminal, press Space, and scan the QR code with the Claude app on your phone. The session runs on your laptop; your phone is just a window into it. It’s useful for overnight runs and working from the couch, but not for serious code editing. You need v2.1.51+ and a Pro or Max subscription.
More instructions are available in the Ailoot documentation.
What is Claude Code Remote Control?
Key takeaway
Remote Control is a bridge between Claude Code on your laptop and the Claude app on your phone or the claude.ai/code browser. The session runs on your machine; your phone is just an interface to it. Execution and local tools stay on your machine; content included in messages and tool results still passes through Anthropic. You need it when you’ve set a long task and want to keep directing it without sitting at your laptop.
Anthropic released Remote Control on February 24, 2026. Anthropic describes it as a way to continue local sessions from any device.
In plain language: you start a session in the terminal as usual. Turn on Remote Control. Open the Claude app on your phone → the Code tab → and you’ll see your session with a green dot. Tap it, read, and reply. You can write from your laptop, phone, and browser in any combination—all in sync.
The official Remote Control documentation distinguishes local execution from network traffic: commands and filesystem operations run on your machine, while the conversation is synchronized through Anthropic.
That’s the key difference from Claude Code on the web, where the session runs in an Anthropic cloud VM. Here, Claude still runs on your hardware, with all your Git repositories, environment variables, and database keys. Your phone is just a screen you use to talk to it.
Why a vibe coder might need this
Three practical scenarios the author used every week:
- A long refactor overnight. Give Claude the task of updating 40 files for a new API. Step away from your laptop. In the morning, lie on the couch with your phone, review the diff, and say, “Accept the first 12; show me the rest separately.” No need to open the laptop.
- Approve a step on the way to work. You’re on the subway when Claude sends a push notification: “Need a decision on the schema migration.” Open it, read the two alternatives, and write, “Take the first option; don’t touch the tests.” The session keeps moving while you ride.
- Alongside a livestream or meeting. During a Zoom meeting, you can check on your phone that a second Claude session has built a test build. No alt-tabbing out of the video call.
What You Need to Run Remote Control
Key takeaway
Claude Code version 2.1.51 or newer and a Pro, Max, Team, or Enterprise subscription. API keys don’t work. You need a network with outbound access on port 443 (without intercepting proxies). Sign in once with /login through claude.ai in the terminal, and you can start. For Team/Enterprise, an admin must also enable the toggle in the organization settings.
Full requirements table:
| Item | Minimum version / requirement |
|---|---|
| Claude Code CLI | v2.1.51 (released 24.02.2026) |
| VS Code extension | v2.1.79 |
| Push notifications | v2.1.110 |
| Subscription | Pro, Max, Team, or Enterprise |
| API key | Doesn’t work—OAuth through /login only |
| Network | Outbound HTTPS on port 443 |
| OS | macOS, Linux, WSL |
| Workspace trust | Run claude in the project folder at least once |
| Team/Enterprise | Admin enabled Remote Control in admin settings |
Check your version with:
claude --version
If it’s below 2.1.51, update:
npm install -g @anthropic-ai/claude-code@latest
If your environment has ANTHROPIC_API_KEY, CLAUDE_CODE_OAUTH_TOKEN, or apiKeyHelper set, Remote Control won’t start. Since v2.1.139 (11.05.2026), Anthropic explicitly blocks the feature when these variables are present. Run unset ANTHROPIC_API_KEY and sign in again with /login.
How to Start Remote Control: 3 Ways in 2 Minutes
Key takeaway
There are three ways to start Remote Control: the bare claude remote-control command starts a server for remote sessions; the claude --rc flag starts a regular session with Remote Control enabled; and the /rc slash command inside an active session converts it into a remote one. The second method is more convenient for most tasks.
Method 1. Server mode—a dedicated server for remote sessions
Open a terminal in the project folder
Run
cdonce to go to the directory where you’ll work. If it’s a new folder, runclaudeas usual to complete the Workspace Trust dialog.Start the server
claude remote-controlThe terminal stays running. A session URL and the prompt “Press space to show QR” appear at the bottom. The server is waiting for connections.
Connect from your phone
Press Space—the QR code will appear. Scan it with the Claude app or your iPhone camera to open the session.
Optional: set the session name and parameters:
claude remote-control --name "Refactor API" --spawn worktree --capacity 4
--name— the name shown for the session in the list on your phone.--spawn worktree— each new session opens in its own Git worktree so parallel sessions don’t step on each other.--capacity 4— a maximum of 4 simultaneous remote sessions on the server. The default is 32.
Method 2. Interactive mode—my session with Remote Control on top
claude --remote-control
# or shorter:
claude --rc
This gives you a regular interactive session in your terminal, with Remote Control enabled. You can write to Claude from both your laptop and phone—the conversation is one synchronized session.
Unlike server mode, this is one session. It’s useful when you plan to work mostly from your computer and want your phone as a backup for when you need to step away.
Method 3. From an active session with /rc
Already working in Claude Code? Don’t kill the session. Just type:
/remote-control
or, shorter:
/rc
The session becomes remote. You won’t lose its context. Useful when you realize in the middle of a task that you need to step away.
QR Code: Connect Your Phone in 10 Seconds
Key takeaway
After starting Remote Control in the terminal, press Space to show the QR code. Open the Claude app on your phone (iOS or Android), or just use your camera, and scan the code. The session opens in the app or in a browser at claude.ai/code. On the same screen in the app, it appears in the list with a green dot indicating it’s “online.”
Install the Claude app
If you don’t have it yet, type
/mobilein Claude Code. A QR code will appear for downloading the app from the App Store or Google Play. It’s faster than searching manually.Show the session QR code in the terminal
After
claude --rcorclaude remote-control, press Space. The QR code appears right in the terminal.Scan with your phone
Open the Claude app → camera, or use the standard iPhone camera (Android cameras can scan it too). If it doesn’t work, make the terminal window wider, switch to iTerm2 or Windows Terminal, or copy the URL above the QR code and paste it into your browser manually.
Enable push notifications
Type
/configin the session and enable “Push when Claude decides.” Claude Code must be version 2.1.110 or newer.
What you’ll see on your phone
The Code tab opens in the Claude app. Your session appears in the list with a computer icon and a green dot (online). Tap it to enter.
After that, it’s like claude.ai/code: you can see Claude’s messages and file diffs, approve or reject them, or ask for changes. You can write a new request. It all goes to your machine, where local Claude processes it and returns a response.
Work from both surfaces at once: the conversation syncs across all connected devices—write from the terminal, browser, or phone, as you like.
What Claude can do with push notifications
Claude sends push notifications when it decides they’re needed. By default, this happens in two cases: a long task finishes, or Claude needs your decision. You can also ask explicitly: “Let me know when the tests pass,” and it will send one.
If push notifications don’t arrive:
- On iOS, check Settings → Notifications → Claude. Focus modes may silence them.
- On Android, turn off battery optimization for the Claude app.
- If
/configsays “No mobile registered,” open the Claude app at least once so it can update its push token.
Working from the Couch: 5 Useful Scenarios
Key takeaway
The real benefit of Remote Control is not having to return to your laptop for a single approval click. Nobody plans to do full-fledged coding from a phone. Here are five scenarios where the author used the feature every week: reviewing an overnight run, approving a step on the subway, a long task over lunch, making an architectural decision from a café, and running parallel sessions in worktrees.
Scenario 1. Couch review—reviewing an overnight run
Before bed, give Claude a task like, “Run the whole repository through the new lint rules and fix everything that isn’t critical; mark the rest TODO.” Run claude --rc and leave the terminal open.
In the morning, lie on the couch with your phone. Open the Claude app → see the session with a green dot → find 87 commits as diffs inside. Scroll through them; in the questionable spots, write “revert this; I’ll fix it manually,” and for the clean ones, “accept everything.” No “getting to the laptop” at 7 a.m.
Scenario 2. Commute approve—approving a step on the subway
Start a long database schema migration in the morning. At 9:30, a push arrives on the subway: “Found two migration alternatives; need a decision.” Tap it, read them, choose one, and add, “Don’t delete the old table until the full test run is complete.” Claude keeps going.
Without Remote Control, Claude would stop at that point and wait in silence. You arrive and open your laptop—40 minutes lost.
Scenario 3. Walk-away pattern—a long task over lunch
Before lunch, start Claude on “Update the documentation for all endpoints.” Head to a café. After 25 minutes, a push arrives: “Done, take a look.” Tap “accept” once, then go back to your soup. Without Remote Control, either you sit at your laptop for 25 minutes like a guard, or you come back and find Claude did nothing the whole time because it hit a decision point.
That’s an important point. Remote Control doesn’t make Claude more autonomous—it just gives you access from anywhere. The fewer decision points Claude encounters, the fewer push notifications you’ll get. So make your task instructions more specific: “Do it this way; in these cases, do that; if it’s really unclear, stop and send a push.”
Scenario 4. An architectural decision from a café
Claude finds two migration paths in the middle of a refactor and asks you to choose. If you’re away from your computer, open the proposed diffs on your phone, choose an option, and add the comment, “But don’t touch the user_settings table—I’ll drop it next week.” The session keeps going.
This works especially well in worktree mode (--spawn worktree): each parallel task is in its own branch, so they don’t interfere with one another. On your phone, you switch between them like chats.
Scenario 5. Several worktree sessions at once
One powerful approach is server mode plus multiple worktrees. Start this on your laptop:
claude remote-control --spawn worktree --capacity 4
Start sessions in different branches from your phone: one builds a feature, another fixes bugs from a list, and a third runs regression tests. They all run in parallel on your laptop; none blocks another.
Attention
Server mode uses laptop resources in proportion to the number of simultaneous sessions. With 16 GB of RAM, four parallel Claude sessions are already noticeable. Run as many as your machine can handle.
Security: What Stays on Your Computer and What Gets Sent
Key takeaway
Chat messages and tool results pass through Anthropic and may contain source code or secrets. Local execution does not prevent that disclosure. The connection is outbound-only on port 443, uses short-lived credentials, and is encrypted with TLS. Your laptop opens no incoming ports, and the remote phone doesn’t get direct access to your file system.
Before connecting a sensitive project, decide what content may enter prompts and tool output. Keep production secrets outside the agent’s accessible environment; the transfer table is not proof that a particular session cannot disclose them.
A local Claude Code session makes only outbound HTTPS requests and never opens incoming ports on your machine. When you start Remote Control, the session registers with the Anthropic API and polls it for work.
In everyday terms: your laptop asks Anthropic, “Do you have any messages for me?”, gets a response, and processes it locally. Nobody outside opens an incoming port to your machine. A corporate firewall will allow this without special configuration.
What physically goes to Anthropic
| Data type | Where it lives |
|---|---|
| Source files | Stored locally; excerpts and diffs included in the conversation are transmitted |
.env, secrets, API keys | May leak if read into a prompt or tool result; local storage is not an access restriction |
| Local MCP servers and configs | Run locally; their returned content can enter the conversation |
| Databases Claude connects to | Remain at their configured host; query results can enter the conversation |
| Text of your messages to Claude | In the Anthropic API, then the response comes back |
| Text of Claude’s replies | In the Anthropic API, then to your phone |
| File diffs Claude shows you | Through the Anthropic API (like a regular Claude.ai session) |
Imported pictures, files through @ | Through the Anthropic API |
Remote Control adds a synchronized interface, not an offline inference mode. Anthropic stores the connected session transcript, including messages, responses, and tool activity, under its data-usage policy. Review both the data sent to the model and access from connected devices.
A note about credentials
The connection uses several short-lived credentials, each with one purpose and an independent lifetime.
In other words, a pool of short-lived tokens circulates between your laptop, Anthropic, and your phone instead of one long-lived token. Compromising one won’t give you access to them all.
One more important limitation: --dangerously-skip-permissions doesn’t work in Remote Control. Every tool call (Bash, Write, Edit) still waits for your approval. This is deliberate—to keep the phone feature from turning into “a laptop on autopilot with no supervision.”
Note
If you want full autonomy (“Claude decides and works by itself for 14 hours straight without approval”), that’s a different feature: /goal mode. Read more in the guide to /goal in Claude Code. Remote Control does something else: it lets you direct work from anywhere, without adding autonomy.
Started Remote Control? Now Set Things Up So Claude Doesn’t Interrupt You Every 10 Minutes
Key takeaway
Remote Control by itself solves half the problem: it gives you a window into the session from your phone. The other half is setting things up so Claude knows when to stop and ask, and when to keep going on its own. You can do this with CLAUDE.md, a detailed prompt at the start of the task, and /goal mode. Then push notifications arrive when they matter, not every 10 minutes.
/rc is a convenient way to bring your session to your phone. But if Claude writes “I don’t understand what to do” every 10 minutes, the problem isn’t the phone; it’s context engineering: how clearly you set the rules at the start.
Six First-Run Problems and How to Fix Them
Key takeaway
The most common first-connection bugs are: “Remote Control environments are not available” because an API key is set; the QR code won’t scan because it’s too small in the terminal; the firewall blocks port 443; Claude Code is too old; push notifications are silent; or Remote Control fails from inside Claude Desktop. Each takes 1–2 minutes to fix.
Problem 1. “Remote Control environments are not available for your account”
The most common complaint in the anthropics/claude-code repository (issue #29449 and more than a dozen duplicates). You answered y to “enable Remote Control?”—the CLI returned an error and no longer offers to try again.
The cause is almost always the same: ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN is set in the environment. Remote Control works only through full OAuth via /login, not with a key.
Fix:
unset ANTHROPIC_API_KEY
unset CLAUDE_CODE_OAUTH_TOKEN
unset apiKeyHelper
# check that the environment is clean:
env | grep -i anthropic
env | grep -i claude
# sign in again:
claude
/logout
/login
After /login through the browser, Remote Control should start.
Problem 2. The QR code won’t scan with your phone
Your phone camera points at it but doesn’t react, or says, “Can’t read this.”
Cause: your terminal renders the QR code too small or with too little contrast.
Fix:
- Expand the terminal window to full screen.
- If you’re using Apple Terminal, switch to iTerm2 (or Warp). If you’re on Windows, use Windows Terminal instead of CMD.
- Reduce the terminal font size by 1–2 points so the QR code appears larger.
- If that doesn’t help, copy the URL above the QR code and open it in your phone’s browser.
Problem 3. The firewall blocks port 443
This usually happens on corporate computers with an intercepting proxy (Zscaler, or a corporate VPN with MITM).
Network or proxy issue: a firewall or proxy may block outbound HTTPS requests. Remote Control requires access to the Anthropic API on port 443.
Fix: start with verbose logs and capture the specific error:
claude remote-control --verbose
If you see “certificate verification failed,” there’s MITM interception, and you need to talk to your network administrator. If you see “connection refused” / “timeout,” ask the administrator to allow outbound access to *.anthropic.com:443.
Problem 4. Claude Code is too old
Check:
claude --version
If it’s below 2.1.51, update:
npm install -g @anthropic-ai/claude-code@latest
The VS Code extension requires at least v2.1.79. Push notifications require v2.1.110.
Problem 5. Push notifications don’t arrive
Scenario: Remote Control works, but your phone stays silent when Claude finishes a long task.
Checklist:
- Run
/configin the session. If it says “No mobile registered,” open the Claude app on your phone at least once so it can update the push token. - iOS: Settings → Notifications → Claude → check that notifications are enabled and not silenced by Focus mode.
- Android: open battery settings and exclude Claude from battery optimization.
- If iOS Notification Summary is on, the push may arrive but show up in the hourly summary. Turn off Summary for Claude.
Problem 6. Claude Desktop breaks /remote-control
If you run /remote-control inside the Claude Desktop app, you get the error “Remote Control requires a full-scope login token” (GitHub issue #48378).
Cause: Claude Desktop injects an OAuth token with limited permissions (inference only).
Fix: run Claude Code in a regular system terminal, not in the terminal built into Claude Desktop. This is a known limitation; Anthropic is working on a fix.
Bonus. Auto-reconnect silently dies in long sessions
Symptom: a Remote Control session runs for 30–60 minutes, then the phone silently disconnects with no indicator (issue #34255). Fix it manually: /remote-control → Disconnect → start it again. It’s not ideal, but the feature is still a research preview.
In May 2026 alone, Anthropic shipped eight fixes specifically for Remote Control—the feature is actively being improved. You can complain, but it’s reasonable to expect most of these problems to go away in a couple of months.
Remote Control vs. Telegram Bots and SSH+tmux
Key takeaway
Remote Control is an official, synchronized window into a local Claude session. Telegram bots through Anthropic Channels are a reactive channel where an “external event prompts Claude.” SSH+tmux from a phone is a universal shell, but it disconnects when the Mac sleeps and makes reviewing diffs on a 6-inch screen painful. Choose based on the task: direct a session with Remote Control, react to an event with Channels, or use SSH+tmux when you need an arbitrary shell.
Comparison table
| Item | Remote Control | Channels (TG/Discord) | SSH + tmux |
|---|---|---|---|
| Who initiates | I open the session | An external event triggers Claude | I connect |
| Interface | Full claude.ai/code UI | Chat messages | Terminal on phone |
| Where the session runs | On my machine | On my machine | On a server |
| Diff review | Convenient (native UI) | In chat as text | Microscopic fonts |
| CLI support | Claude Code only | Any command through a bot | Any command |
| Price | Included in Pro/Max | Free (Channels plugin) | Free |
| Pop-up on network loss | Auto-reconnect | Reactive (push) | Disconnects when switching |
| When the session dies | Terminal closed / >10 min without network | Bot runs continuously | tmux saves it |
When to choose each option
- Remote Control — the default setup for “leave the laptop and keep directing the work.” Full UI, device sync, and no third-party services.
- Channels (Telegram bot) — when you want a CI failure, a new customer complaint, or a chat message to automatically prompt Claude to investigate. This is “event → Claude reacts” instead of “I direct Claude from my phone.” Read more in the guide to Telegram and Claude Code.
- SSH + tmux — when you need an arbitrary shell on your phone for your own commands (deploy a release, check a log, restart a service). A universal shell outside Claude Code. For one-off tasks, it works through Termux/Blink.
- Other coding agents — Anthropic Remote Control is only for Claude Code. For a comparison of Claude and alternatives, see Cursor vs Claude Code.
Channels: push events from a chat app such as Telegram or Discord, or from your own server. Useful for reacting to external events—for example, CI failures or chat messages.
Anthropic’s own documentation thus distinguishes these two features by use case: Remote Control is for control; Channels is for reacting.
What’s New in Remote Control from May 2026 to June 2026
Key takeaway
In a month and a half, Anthropic shipped eight targeted fixes and improvements specifically for Remote Control: blocking the feature when an API key is present in the environment; fixing MCP connector redirection during token rotation; replacing “Opening your options” with a proper upsell at the limit; a persistent footer pill instead of a startup message; fixing push notifications in SDK sessions; and proper error messages on the first connection. As of 03.06.2026, the current version is 2.1.162.
Complete fix timeline:
| Version | Date | What changed |
|---|---|---|
| v2.1.51 | 24.02.2026 | First Remote Control release |
| v2.1.79 | March 2026 | Support in the VS Code extension |
| v2.1.110 | April 2026 | Push notifications became an official feature |
| v2.1.126 | 01.05.2026 | Replaced the empty “Opening your options...” with a proper upsell at the rate limit |
| v2.1.139 | 11.05.2026 | Remote is blocked when ANTHROPIC_API_KEY or apiKeyHelper is present |
| v2.1.140 | 12.05.2026 | Managed settings retry 401 with a force-refreshed token |
| v2.1.141 | 13.05.2026 | Fixed MCP connector failures with 401 during worker session token rotation |
| v2.1.149 | 22.05.2026 | Fixed erroneous “Mobile push not sent” in SDK sessions |
| v2.1.151 | 27.05.2026 | Remote Control is now a persistent footer pill |
| v2.1.152 | 27.05.2026 | Fixed /remote-control hanging on “connecting...” |
| v2.1.154 | 28.05.2026 | Autocomplete shows “Disconnect” when it’s already active |
| v2.1.162 | 03.06.2026 | Current version, general improvements to metrics, parallel tool handling, and so on |
Eight Remote Control-specific fixes in one month is normal for a research preview feature. Anthropic is clearly responding to feedback and closing edge cases.
If the feature behaves strangely for you, the first step is to check the version and update. There’s a good chance the bug has already been fixed.
Checklist: Set It Up and Get It Working in 5 Minutes
Key takeaway
For Remote Control to work reliably on the first try, go through the seven steps below. They address 90% of first-run problems and let you approve your first push from your phone within five minutes of starting.
Check your Claude Code version
claude --version— it should be 2.1.51 or newer. If it isn’t, runnpm install -g @anthropic-ai/claude-code@latest.Remove API keys from the environment
Run
unset ANTHROPIC_API_KEYandunset CLAUDE_CODE_OAUTH_TOKEN. Then run/logout→/loginthrough the browser.Install the Claude app on your phone
Run
/mobilein a Claude Code session to show a QR code for the App Store / Google Play.Start Remote Control
Run
claude --rcor/rcinside a session. A URL and the prompt “Press space to show QR” will appear.Scan the QR code with your phone
Press Space in the terminal → use the camera or Claude app. Expand the terminal window if it won’t scan.
Enable push notifications
/config→ “Push when Claude decides.” If it says “No mobile registered,” open the Claude app at least once.Start a long task and step away
Make the prompt specific: “Do it this way; in these cases, do that; in questionable cases, send a push.” Then work from your phone using push notifications.
In a practical example, this took 3–5 minutes from scratch to the first conversation from the couch.
Sources
- Continue local sessions from any device with Remote Control - Claude Code Docs — official Anthropic documentation and the main source for commands, requirements, and limitations.
- Claude Code Changelog — version history from 2.1.51 to 2.1.162, including all Remote Control fixes.
When you’re ready, get to know Ailoot.
More details
Questions about Claude Code Remote Control: How to Code from Your Phone with a QR Code in 2026
Does Remote Control keep the whole conversation off the cloud?
No. Commands and filesystem access run locally, but messages, responses, diffs, and tool activity are synchronized through Anthropic. Source excerpts or secrets included in that content can therefore leave the machine.
Why does my computer need to stay on during Remote Control?
The phone is an interface to the Claude Code process on your computer. Keep that process running and the machine available; opening the phone app does not move local execution into a cloud VM.