Guide··14 min

How to Control Coding Agents From Your Phone: A Field Guide (November 2026)

Cloud agents, first-party remote control, companion apps and SSH: how each way of reaching Claude Code, Codex, Cursor, Copilot and Antigravity from a phone works, what it needs from your computer, and where it breaks.

Every major coding agent can now be reached from a phone. The options look alike in an app store. They differ in where the agent loop runs, where its tools run, and how its events reach you.

Flavio Copes published a useful tour of the tools earlier this month. This guide groups the options by architecture, checks first-party features against vendor documentation as of November 6, 2026, and covers the layers under the app: protocols, networks, power, phone operating systems and security.

Why this matters now

Agents now work long enough to outlast your attention. Anthropic’s study of real Claude Code usage (February 2026) found that most turns are short, the longest ones have grown substantially, and people intervene less often on hard tasks. METR’s time-horizon measurements point the same way: the length of task a frontier model can finish has kept doubling every few months.

Once an agent runs for half an hour without you, watching it is a waste and leaving it is a risk. It may stop on a question, wait for a permission, or finish while you are away. Remote access has a narrow job: answer, approve or deny, check the result, send the next task. The rest of this guide is about doing that reliably.

  1. 01

    Answer

  2. 02

    Approve or deny

  3. 03

    Check the result

  4. 04

    Send the next task

Three questions that sort every option

1

Where does the agent loop run?

The loop is the model-calling process that decides what to do next. It can run in a vendor’s cloud, on your computer, or, in Cursor’s Remote Control, in the vendor’s cloud while it drives your computer.

2

Where do the tools run?

Shell commands, file edits, tests, MCP servers and credentials. This decides whether the agent can use your local database, your signed-in CLIs and your uncommitted work.

3

How do events reach the phone?

A mirrored terminal, a structured event stream, a chat message, or a push notification. This decides how an approval looks on a small screen, and whether you hear about it after the app is closed.

The answers give four families.

The four architectures

Architecture

Same phone. Four different places the work can run.

Read the loop and the tools before the brand. Cursor’s Remote Control is the exception inside family 02: the loop is in Cursor’s cloud, and the tools stay on your computer.

01

Laptop can sleep

Cloud agent

Phone
task
Vendor VM
Loop
Vendor cloud
Tools
Vendor sandbox

A contained change on a repo that is already pushed.

02

Computer stays awake

First-party remote

Phone
outbound
Your computer
Loop
Your computer
Tools
Your computer

The session needs local files, tools, or a signed-in CLI. Cursor is the exception: its loop runs in Cursor’s cloud, and the tool calls stay on your computer.

03

Computer stays awake

Companion or gateway

Phone
relay
Your computer
Loop
Your computer
Tools
Your computer

Several agents, one client. Check the wrapper first.

04

Host stays up

Terminal over SSH

Phone
ssh
tmux session
Loop
Your host
Tools
Your host

Any CLI agent. You own the network and the screen.

A closed laptop only works for family 01. Families 02, 03 and 04 need the host awake and online.

1. Cloud agents

You describe a task. The vendor clones your repository into a virtual machine and works there, usually ending with a branch or pull request. Your laptop can be closed. The VM only has the repository plus what you configure for it. Uncommitted changes, local services, private networks and tools you installed by hand are not there. Cline’s documentation states the limit plainly: rules, skills, MCP servers and connectors are not loaded in its cloud sessions.

Cloud agents fit work that is small enough to review as a diff, and whose evidence the agent can produce in the sandbox: tests, screenshots, logs, a preview link.

Cline Cloud AgentsThe documented limit: rules, skills, MCP servers and connectors stay behind.

2. First-party remote control of a local session

The agent keeps running on your machine and the vendor relays its events to a phone app or web page. The well-designed versions are outbound-only. Claude Code’s Remote Control documentation says the local session “makes outbound HTTPS requests only and never opens inbound ports on your machine,” registers with the Anthropic API and polls for work. You get your files, MCP servers and signed-in tools, and the machine does not listen on the internet.

Two costs come with it. The computer must be awake, online and running the agent process. And the relay sees the session: Anthropic notes that while Remote Control is connected, the transcript, including messages and tool activity, is stored on its servers so devices stay in sync.

