Your Mac stays on and holds all the work. Your laptop and phone are windows onto it. Most of this is one setting; the rest is making sure the Mac is still awake, online, and running when you come back to it.
Any device can see and drive a running session. Nothing to install, no VPN, no file sync, no scripts.
A session lives only while its process is running and the Mac is awake and online. Quit the app, or lose the network for about ten minutes, and it ends.
This machine does everything. It runs the app, holds your files, and keeps every session alive. The other two devices need almost nothing by comparison.
Download the Claude desktop app from claude.ai/download, install it, and sign in. Claude Code comes with it, so there is nothing separate to install.
Open the Code tab and start a session using the Local environment. Not Cloud, and not SSH: those run somewhere else, and every setting below would be applied to the wrong machine. Point it at a real project folder, something like ~/Projects/test rather than your home folder, and accept the trust prompt when it appears. Remote Control will not start in a folder you have not trusted.
This is a brand new Mac. Check whether the Xcode command line tools and git are installed, and install them if they are missing. If you hit a password prompt or a dialog you cannot dismiss, stop and tell me exactly what to click, because those are mine to do. Then confirm you can read and write a file in this folder.
Add "remoteControlAtStartup": true at the top level of my ~/.claude/settings.json. Read the file first and preserve everything already in it, then confirm the result is valid JSON and show me what you changed.
Restart Claude Code so it picks the setting up. Then check that it actually worked, before going any further: start a session on the Mac and open claude.ai/code in a browser. The session should be listed, with a computer icon and a green dot.
Valid JSON is not proof. A plan, an organization policy, a sign-in problem, or an untrusted folder will each leave the session local-only, and nothing on the Mac will tell you. If it is not listed, work through the troubleshooting section at the end of this page.
By hand, and you will need your administrator password.
sudo pmset -a sleep 0 disksleep 0 womp 1 autorestart 1 and enter your password.Coming back by itself after a reboot costs you disk encryption. Decide deliberately, and know you can change your mind later.
Leave FileVault on and automatic login off. Everything on this page still works. The cost is that after any reboot the Mac sits at the login screen, unreachable, until someone types the password in person.
Pick this if the Mac lives anywhere you would not leave an unlocked laptop, or if your employer requires encryption.
Turn FileVault off in Privacy & Security, then set Users & Groups › Automatically log in as to your account. The Mac returns to a working desktop on its own after a power cut or an overnight update.
Only when the machine is physically secure, such as a locked office. Its disk is readable by anyone who walks away with it.
Either way, remember what is on that disk: ~/.claude stores your session transcripts in plain text, and those can contain file contents, command output, and anything a tool happened to print. An unencrypted always-on Mac is holding all of it.
If the automatic-login menu is greyed out even with FileVault off, your Mac is managed by your employer or your account signs in with an Apple Account password. Neither can be worked around here.
Neither mode brings your sessions back. Remote Control only registers sessions that are open, so once the Mac is up again:
Nothing prompts you to do this. When a session is missing from your phone, this is almost always why.
Memory: 16GB minimum, 24GB better.
Install the Claude desktop app and sign in with the same account. That on its own is enough: the Mac’s sessions appear in the sidebar grouped by folder, and they are fully interactive, so you are typing into a session executing on the other machine.
Optionally, turn the same setting on here as well. It does nothing for the Mac’s sessions. It exposes sessions hosted on the laptop, which is only useful if you sometimes start something here and want to reach it from your phone.
Add "remoteControlAtStartup": true at the top level of my ~/.claude/settings.json. Read the file first and preserve everything already in it, then confirm the result is valid JSON and show me what you changed.
Sessions you start on the laptop go unreachable the moment you close the lid, and come back when it wakes. They end for good when you shut down or restart. Either way you cannot reach them from your phone while the laptop is shut, which is the whole reason to keep work on the Mac.
Almost nothing to do here, because the phone runs no sessions of its own.
Starting a new session from the phone is a different thing. It asks you to connect GitHub and install the Claude Code app into your repositories, then runs in the cloud from a fresh clone on its own claude/session-… branch. That works fine, and the session appears on your laptop too, so you can carry on there. Just know it is not touching your Mac: anything uncommitted, or outside that repository, will not be there.
The phone is for steering rather than building: read what happened, answer a question, approve a direction, then pick it back up at a real keyboard.
The Mac keeps the files it needs to reopen a past session for 30 days, then deletes them. Raise that on the Mac:
Set "cleanupPeriodDays": 365 at the top level of my ~/.claude/settings.json so the local session files on this Mac are kept for a year instead of 30 days. Read the file first, preserve everything already in it, and confirm the result is valid JSON.
This covers the resume files on this Mac only. It does not change what Anthropic keeps on its own servers, so it is not a guarantee that a year-old session will still open from your phone. Do it early regardless: the old files are swept when Claude Code starts, so anything already expired may disappear the next time you launch it. A year of history is also a year of plaintext on that disk, which is worth weighing against the security mode you chose in step 01.
Sessions do not need this. It is for the times you want the files themselves from the laptop, or a dev server running on the Mac. Tailscale puts both machines on a private network with no ports opened to the internet.
On both machines, and all by hand, because every step needs an approval only you can give:
Then, on the Mac only, turn on System Settings › General › Sharing › File Sharing and add just the folders you actually need. The default is easy to leave wider than you meant. To find the Mac’s name on the network:
Find the Tailscale command line tool on this Mac. It is usually inside the app bundle rather than on my PATH, so give me the full path if it isn't found directly. Then run its status command and tell me this machine's name on the tailnet.
Now connect from the laptop. In Finder choose Go › Connect to Server, enter smb:// followed by that name, and when Finder asks how to connect choose Registered User. The name and password it wants are the Mac’s own macOS account, not your Claude or Tailscale login. Then pick the folder or volume you want.
A dev server bound to 127.0.0.1 will not answer over Tailscale. Bind it to the Mac’s Tailscale address and reach it at http://<mac-name>:<port>. Binding to 0.0.0.0 also works, but that exposes it to every network the Mac is on, not just the tailnet. Tailscale also has iPhone and Android apps, but the phone does not need to be on the network. It reaches your sessions through Claude, not through the Mac.
Close the lid and anything hosted there is unreachable until it wakes; shut down and it is gone. Anything you want to pick up from another device should be started on the Mac.
Keep ~/.claude out of Syncthing, Dropbox, and iCloud. Its session logs are append-only and its registry is keyed by process ID, so two machines writing produces conflicts and nonsense.
An overnight OS update ends anything mid-run. The conversations survive and reopen from the sidebar where they left off, but they are not reachable from your other devices again until you do reopen them.
The usual failure is discovering the Mac is unreachable at the worst moment. A daily reachability check turns that into something you fixed on Tuesday.
CLAUDE_CODE_USE_BEDROCK and CLAUDE_CODE_USE_VERTEX.env block of a settings.json file, not just your shell.Commands like claude auth login only exist if you also installed the terminal CLI separately. The desktop app does not put a claude command on your PATH. Anthropic’s own reference is at code.claude.com/docs/en/remote-control.
None of this applies on Pro or Max. There is no organization console on those plans, so the admin link below will tell you that you do not have access to organization settings. That is expected, and nothing needs enabling.
Anything shown as a prompt can be pasted straight into Claude Code, which will make the change for you. Everything else needs an administrator password, a System Settings toggle, or an approval dialog that no tool can click on your behalf.