ShiftStage

Run Claude Code from your iPhone

Claude Code works for minutes at a time, then stops to ask. If you are not at the desk, the work waits. Here is how to keep it moving from the phone.

The three options

OptionWhat the phone getsSetup
Claude Code Remote ControlThe conversation of one Claude Code session, through Anthropic's APIBuilt into Claude Code: claude remote-control
SSH + tmux + TailscaleThe raw terminal, everything as textA VPN on both devices, Remote Login, keys, an SSH app, tmux
ShiftStageEvery session, questions as buttons, the diff, files, git, processesAn agent on the Mac and one pairing, no VPN

If you only ever need the conversation of the session you already started, Remote Control is the shortest path. If you live in the terminal and do not mind the setup, the SSH route is free and works with any server. The rest of this guide is about the third option.

What it looks like

You hand Claude Code a task on the Mac — or start the session from the phone — and leave. When it stops to ask, the question lands on the phone with the command it wants to run and its risk named; the options become buttons. One tap, and it is back at work. When it is done, you read the real diff — syntax colour, changes marked inside the line — stage what deserves to land, commit and push.

On an Apple Watch, low-risk answers are a tap, medium ones a turn of the crown, and high-risk ones stay on the phone.

Set it up once

  1. Install the agent on the Mac. A signed, notarised app from our open Homebrew tap. It shares only the folders you name.
    brew install --cask shiftstage/shiftstage/shiftstage-agent
  2. Install the app on the iPhone from the App Store.
  3. Pair them. Scan the code on the Mac's screen and confirm the same words on both devices. No account. The first pairing needs both on the same network.

That is the whole setup: no VPN, no port forwarding, no SSH keys. On the same Wi-Fi the phone talks to the Mac directly; away from home the connection goes peer to peer, or through a relay that forwards only end-to-end encrypted bytes.

Start Claude Code from the phone

The agent finds claude on your PATH without configuration. Start a session in any folder you shared, watch it, answer it, archive it. Several sessions run at once, and they keep running when the app goes to the background. Your Claude Code runs with your own config and subscription: ShiftStage calls no model and sends nothing to us.

Running several sessions on one repository? Give each its own git worktree (git worktree add ../app-feature-x) so they do not edit the same files.

Keep the Mac awake

An agent on a sleeping Mac does nothing, and nothing can reach it — ShiftStage tells you the Mac is asleep instead of timing out. For a Mac that works while you are away, turn off system sleep and let it restart after a power cut:

sudo pmset -a sleep 0 disksleep 0

and enable "Start up automatically after a power failure" in System Settings. The display can still sleep.

Get it

The Mac agent: download page — one Homebrew command or a notarised disk image. The iPhone app: App Store. Free forever for one Mac on your own network, no account; $7.99 a month or $69.99 a year to reach it from anywhere.

More guides: all guides.