3. Third-party companions and chat gateways

Independent apps wrap one or more agents on your computer and give you a single mobile client. Some ship native apps with their own relay (Happy, HAPI). Some serve a web interface from your machine (CloudCLI, VibeTunnel, OpenCode’s opencode web). Some route the agent into a messaging app (OpenClaw through Telegram or Discord, or Claude Code’s own Channels). The appeal is one place for several agents. The risks are the wrapper’s maintenance, its security model, and whether it keeps up when the agent changes.

4. A terminal over SSH

SSH from a phone terminal such as Termius or Blink Shell, attach to tmux, and talk to the agent directly. Nothing depends on a vendor feature. The network path, the life of the session, and reading a desktop TUI on a phone all depend on you.

First-party options, verified November 6, 2026

Checked against vendor documentation and changelogs. Plans and rollout change quickly. Open the linked page before you rely on a detail.

Claude Code

Cloud

Cloud sessions at claude.ai/code, the Code tab in the Claude app, or claude --cloud

Your computer

claude remote-control, claude --rc, or /rc in a running session

Pro, Max, Ultra, Team, Enterprise. Not API keys. Team and Enterprise need an admin toggle.

Codex

Cloud

Codex cloud at chatgpt.com/codex

Your computer

ChatGPT mobile paired with the ChatGPT desktop app by QR code. Experimental codex remote-control in the open-source CLI.

Remote access went GA on iOS and Android in June 2026. Codex moved into the ChatGPT desktop app in July.

Cursor

Cloud

Cloud Agents in the iOS app or at cursor.com/agents

Your computer

Remote Control (/remote-control, Cursor 3.9.8+). The loop runs in Cursor’s cloud. Tool calls run on your computer.

Native app is iOS only. Android gets a web app for cloud agents. Remote Control pairing from iOS since October 6.

GitHub Copilot

Cloud

Cloud agent from GitHub Mobile. Generally available on paid plans since October 28.

Your computer

copilot --remote or /remote on. /keep-alive stops the machine sleeping.

Approve permissions, edit plans and answer questions from the phone. Live Activities on iOS.

Antigravity

Cloud

Remote agents in cloud projects, rolling out since November 3.

Your computer

agy remote-control start runs a background service. Dashboard at antigravity.google.com.

Jules goes read-only on November 11 and shuts down December 31, 2026. Gemini CLI stopped serving consumer accounts in June.

Amp

Cloud

Hosted orbs that pause when idle.

Your computer

Runners: amp --no-tui on your machine.

iOS (TestFlight), Android APK and Mac apps, all beta.

Three changes since mid-October are easy to miss. Google is folding Jules into Antigravity, so anyone using Jules from a phone should export their data and move. Claude’s Dispatch is a limited beta that is not open to new users, so it is no longer a general answer for Pro or Max subscribers. Antigravity and Copilot both gained cloud execution, which narrows the gap between the first two architectures.

Cloud-first products round out the field: Cline Cloud Agents in a mobile browser, Devin through a Slack mention, and app builders such as Replit, Lovable, v0 and Manus, which own the whole project environment instead of attaching to your sessions.

Mirrored terminals vs structured events

This is the difference that matters most on a phone, and the one tool lists rarely mention.

On the phone

A desktop terminal, or a request the phone can render.

Structured events can wait, travel as a push, and lay a diff out for the screen you are holding.

Mirrored terminal

$ ssh mini
diff --git a/auth.ts
@@ -40,6 +40,18 @@
-  return session
+  return await refresh(
+    session,
+    { force: true })
Allow this command? [y/n]

Characters drawn for a desktop width. You answer with a key. What you missed lives in scrollback.

Structured event

Claude Code · approval

Run this command?

npm test

DenyAllow once

A typed request. It can wait for you, arrive as a push, and be replayed after a reconnect.

When you SSH in and attach to a terminal agent, a permission prompt is text, a diff arrives already wrapped to the host’s width, and images appear only if the terminal supports an image protocol.

