Blog · November 3, 2026 · 9 min read · by Vilva Athiban P B
Claude Remote Control vs Claude Code on the Web: Which to Use and How They Differ
Open claude.ai/code and you can start a session two ways that look almost identical in the interface and are completely different underneath. One is a cloud session, often called Claude Code on the web: Claude runs on a virtual machine Anthropic manages, with your repository cloned into it. The other is Remote Control: Claude runs on your own computer, and the browser or phone is a window into that local process. The Remote Control documentation puts it in one sentence: “The key difference is where the session runs.” Everything else people ask about (why a session says it is connected to my computer, why another one kept going after the laptop was closed, why the cloud one could not reach localhost, which one burns usage) follows from that sentence. This post lays the two out side by side, from the official docs as of early November 2026.
What “connected to your computer” means
A Remote Control session is a claude process on your machine that has registered with the Anthropic API and is polling for work. In the session list at claude.ai/code and in the Claude mobile app, these sessions show a computer icon with a green status dot when online. When you type from the phone, the message travels to Anthropic and down to that process, which reads your files, runs your tools and MCP servers, and streams the result back. The docs are explicit about the consequence: “your computer has to stay on and the claude process has to keep running.”
The connection is outbound only. Your machine makes HTTPS requests to the Anthropic API and never opens an inbound port, which is why it works behind a home router or office NAT with no configuration. While connected, the transcript (your messages, Claude's replies and tool activity) is stored on Anthropic servers so that every device sees the same conversation and the session can reconnect after a network drop; execution and filesystem access stay on your machine. If you see Remote Control disconnected or Can't reach in the browser, that means the browser lost contact with Claude Code on your computer, and the docs note that neither message tells you whether Claude is still working there. You have to look at the machine.
What a cloud session is
A cloud session “runs on cloud infrastructure instead of on your machine.” In Anthropic-hosted environments each session gets a fresh VM running Ubuntu 24.04 on x86_64, whatever your own laptop runs, with the repository cloned and common toolchains pre-installed. It needs GitHub access to clone and push, granted either through the Claude GitHub App or by sending your local gh token with /web-setup; your GitHub credentials stay encrypted on Anthropic's servers and never enter the VM, because git operations go through a proxy that attaches them server-side. The session “keeps running after you close your laptop,” and you check on it from any device. When it is done you create a pull request from claude.ai/code, or pull the session and its branch into your terminal with claude --teleport <session-id>.
Every cloud session runs inside a cloud environment, a saved configuration with one of four network access levels: None, Trusted (allowlisted domains only: package registries, GitHub, cloud SDKs; this is the default), Full (any domain) and Custom (your own allowlist). Environment variables are set on the environment in .env format, and the docs warn that anyone who uses the environment can read them; an API key should be a network secret instead, which the agent proxy attaches to matching outbound requests so the key never appears inside the session. Resource ceilings are approximately 4 vCPUs, 16 GB of RAM and 30 GB of disk, and the docs say outright that for workloads beyond that you should use Remote Control to run on your own hardware.
Remote Control vs cloud sessions, side by side
| Remote Control | Cloud session | |
|---|---|---|
| Where code runs | Your machine (CLI, Desktop app or VS Code) | An Anthropic-managed VM, or your organisation's self-hosted environment |
| Files | Your real working tree; @ autocompletes local paths | A clone of the GitHub branch (or an uploaded bundle); results come back as a branch or PR |
| Local tools, MCP servers, config | All available, exactly as in the terminal | Only what the environment installs; repo-committed .claude/ agents and settings are read |
| Secrets | Whatever your shell already has | Environment variables (readable by environment users) or network secrets (never enter the VM) |
| Laptop closed or offline | Session stops until the machine is back; an interactive session reconnects on its own | Keeps running; idle VMs pause and can be reclaimed, history is restored on reopen |
| localhost, LAN, VPN hosts | Reachable, it is your machine | Not reachable; only the environment's allowed domains |
| Usage | Counts like any Claude Code session | Counts toward the same plan limits; no separate charge for the VM, parallel sessions consume proportionately more |
| Plans | Pro, Max, Team, Enterprise; no API keys, Bedrock, Foundry or Agent Platform | Pro, Max, Team, and Enterprise with premium or Chat + Claude Code seats; no API keys or third-party providers |
| Permissions | The session's mode; the server flag --permission-mode sets it for served sessions | Picked from the mode dropdown when creating the task or while it runs |
The “laptop closed” row deserves the extra sentence. Remote Control is listed as surviving interruptions: if your laptop sleeps or the network drops, Claude Code reconnects automatically when the machine comes back online. That is reconnection, not continuation. A sleeping Mac is not running your test suite, and the phone will show the session as offline until it wakes. A cloud session is the thing that genuinely does not care whether your laptop exists.
Which one to use, in the docs' own words
The Remote Control page gives the rule directly: “Use Remote Control when you're in the middle of local work and want to keep going from another device. Use a cloud session when you want to start a task without any local setup, work on a repo you don't have cloned, or run multiple tasks in parallel.” A project combines the two: its threads run in the cloud, and it uses Remote Control to run a thread on your computer when you ask for one there. In practice the decision usually comes down to three questions.
- Does the task need something only your machine has? A local database, a service on localhost, a VPN-only host, a hardware device, an MCP server with local credentials, a build that needs more than 16 GB. Remote Control. Cloud sessions reach only their environment's allowed domains and run on a fixed VM.
- Do you need the work to continue when you are not there? Overnight, on a train, while the laptop is in a bag. Cloud session. Or keep the local machine awake and plugged in and accept that Remote Control depends on it; the server mode guide covers running
claude remote-controlunder tmux on a box that stays up. - Is the output a pull request? Cloud sessions are built around branch, push, PR, and can watch the PR for CI failures with auto-fix. Remote Control leaves changes in your working tree, where you commit them yourself, exactly as if you had typed at the terminal.
Moving between the two
Handoff from the CLI is one-way. claude --cloud "task" creates a new cloud session that clones your current directory's GitHub remote at your current branch, not your local checkout, so push first if you have local commits. If the repository has no remote, or the Claude GitHub App is not installed on it, Claude Code bundles the local repository and uploads it instead; on macOS, Linux and WSL it leaves uncommitted changes to files that look like credentials (.env, *.tfvars, id_rsa, *.pem) out of the upload and prints a Left on this machine: notice. Going the other way, claude --teleport pulls a cloud session into your terminal: it checks you are in a checkout of the same repository with a clean working tree, fetches the session's branch and loads the conversation. The terminal then has its own copy, and new work there does not appear in the cloud session; to keep steering from your phone after teleporting, start /remote-control in the local session.
# local work you want to keep steering from the phone
claude
/remote-control
# a task that should run without your laptop
git push
claude --cloud "Fix the flaky test in auth.spec.ts"
# bring a finished cloud session into the terminal
claude --teleport <session-id>
# queue a follow-up into a running cloud session, from any machine
claude -p "also update the changelog" --cloud <session-id>One naming trap the docs call out themselves: --cloud creates cloud sessions, while --remote-control is unrelated and lets you steer a local session. The older --remote spelling is a deprecated alias for --cloud, which is presumably where some of the confusion between “remote” and “cloud” comes from.
Gotchas on each side
Remote Control. Closing the terminal, quitting the Desktop app or VS Code that hosts the session, or stopping the claude process takes the session offline until you bring it back. In server mode an extended network outage makes the process give up after roughly ten minutes and exit; an interactive session keeps retrying for as long as the outage lasts. Organisations with Zero Data Retention or the HIPAA configuration cannot enable it, and on Team and Enterprise an Owner has to switch it on in the admin settings first. Commands that only exist in the terminal interface, such as /plugin and /resume, do not work from the phone.
Cloud sessions. Idle sessions pause after a few minutes and a paused VM can be reclaimed; reopening restores the conversation but not background work that was still running, and Claude Code tells Claude which shell commands and subagents stopped so you can ask it to rerun them. Repository cloning and PR creation require GitHub (GitLab or Bitbucket repositories can be sent as a bundle with CCR_FORCE_BUNDLE=1 but the session cannot push back). If your organisation uses IP allowlisting, every Anthropic-hosted cloud session fails with an authentication error because it calls the API from Anthropic's network, not yours. And rate limits are shared with everything else on your account, so five parallel cloud sessions draw down the same pool five times faster.
The part both have in common
Whichever you choose, you are not watching the terminal, which is the whole point, and which is also the moment the session asks a question nobody answers. Remote Control forwards permission prompts to the connected device and keeps them open until you answer, and for push notifications on the phone it has the Push when Claude decides and Push when actions required options in /config. A cloud session that asks a question simply sits idle until you come back, up to environment expiry. On the machine that actually runs a Remote Control session, the terminal still shows the tool activity, and a desktop alert there is the thing that catches a stalled run before your phone does; our background session guide and the Remote Control guide cover the local-side setup.
Keep reading
Desk Exercises for Programmers: 15 Moves to Do While Your AI Agent Codes
7 min read
Exercise While Coding: Turn Claude Code Wait Time Into Micro-Workouts
7 min read
Claude Code Notch Notifications on Mac: See When Claude Is Done Without Watching the Terminal
7 min read
Claude Code Tips and Tricks: 12 Ways to Use Claude Code Effectively
8 min read
Claude Code Multiple Sessions: How to Run Agents in Parallel Without Losing Track
6 min read
A Claude Code Workflow That Doesn't Involve Watching the Terminal
5 min read
Claude Code Hooks: A Practical Guide to Automating Your Agent Workflow
7 min read
Claude Code Auto Mode: Fewer Permission Prompts Without Living Dangerously
7 min read
Claude Code Subagents: How to Delegate Work to Specialized Agents
7 min read
Claude Code Context Management: Treat the Context Window Like a Budget
6 min read
Per-Subagent Model Selection: Route the Grunt Work Down, Keep the Judgment Up Top
7 min read
Skills and Plugins: How to Teach Claude Code Your Way of Working
7 min read
Claude Code Background Tasks: Run Long Commands Without Blocking Your Session
6 min read
Codex CLI Notifications: How to Get a Ding When Codex Is Done or Needs Input
7 min read
Cursor Notification When Done: Every Way to Get Notified When Cursor Finishes
6 min read
Claude Code Notifications: How to Get Notified When Claude Code Finishes or Needs Your Input
6 min read
Want to Be Notified When Claude Responds? How Claude Notifications Work on Web, Desktop, and Mobile
5 min read
Claude Code Notification Scripts: Copy-Paste Recipes for Every Platform
6 min read
Get a Ding the Moment Codex Needs Your Response
6 min read
Get Notified the Moment Claude Code Is Waiting for Your Input
6 min read
“Notifications Are Turned Off for Claude” — Here Is the Fix
6 min read
Codex Sound When Done: Make Codex CLI Play a Sound When It Finishes
6 min read
terminal-notifier + Claude Code: Native macOS Alerts When Your Agent Finishes
6 min read
Gemini CLI Notifications: How to Get a Sound or Alert When Gemini Finishes
6 min read
Get Claude Code Notifications on Your Phone
6 min read
Claude Code Remote Control, Explained
7 min read
preferredNotifChannel: Claude Code's Built-In Notification Setting
6 min read
Claude Code Notifications in tmux and Over SSH
7 min read
Claude Code Effort Levels: Why Your Setting Keeps Getting Ignored
8 min read
Codex vs Claude Code Notifications: How Each One Tells You It Is Done
8 min read
Claude Code Notifications Not Working: A Diagnostic Checklist
10 min read
Claude Code Notifications Inside Your Editor's Terminal
7 min read
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS Explained
7 min read
CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP Explained
8 min read
Cursor Alerts Explained: Every Alert Cursor Raises, and How to Control Them
7 min read
Claude Code Environment Variables: The Groups That Actually Matter
10 min read
Claude Code Notifications on WSL and Windows
9 min read
Claude Code Checkpoints and /rewind
8 min read
Claude Remote Control: How It Works, Turning It Off, and Auto Mode
7 min read
Claude Code /loop: Poll a Deploy, Babysit a PR, and Get Told When It's Done
8 min read
Setting Up NotchFit With OpenAI Codex CLI: Hooks, $notchfit-plan, and the Daily Flow
7 min read
Claude Mods Explained: What the New Plugin Layer Can Do, and How to Turn On 'You Should Know'
9 min read
NotchFit vs Mac Break Reminder Apps: A Clock or a Signal From Your Coding Agent?
8 min read
Claude Code Headless Mode: Running claude -p in Scripts and CI, and the Three Signals That It Finished
10 min read
Building a Movement Habit at a Desk: Use the Agent Run as the Cue, One Set as the Unit, and Streaks Carefully
8 min read
Claude Code MCP Servers Explained: Adding Servers, Choosing a Scope, Handling Secrets, and Why Long Tool Calls Go to the Background
10 min read
/notchfit:plan Explained: How Claude Code or Codex Writes a Weekly Workout Plan the Notch Can Actually Run
8 min read
Claude Code Spinner Verbs Explained: What “Pondering” and “Brewing” Mean, How to Change Them, and Why You Should Stop Watching the Spinner
7 min read
Why NotchFit's Done and Permission Alerts Wait Until Your Set Ends, When That Costs You, and How to Turn the Workout Off
7 min read
How to Resume a Claude Code Session: --continue vs --resume, Naming Sessions, the Session Picker, Branching, and What Comes Back
9 min read
NotchFit on a Mac Without a Notch: How Pill Mode Works on Mac mini, iMac, Mac Studio and a MacBook With the Lid Closed
6 min read
How to Run a Claude Code Session in the Background: /background, claude --bg, Agent View, and Getting Back to It
9 min read
What a Notch App Can See: NotchFit's Local-First Design, What the Claude Code and Codex Hooks Send, and What Stays on Your Mac
7 min read
Why Codex CLI Asks for Permission Every Time, and How to Tune the Sandbox and Approval Policy Without Going Full Access
8 min read
What to Do While Claude Code or Codex Works: A Simple Protocol for the Two-to-Twenty-Minute Gap in Every Agent Run
7 min read
Is It Possible to Get a Notification When Claude Code or Codex Hits a Reset? Yes for Claude Code: the quota_auto_resume Hooks, Explained
8 min read
What a MacBook Notch App Can Actually Do: The Five Kinds of Notch Utility, Their Trade-offs, and Where NotchFit Fits
7 min read
How to Make MCP Servers Not Take Up as Much Context in Claude Code: Tool Search, alwaysLoad, Scopes and Output Caps
8 min read
The notchfit Command Line: Drive Your Workout, Read Status as JSON, Validate Plans and Test the Notch Without Leaving the Terminal
7 min read
How to Audit MCP Tool Calls Made by Claude Code: A Five-Minute Hook Audit Log, OpenTelemetry Tool Events, and the Transcript for Investigations
9 min read
Exercise Snacks: What the Research Actually Says About One-Minute Vigorous Breaks, What It Does Not, and How NotchFit's Agent-Run Sets Compare
8 min read
How Long Until a Claude Code MCP Tool Call Times Out? The Four Timers (Startup, Two-Minute Backgrounding, Idle, Wall-Clock), Their Defaults, and Which One to Change
8 min read
Sitting Too Long as a Developer: The Posture Problems Coding Agents Made Worse, What the Research Says About Breaking Up Sitting, and How NotchFit Turns an Agent Run Into the Break
8 min read
Claude Code .mcp.json Explained: Where Project-Scoped MCP Servers Are Read From, What Happens in Subfolders and Monorepos, and Why a Committed Server Shows Pending Approval
8 min read
Standing Desk Exercises for Developers: Why Standing Still Is Not the Goal, Eight Movements That Fit a Thirty-Second Agent Run, and How NotchFit Cues Them From the Notch
8 min read
The claude mcp Command Reference: add Syntax by Transport, What --scope local, project and user Actually Mean, add-json and add-from-claude-desktop, list, get, remove, login and serve
9 min read
Your First Week With NotchFit: Install and Simulate, Run Real Tasks, Write a Smaller Plan Than You Want, Tune the Alerts, Survive the First Skipped Day, and Decide What Stays
8 min read
How to Stop a Running Claude Code Task: Esc vs Ctrl+C, Background Tasks, Subagents, and Disconnecting Remote Control
8 min read
Pomodoro vs Agent-Driven Breaks: Timing Movement to Claude Code and Codex Runs Instead of a Timer
7 min read
Claude Desktop MCP Configuration: claude_desktop_config.json, Logs, Extensions, and the Difference From Claude Code
9 min read
The 20-20-20 Rule for Developers: Eye Strain, the Evidence, and Agent Runs as the Cue
8 min read
Claude Agent SDK + MCP Servers: mcpServers, allowedTools, Status Checks and Auth
9 min read
Discreet Desk Exercises for an Open-Plan Office While Claude Code Runs
7 min read
claude remote-control Server Mode: Run Claude Code as a Session Server
9 min read
Wrist and Forearm Stretches for Developers: A 60-Second Routine for Every Claude Code Run
7 min read
Neck and Shoulder Stretches for Developers: A 90-Second Routine Between Agent Runs
7 min read