Reaching a Claude Code session on your Mac when you are away from the desk

A task is running on your Mac. It will take twenty minutes, maybe an hour, and somewhere in the middle it will stop and ask whether it may write outside the project directory. You are not at the desk. The machine sits there with a question on screen and nothing happens until you come back.

That is the problem "claude code remote" is usually being typed to solve, and it now has more than one answer. The answers differ in where the code runs, what stays available, and what happens when your laptop goes to sleep. Getting the difference right matters more than the setup steps, because picking the wrong one means either a session that cannot see your local files or a session that dies the moment you close the lid.

The two things people mean by remote

There are two separate features, and they are easy to confuse because both are reached from the same place: claude.ai/code in a browser, or the Code tab in the Claude app for iOS and Android.

Remote Control connects that interface to a Claude Code session running on your own machine. Claude keeps running locally the whole time. Your filesystem, your MCP servers, your tools, and your project configuration all stay available, and typing @ autocompletes file paths from your local project. The phone is a window into a session that lives on your Mac.

Cloud sessions run on cloud infrastructure, Anthropic-managed by default. Nothing of yours is involved except the repository, which has to be on GitHub. The session keeps going with your laptop closed because your laptop was never part of it.

A third path exists on Pro and Max plans: Dispatch, where you message a task in the Claude app and the Desktop app on your machine decides how to run it. It is the lowest-setup option and, like Remote Control, it needs your machine to stay on.

The decision comes down to one question. Does the work need your local machine? If the task needs a database only reachable from your laptop, a credential in your keychain, or an MCP server you configured locally, it needs Remote Control. If it is a change to a repository that lives on GitHub, a cloud session is less fragile.

Starting a Remote Control session

There are three ways in, and they behave differently enough to be worth stating plainly.

claude remote-control in your project directory starts a server. The process stays in your terminal waiting for connections, shows a session URL, and will display a QR code if you press the spacebar. The first time you run it, Claude Code explains what the feature does and asks for confirmation before starting.

claude --remote-control (or --rc) starts a normal interactive session that is also reachable remotely. You can keep typing locally while the session is available from your phone. This is the one most people want.

/remote-control inside a session you already have open carries the current conversation over. The task you started an hour ago comes with you.

Once a session is active, you connect by opening the session URL in any browser, scanning the QR code, or finding the session by name in the list at claude.ai/code or in the app's Code tab. Remote Control sessions appear with a computer icon and a green dot when they are online.

Requirements are worth checking before you plan around the feature. It works on Pro, Max, Team, and Enterprise plans. API keys are not supported, and neither are Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry. Pointing ANTHROPIC_BASE_URL at anything other than api.anthropic.com disables it. On Team and Enterprise, an Owner has to turn Remote Control on first, because it is off by default there. And you need to have run claude in the project directory at least once to accept the workspace trust dialog.

Turning it on for every session

Remote Control activates only when you ask for it, unless you turn on auto-connect. Running /config and setting Enable Remote Control for all sessions makes every interactive session register itself, so there is nothing to remember when a task turns out to be longer than expected. The same toggle exists in the Desktop app under Settings, and in the VS Code extension's command menu. In a settings file it is remoteControlAtStartup.

One safeguard is built into how that setting is read. A project or local settings file can turn auto-connect off, but a true committed to a repository is ignored, so no checked-in file can switch on Remote Control for everyone who clones it. Auto-connect also signs in with your own account, so sessions it starts appear only in your Claude apps.

With auto-connect on, each Claude Code process registers one session. Several terminals mean several sessions in the list. To serve many sessions from one process instead, use claude remote-control in server mode, which handles up to 32 concurrent sessions by default and can give each one its own git worktree.

What the connection actually does

The security shape of this is worth understanding, because the phrase "remote access to a work machine" sets off alarms for good reason.

Your local session makes outbound HTTPS requests only. It never opens an inbound port. When Remote Control starts, it registers with the Anthropic API and polls for work. When you connect from a phone, the server routes messages between the client and your local session over a streaming connection. All of it travels over TLS through the Anthropic API, the same transport as any other Claude Code session.

One detail deserves attention before you turn this on for sensitive work: while Remote Control is connected, the session transcript, including your messages, Claude's responses, and tool activity, is stored on Anthropic servers. That is what keeps the conversation in sync across devices and what lets a session recover from a network drop. Execution and filesystem access stay on your machine, and transcripts are retained under the published data usage policy. Organizations with Zero Data Retention requirements cannot enable Remote Control at all, and the disableRemoteControl setting turns it off entirely.

Team and Enterprise plans have a further layer in beta called Trusted Devices. With it on, every browser, phone, or desktop app used for Remote Control has to enroll its own credential, and the member's sign-in must be no more than 18 hours old. Instead of signing in daily, people confirm with Face ID, Touch ID, Windows Hello, or a passkey. Biometric checks run on the device through the operating system, and Anthropic stores only the device's public key and basic metadata.