Modern agents also expose structured event streams. Claude Code emits newline-delimited JSON with --output-format stream-json, and the Agent SDK exposes a canUseTool callback for permission decisions. Codex’s app-server speaks JSON-RPC: when a command needs approval, the server sends a request and the turn pauses until the client answers allow or deny. Zed’s Agent Client Protocol standardises the same idea with session/request_permission and options such as allow once, allow always and reject.

Wrappers that scrape a terminal tend to break when the agent updates its interface. First-party mobile apps feel different because they render the event, not the characters.

ACP now lists more than forty agents and has a stable registry, but its remote transports are still on the roadmap, and Claude Code and Codex connect through adapters. Today it is an editor protocol, not a way to reach your agent from a phone. Agent Client Protocol.

The network layer

Outbound-only beats an open port

Path

Dial out, or listen and hope the door is locked.

Outbound only

Your computer
443
Relay

No firewall change. Nothing for a scanner to find. The relay sees what passes through it.

A listening port

Network
open
Web UI

As safe as its authentication and the path in front of it. OpenCode binds to 127.0.0.1 by default and calls itself unsecured without OPENCODE_SERVER_PASSWORD.

A private network is necessary and still not sufficient. The cryptominer incident below happened on one.

If you run anything that listens, reach it through a private network. Tailscale builds a WireGuard mesh with NAT traversal and falls back to relays that cannot decrypt traffic. Cloudflare Tunnel is outbound-only too, with Access policies in front of the service.

SSH, mosh and Eternal Terminal

Plain SSH dies with its TCP connection. On a phone that means every switch from Wi-Fi to cellular and every long lock. Mosh runs over UDP, roams between networks and echoes keystrokes locally before the server confirms them. It needs UDP ports 60000–61000 and only syncs the visible screen. Eternal Terminal stays on TCP, survives IP changes and keeps scrollback.

Either way, run the agent inside tmux or zellij. The multiplexer keeps the agent alive when your connection drops. It does not keep anything alive across a reboot.

Proxies and VPNs on the host

Relay-based tools need a clean outbound path from the host. Claude Code’s Remote Control requires the Anthropic API on port 443, and Codex users have reported phones stuck on “Waiting for desktop” behind a proxy or VPN. If pairing works on one network and not another, check the host’s proxy first.

Keeping the host awake

Architectures 2, 3 and 4 fail the same way: the computer goes to sleep. Claude Code’s interactive sessions reconnect after sleep or a network drop, but claude remote-control in server mode gives up after about ten minutes offline and exits. Codex, Cursor and Copilot offer keep-awake switches. Cursor’s only works while plugged in, and its documentation is blunt that tool calls cannot run while the computer is asleep or offline.

macOS laptop

Battery → Options → Prevent automatic sleeping on power adapter when the display is off.

Only on power. Closing the lid still sleeps unless an external display is attached.

macOS, one task

caffeinate -i for the length of a command.

Ends when the command ends. Good for one long run.

macOS desktop

Wake for network access (pmset womp).

Wakes on traffic aimed at the Mac. It does not keep a run awake.

Windows

powercfg /change standby-timeout-ac 0. Check blockers with powercfg /requests.

Modern Standby keeps the network up only for some scenarios.

This is why many people who work this way run agents on a machine that never travels — a Mac mini on a shelf, a desktop, or a cloud server — and treat the laptop as just another client.

The phone side: notifications are the interface

While the phone is locked

The app is suspended. The push is the product.

iOS gives a background app about thirty seconds, then networking stops. Android Doze cuts the network until a high-priority push briefly restores it.

WebSockets cannot run in the background. No mobile client can watch your agent continuously.

What reaches you is a push from Apple’s APNs or Google’s Firebase Cloud Messaging. The setup is only as good as what triggers those pushes, and what they say.

Lock Screen

Claude Code

Needs a decision before it continues.

Copilot · Live Activity

Still running · up to 8 hours

Claude Code lets you choose Push when Claude decides and Push when actions required in /config, and it skips pushes while you are active in the terminal. Copilot and Cursor add iOS Live Activities, which show progress on the Lock Screen for up to eight hours.

A raw SSH session has no push channel unless you add one. That is the practical reason people move from a terminal to a structured client. Android Doze is the platform rule underneath the Android half of this.

Security: what changes when the agent is unattended

Exposed control panels are a real pattern

