Remote-control your whole Pane workspace from your phone
Claude Code has a built-in feature called Remote Control. You turn it on for a session running on your computer, and the Claude app on your phone, or claude.ai in any browser, drives that session. The code runs on your machine. The conversation, including the files and diffs Claude shows you, is stored on Anthropic's servers. There are three ways to enable it:
/remote-control # inside a session that's already open (short form: /rc)
claude --remote-control # start a fresh session with it on (short form: --rc)
claude remote-control # server mode: your machine appears as a device in the appPane is a desktop app that runs coding agents side by side. Each task gets a pane: a workspace on its own branch in its own folder. Inside a pane are panels, the tabs where an agent's terminal, the diff view, and the editor live. Pane also has one tab that sits outside every pane: Pane Chat, an agent whose job is to run the other panes. It can run on Claude Code or Codex; this page needs it on Claude Code, because Remote Control is a Claude Code feature. Turn Remote Control on in that one session and your phone talks to the agent that manages everything else.
What you'll see on the phone is a chat. If you want your terminals and diffs on the phone, that's a different feature, Remote Pane, which runs Pane's daemon on the host machine and shows the Pane UI in your phone's browser. You can use both at once. First, what you get without Pane, straight from Anthropic's docs.
what native remote control gives you
From the Remote Control and mobile pages, as of September 2026:
- → One session, every surface. Send messages from your terminal, browser, and phone interchangeably. The transcript and any subagents stay in sync.
- → New sessions from the phone, in server mode. Since the week of August 17, 2026, a machine running
claude remote-controlshows up as a device card in the Code tab. Tap it, pick a directory, and a session starts there.--spawn worktreegives each session its own git worktree, and capacity defaults to 32 sessions per server. - → Push notifications. Two rows in
/config, named "Push when Claude decides" and "Push when actions required" in Anthropic's push notification docs. You can also writenotify me when the tests finishin a prompt. - → Questions wait for you. Claude Code keeps permission prompts and questions open until you answer from any connected device.
- → Queues through sleep and network drops. Messages, prompts, and status updates queue while the connection rebuilds, then deliver once the machine is back online. The machine still has to be awake for the agents to make progress.
- → Outbound only. Per the security section, the local session makes outbound HTTPS requests and never opens an inbound port. Requirements: Pro, Max, Team, or Enterprise. API keys don't work.
Two things it doesn't give you. It only drives Claude Code, so a Codex, Aider, or Goose process is out of reach. And each session is its own chat in the app: Anthropic's limitations say that outside server mode each Claude Code process accepts one remote session, and server mode's extra sessions each appear as a separate conversation. Start several sessions and you open several chats to find out how they're doing.
and codex?
Codex's equivalent is called Remote. It pairs the ChatGPT mobile app with the ChatGPT desktop app on a Mac or Windows PC, and Codex runs the task on that computer. From the phone you can start tasks, follow progress, send new instructions, approve requested commands, and inspect diffs. The host is the desktop app, so a Codex session in a terminal isn't reachable this way.
The Codex repo does ship experimental codex remote-control start and pair commands. As of September 2026 their README says the lifecycle "may change while the remote-management flow is still being developed", and an open issue asks for CLI pairing to match Claude Code. So a Codex pane inside Pane can't be phone-driven the Codex-native way today. It can be driven through Pane Chat, which is the next section.
| Question | Claude Code Remote Control | Codex Remote | Remote Control on Pane Chat |
|---|---|---|---|
| What does the phone talk to? | A Claude Code session in your terminal | The ChatGPT desktop app on your computer | Pane Chat, a Claude Code terminal session inside Pane |
| Does it reach a terminal session, with no desktop-app host? | Yes | Not supported today; the CLI commands are experimental | Yes, Pane Chat is a terminal session |
| Which agents can you steer? | Claude Code | Codex | Any terminal agent in a pane: Claude Code, Codex, Aider, Goose, custom |
| Can you start new work from the phone? | Server mode: a new Claude Code session in a directory or worktree | A new Codex task on a connected computer | A new pane on its own branch, with any agent |
| One place that shows everything running? | No, one chat per session | No, one chat per task | Yes, Pane Chat watches every pane |
give your phone the session that runs the others
Pane is built on real terminals, so Remote Control works in any pane that runs Claude Code. Turn it on in one worker pane and you can drive that one agent, the same as in a plain terminal. Turning it on in Pane Chat is what changes things. Pane launches Pane Chat as claude --dangerously-skip-permissions (the command is in Pane's CLI contract) with one prompt: "Use the pane-orchestrator skill and initialize yourself as Pane Chat." That flag means Pane Chat never gets a permission prompt before a tool call. Everything about how it behaves comes from the skill file, which Pane generates into your Pane data directory. The skill tells it to:
- → Create panes and start agents in them with
runpane panes create. One command makes the branch and folder, starts the agent, and sends its first prompt. - → Watch every pane with
runpane watch --follow, a stream from Pane's daemon with one line per event. READY means an agent finished a turn. BLOCKED means it's waiting on a person. STUCK means text is sitting in its input box unsent. The stream runs as a background task, and each delivery wakes Pane Chat and replays its whole context, so Pane Chat arms it with opt-in cadence flags: a READY only counts once the agent has stayed quiet for three minutes, routine lines arrive in one batch every ten minutes, and a BLOCKED pane still surfaces within thirty seconds. Those flags are what keep an overnight run affordable. They're documented under runpane watch. - → Read and act. When a pane finishes a turn, Pane Chat reads the agent's panel with
runpane panels screenand sends the next instruction withrunpane panels submit. When a pane is BLOCKED, it tells you instead. - → Report. One line per piece of work: issue or PR URL, state, checks, review count, blocker, next action. That report is what shows up on your phone.
- → Stop at hard stops. Before merge, deploy, release, publishing, version changes, destructive changes, deleting data, or work you didn't ask for, it ends its turn with a question instead of running the command, and waits for you to grant that exact step. This is an instruction the model follows. Pane doesn't enforce it with a permission system.
- → Recover the watcher. If the event stream exits with an error or prints a WATCH ERROR line, Pane Chat restarts it once. Silence alone doesn't count; the heartbeat is filtered out so it can't wake Pane Chat. If the stream dies again, it files a report with
runpane doctor --reportand tells you.
Every command above is in the runpane CLI reference. It's the same Pane Chat you talk to at your desk, reached through the Claude app.
four things you can do from your phone
Setup: type /remote-control Pane Chat into the Pane Chat tab (the words after the command are the session name you'll see in the app), then scan the QR code it prints with your phone's camera, or find the session under Code in the Claude app. The full steps, including push notifications and keeping the machine awake, are in Pane's Remote Control docs. After that:
1. ask for status
You type "status". Pane Chat lists your panes with runpane panes list, reads the screen of any panel that changed, and answers with one line per piece of work. Ask "what did I finish today?" and it reads branches, PRs, and agent logs as well as pane names.
2. start a new pane on a repo
You type "start a pane on the website repo with Codex, plan the fix for issue 161, stop before editing". Pane Chat knows your repos from runpane repos list, so name the repo the way it appears in Pane. It runs runpane panes create, which makes the branch and folder, starts Codex, and sends the prompt. Then it waits for the agent to be ready before it tells you the pane is running. Panes an agent creates open in the background, so your desk view doesn't jump.
3. unblock a pane
An agent in a pane asks a question and stops. The event stream says BLOCKED. Pane Chat reads that panel and forwards the question to you. You answer in one line. It types your answer into the panel and confirms the agent picked it back up. The same thing happens when Pane Chat reaches a hard stop of its own: it asks, and you grant that exact step or you don't.
4. get told when the PR opens
You type "notify me when the PR is open", with "Push when Claude decides" turned on in /config. Pane Chat stays on watch. The agent in the implementation pane pushes the branch and opens the PR. Pane Chat sees that pane finish, ends its turn with the report, and Claude Code sends the push with the PR URL.
what happened one evening in a backpack
Here's an evening from Pane Chat's own transcript and the Mac's power log, September 13, 2026. At 4:38 PM the MacBook went into a backpack, lid closed, on battery, with a long unattended run in progress, and it slept. A closed MacBook on battery isn't off: the power log shows it waking for 45 to 136 seconds every five to fifteen minutes. In one of those wakes the worker pane's Claude Code couldn't reach Anthropic's API, its review subagent stalled, and its turn ended with "Your computer went to sleep mid-response" and ENOTFOUND on its screen. Pane's daemon logged that as watcher lines, but Pane Chat is a Claude Code session too, and it needs the same API to act on anything. The backpack was in transit, so the wakes had no Wi-Fi it knew.
At 7:14 PM, during a 136-second wake with home Wi-Fi in range, the watcher lines that had queued since 4:38 reached Pane Chat. It read the worker's panel, saw the sleep and ENOTFOUND errors, and sent the worker a resume message: a plain-language instruction to pick up from its last unfinished step. No person was involved. The skill file described above didn't yet say to do that; Pane Chat decided on its own, inside that one wake window, using the same move it already makes every day (typing into a pane) and within the same hard stops.
The push notifications reached my phone around 7:29 PM. I opened the lid at 7:39 PM and plugged in. My whole contribution was reading them. Recovery here means the worker got its resume message and picked back up; the run only ran at full speed after 7:39, once the machine was awake and on power. A closed MacBook on battery is the slowest way to run agents.
A merged PR makes that resume a standard behavior instead of something Pane Chat has to decide on its own: it resumes panes whose turn died from a sleep or network error, capped at three per pane per hour and never for a pane that's waiting on a person. It merged in September 2026.
limits you should know
- → The machine has to be awake to make progress. Quit Pane or close the tab and the session shows as offline within seconds. Recommended: plugged in, lid open, automatic sleep off. On Windows and Linux, set the power plan the same way. Lid closed on a charger needs sleep disabled on the power-adapter profile; the docs page has the command.
- → The transcript lives on Anthropic's servers and includes the file contents, diffs, and command output Claude showed you. Execution stays local. Read the data usage policy before using this on a repo that can't leave the building.
- → Hard stops are instructions. Pane Chat runs with permissions skipped. The skill tells it to stop before merge and deploy, and in practice it does, but no permission prompt stands between it and your shell.
- → You talk to Pane Chat only. The phone can't address a worker pane directly, and it can't show terminals or diffs. Remote Pane covers that.
- → Pane Chat must be on Claude Code. The Codex toggle works at the desk, but there's no Codex-native phone path for a terminal session today.
- → Pane is free and open source (AGPL-3.0). Remote Control needs a claude.ai plan; Pane itself doesn't.
frequently asked questions
Next: set it up in the docs, read how Pane Chat coordinates work, or see the Remote Pane phone post for the other route.
Last updated September 13, 2026