Remote Control against cloud sessions

Remote Control Cloud session
Where Claude runs Your machine Cloud infrastructure
Local files, tools, MCP servers Available Not available
Laptop closed Session goes offline Keeps running
Repository requirement Any local directory Repository on GitHub
Setup Run one command Connect GitHub, configure environment
Plans Pro, Max, Team, Enterprise See plan availability

The honest summary is that they solve adjacent problems. Remote Control is for steering work that is already underway on your machine. Cloud sessions are for starting work without any local setup, on a repository you have not cloned, or several tasks in parallel.

If the machine will be off, the choice is made for you. Remote Control runs as a local process, so closing the terminal or quitting VS Code takes the session offline within seconds. If the machine merely sleeps, Claude Code reconnects when it comes back online.

Notifications, and the failure modes worth knowing

When Remote Control is active, Claude can push notifications to your phone. It decides when, typically after a long task finishes or when it needs a decision. You can also ask for one directly in a prompt: notify me when the tests finish. Two toggles in /config control this, one for proactive pushes and one for actions that require you. Beyond those, there is no per-event configuration.

Two platform details cause most of the "notifications never arrive" reports. On iOS, Focus modes and notification summaries can suppress or delay them. On Android, battery optimization delays delivery unless the Claude app is exempted. There is also a deliberate silence: Claude Code skips pushes while you are typing in or focused on the connected terminal, on the reasonable theory that you are already there.

Other behaviors that surprise people:

  • Some commands are local-only. /plugin and /resume run only in the terminal. Many others work from mobile with an argument instead of a picker, such as /model sonnet or /effort high. /mcp from the app returns a text summary of server status rather than opening the interactive list.
  • Permission modes are limited from the app. Remote Control sessions offer Manual, Accept edits, and Plan. You cannot select Bypass permissions from a phone in either Remote Control or a cloud session.
  • Stopping the server is recoverable. Press Ctrl+C on claude remote-control and the sessions stop responding, but they are not archived. Running the same command in the same directory brings them back, and this works for about four hours.
  • To survive an SSH disconnect, start the session inside tmux or screen. Otherwise the process ends with your shell.

What this does not fix

Remote Control answers one question well: how to respond to a session that is waiting for you. It does not change what happens after you answer.

Claude finishes, writes six files, and now someone has to look at them. On a phone that means the conversation transcript and a diff pane, which is enough to approve a permission prompt and not enough to judge whether the output is right. Back at the desk, checking the work means the usual circuit: a Finder window for the files, a terminal for the commands, an editor for the diff, and a preview app for anything that is not text.

That circuit is where the time actually goes for most people, and no remote feature touches it. A file manager with a built-in terminal collapses part of it, because the folder, the shell, and the agent transcript sit in the same window instead of three. The comparison with other file managers sets out where that differs from Finder, and the feature list covers which operations stay in one window.

What to change first

Run claude --remote-control on the next task you expect to take more than ten minutes, and turn on Push when actions required in /config so the permission prompt reaches your phone instead of waiting on an empty desk. That single change removes most of the dead time.

Then decide the other half deliberately: if reviewing the result means opening four windows every time, the bottleneck is at your desk, not away from it. Atriens is one way to keep the folder, the terminal, and the session in a single window, including from an iPhone while the Mac keeps working.

Frequently asked questions

Does Remote Control work if my Mac goes to sleep?

Yes, with a gap. Remote Control runs as a local process, so while the machine is asleep the session is unreachable. Claude Code reconnects automatically when the machine comes back online, and it queues messages, permission prompts, and status updates while the connection is rebuilding. If you need work to continue with the laptop closed, use a cloud session instead.

Can I use Remote Control with an API key instead of a subscription?

No. It requires a claude.ai account on a Pro, Max, Team, or Enterprise plan. If an API key or token is in use, the session reports that Remote Control requires claude.ai subscription auth and names the credential it found, such as ANTHROPIC_API_KEY. Long-lived tokens from claude setup-token are also rejected, because they can only make model requests.

Is my code sent to Anthropic when I use Remote Control?

Code execution and filesystem access stay on your machine. However, while the session is connected, the transcript, including your messages, Claude's responses, and tool activity, is stored on Anthropic servers so the conversation stays in sync across devices. Retention follows the published data usage policy, and organizations with Zero Data Retention requirements cannot enable the feature.

Why does my organization not show the Remote Control option?

On Team and Enterprise plans it is off by default until an Owner enables it in the Claude Code admin settings. Other causes include managed settings that set disableRemoteControl, a sign-in still attached to an older Team organization, or a HIPAA configuration that is incompatible with the feature. Running claude doctor shows which eligibility check failed.

Back to all posts