In early 2026, internet scans found tens of thousands of self-hosted OpenClaw agent control panels reachable from the open internet. In July, an attacker installed a cryptominer on machines running an unauthenticated OpenCode web server bound to all interfaces — reachable over a private VPN mesh, not the public internet. An agent interface is a remote shell with a chat box on top.

Prompt injection gets easier when you are away

An agent that reads issues, web pages or pull requests can be steered by text inside them. 2026 brought several documented cases in agent CI integrations, including secrets read through instructions hidden in an HTML comment. Simon Willison’s lethal trifecta is the useful test. Remote work tempts you to loosen approvals so the agent stops waiting. Loosen them for the environment, not for convenience.

Private data
Untrusted content
A way to send data out

Use permission modes deliberately

Claude Code

From a question you answer, to a mode the docs reserve for a VM.

The Claude app does not offer bypass for cloud sessions. Codex pairs a sandbox mode with an approval policy.

  1. 01

    Manual

    You approve

  2. 02

    Accept edits

    Edits proceed

  3. 03

    Plan

    It proposes

  4. 04

    Auto

    A classifier blocks risky actions

  5. 05

    Bypass

    Isolated container or VM

A reasonable remote default: auto or accept-edits inside the project, network access only when the task needs it, and anything destructive or outward-facing left as a question you answer from the phone. See permission modes.

Read encryption claims to the end

Relays see what passes through them unless content is end-to-end encrypted. Some companions encrypt session content so the relay stores ciphertext. Check every path. Notifications, titles, file names and metadata are where the claim usually stops. One popular open-source companion has an open issue reporting that push notification text, including session summaries, is sent to a push service unencrypted.

The third-party landscape is volatile

Vibe Kanban

Community project

Company shut down, April 2026

Terragon

Code open-sourced

Shut down, February 2026

Omnara

Broader platform

Left the mobile-wrapper shape

Happy

Native apps, encrypted relay, several agents

Active

HAPI

Local hub. Native, web and Telegram clients

Active

CloudCLI

Web interface over local sessions

Active

VibeTunnel

Browser terminal for your Mac

Active

Before a workflow depends on a third-party tool, check three things.

  1. 1

    How it talks to the agent

    A structured protocol, or a scrape of the terminal.

  2. 2

    What the relay can read

    Session content, and also notification text, titles and file names.

  3. 3

    Whether someone is still shipping

    Fixes have to land when the agent changes its interface.

Choosing: start from the task, not the app

A contained fix on a pushed repo with tests

Use your agent’s cloud option. Close the laptop.

Local services, uncommitted work, or a signed-in tool

Use that agent’s first-party remote control, on a host that stays awake.

Several agents, one place to follow them

A multi-agent companion with a structured protocol and push notifications, after you have read its security model.

A CLI with no mobile client, or a remote Linux server

Tailscale, plus mosh or Eternal Terminal, plus tmux.

The task starts in team chat

A chat-native agent, such as Devin or Claude in Slack, or a messaging gateway you control.

Flavio’s advice holds: start with the mobile interface of the agent you already use, and make the first remote task a small fix in a project you know well. Coding agents from your phone.

Test it before you need it

  1. 1

    Lock the phone for ten minutes

    Did a notification arrive? Is the session where you left it?

  2. 2

    Switch Wi-Fi and cellular

    Change networks mid-task, then change back.

  3. 3

    Sleep the computer

    Close the laptop lid, or let the desktop sleep. See what the phone shows, and whether the session resumes.

  4. 4

    Answer a permission from the phone

    The command should be readable before you approve it.

  5. 5

    Review a real diff

    If you cannot judge it on the phone, ask for a smaller change, a summary, or a test result.

  6. 6

    Confirm the checkout

    Repository, branch and environment. A cloud checkout should contain the commit you expect.

  7. 7

    Check the meter you will actually hit

    Subscription limits, cloud sandbox time and API usage are billed in different places.

Sources

About this guide: Nexting builds a remote-control app for coding agents, in the third category above. We left it out of the comparisons so the guide describes the field rather than our product, and we used the same criteria — architecture, network path, notifications and security — that we apply to our own work.
Agent Remote ControlCoding AgentsClaude CodeCodexCursorGuide