# Remote control for coding agents, compared

There are three ways to keep a coding agent working while you are away from the
keyboard: the vendor's own remote, a terminal you reach over SSH, or a separate
app that reaches your machine through a relay. If you use one agent and its
vendor ships a remote, start there; Reemoat is the third kind: open-source,
self-hosted software for several agents on a machine you own.

## Side by side

| Question | Claude Code Remote Control | Codex remote connections | kimi rc | opencode web (OpenCode 1) | tmux over SSH | Reemoat |
|---|---|---|---|---|---|---|
| Agents | Claude Code | Codex | Kimi Code | OpenCode | Any terminal agent | Claude Code, Codex, OpenCode, Kimi Code, Grok Build and Cursor |
| You need | A Pro, Max, Team or Enterprise plan; no API keys | Codex access in ChatGPT; no API key | A paid Kimi membership | No plan named | SSH access | Each agent's own account or provider key |
| Agent runs on | Your machine, kept on | A Mac or Windows PC running the ChatGPT desktop app | Your machine, awake and online; one Remote Control instance per machine | Your machine | The SSH host | Your Linux or macOS machine |
| In your hand | A browser or the Claude mobile app | The ChatGPT mobile app, or the desktop app on another computer | A browser | A browser | An SSH client | The app; no browser client |
| Connection | Outbound HTTPS through the Anthropic API | QR pairing, then a relay | The Kimi relay service | Direct to the server; no relay described | SSH, on your own path | Outbound to a relay; Noise_IK end to end |
| Who can read the session | Transcript "is stored on Anthropic servers" | not stated | Session sync "Via the Kimi service"; its access not stated | Without a password, "the server will be unsecured" | Whoever can log in to the host | Not the relay; the control plane's operator is trusted |
| Notifications | Mobile push | Yes | not stated | not stated | None unless scripted | None |
| Headless Linux server | On "a remote machine", inside `tmux` or `screen` | As an SSH host behind the desktop app. The [CLI reference](https://learn.chatgpt.com/docs/developer-commands?surface=cli) also lists `codex remote-control`, marked Experimental, without saying what it pairs with | not stated | The [CLI reference](https://opencode.ai/docs/cli/) calls it "a headless OpenCode server" | Yes | Yes; needs `loginctl enable-linger` |
| Source | [code.claude.com](https://code.claude.com/docs/en/remote-control) | [learn.chatgpt.com](https://learn.chatgpt.com/docs/remote-connections) | [kimi.com](https://www.kimi.com/code/docs/en/kimi-code-cli/guides/remote-control.html) | [opencode.ai](https://opencode.ai/docs/web/) | no vendor | [v0.13.0](https://github.com/rends-east/reemoat/tree/v0.13.0) |

> **In every option, Reemoat included**, the agent still sends prompts and code
> to its model provider; the "who can read" row covers the remote-control path
> only. "not stated" means the page does not say. None of the vendor pages in
> the Source row says anything about a Linux host; the Headless Linux server
> row gives what each vendor says about a remote or headless machine.

Checked on 12 October 2026 against each vendor's own pages, linked on this
page. Nothing comes from a third party. Written by
[Reemoat's author](/about/#who-makes-it); where another option is the better
choice, this page says so. Other separate apps exist; this page covers only
Reemoat. If a cell is wrong or out of date, open an issue at
<https://github.com/rends-east/reemoat/issues> and link the vendor's page.

## Grok Build and Cursor

Grok Build and Cursor, the other two agents Reemoat runs, have no column in
the side-by-side table. xAI's documentation describes no remote for Grok Build:

| Grok Build | What xAI says |
|---|---|
| A remote | xAI's [documentation for Grok Build](https://docs.x.ai/build/overview) describes no way to control a running terminal session from another device |
| Sharing | A [`/share` command](https://docs.x.ai/build/modes-and-commands): "Share the current session via URL" |
| Sync and relay | [A network address](https://docs.x.ai/build/enterprise), `code.grok.com`, for "Remote session sync, sharing, WebSocket relay"; with it blocked, "Sessions stay local-only; share links unavailable" |
| The name | xAI also uses the name Grok Build for [an app builder](https://x.ai/news/grok-build-for-everyone) in Grok on the web, iOS and Android; Reemoat runs the terminal agent |

Cursor ships a remote of its own, Remote Control, and two of Cursor's pages
describe it differently:

| Question | Cursor's changelog, 6 October 2026 | Cursor's documentation |
|---|---|---|
| Agent runs on | "It keeps running on your computer, and the app connects to it." | "The agent loop runs in Cursor's cloud, and every tool call (terminal commands, file edits, tests, and git) runs on your computer." |
| You need | "Remote control doesn't require cloud agents to work." | "Remote Control is available on Start, Pro, Pro+, Ultra, Teams, and Enterprise plans for users with Cloud Agents access." |
| In your hand | "Remote control is available today in the Cursor iOS app." | An iPhone or iPad; "Android is planned." |
| Your computer | "Your computer needs to stay on and online for remote control to work." | "Your computer must stay awake and online because tool calls run on it." |
| Headless Linux server | not stated | A "Remote SSH workspace" is supported; Linux is not named |
| Source | [cursor.com/changelog](https://cursor.com/changelog/remote-control-local-agents) | [cursor.com/docs](https://cursor.com/docs/cloud-agent/mobile#remote-control) |

## Pick by situation

| Pick | When |
|---|---|
| Claude Code Remote Control | Only Claude Code, on a Pro, Max, Team or Enterprise plan |
| Codex remote connections | Codex in the ChatGPT desktop app |
| kimi rc | Only Kimi Code, and a browser is enough |
| opencode web, with a password set | OpenCode 1 on your own network |
| opencode pair | OpenCode 2; with `--remote`, from outside your network |
| Cursor's Remote Control | Only Cursor, in its desktop app, with an iPhone or iPad in your hand |
| tmux over SSH | A terminal is enough and you want no third party |
| Claude Code Remote Control or Codex remote connections | You must be told when a run ends or blocks |
| Reemoat | Several of the six agents on your own Linux or macOS machine, in one app |

Reemoat and Claude Code Remote Control both keep the agent on your machine and
open no inbound port. The differences are laid out
[row by row](/compare/claude-code-remote-control/).

## What each page says

### Claude Code Remote Control

Anthropic's page: <https://code.claude.com/docs/en/remote-control>.

- Plan: "available on Pro, Max, Team, and Enterprise plans. API keys are not
  supported."
- Connection: "Your local Claude Code session makes outbound HTTPS requests only
  and never opens inbound ports on your machine."
- Session: "the session transcript, including your messages, Claude's responses,
  and tool activity, is stored on Anthropic servers."
- Notifications: "When Remote Control is active, Claude can send push
  notifications to your phone."

It also documents an optional git worktree per session and a sandboxing
setting; Reemoat has only the first.

### Codex remote connections

OpenAI's page: <https://learn.chatgpt.com/docs/remote-connections>.

- Host: "Remote access supports hosts running the ChatGPT desktop app on macOS
  and Windows."
- Connection: "A secure relay layer keeps trusted machines reachable across your
  authorized ChatGPT devices without exposing them directly to the public
  internet."
- Notifications: "Get notified when ChatGPT completes a task or needs your
  attention."
- Setup: "Mobile setup starts from the app; you can't set it up from the Codex
  CLI or IDE extension."

The page does not say who can read what the relay carries, and it names no
Linux host. OpenAI's [pricing page](https://learn.chatgpt.com/docs/pricing)
lists "Mobile remote control" for Plus, Pro, Business and Enterprise /
Education, and not for an API key.

OpenAI's
[CLI reference](https://learn.chatgpt.com/docs/developer-commands?surface=cli)
lists `codex remote-control`, with `start`, `stop` and `pair`, as Experimental:
"Run or manage remote control for the local app-server, or create a short-lived
pairing code." It says "Managed remote-control clients and SSH remote workflows
use these commands", and does not say what the code pairs with or name an
operating system. OpenAI's page for the
[ChatGPT desktop app for Linux](https://learn.chatgpt.com/docs/linux/linux-app),
which is in preview, does not mention remote connections.

### kimi rc

Kimi's page:
<https://www.kimi.com/code/docs/en/kimi-code-cli/guides/remote-control.html>.

- Plan: "Remote Control requires a paid membership and is not available to free
  users".
- Connection: "remote access goes through the Kimi relay service".
- Client: "Remote Control works in the browser."
- Access: "A remote device must log in with the same Kimi account as the machine
  to view and control sessions."
- Limits: "Each account currently supports up to about 3 devices." and "Only
  one Remote Control instance can run per machine."

The page mentions neither notifications nor encryption.

### opencode web

OpenCode's page for OpenCode 1: <https://opencode.ai/docs/web/>.

- Server: "This starts a local server on `127.0.0.1` with a random available
  port".
- Password: "If `OPENCODE_SERVER_PASSWORD` is not set, the server will be
  unsecured."

`--hostname 0.0.0.0` makes it reachable on your network. No relay is described,
so access from outside is yours to set up. The CLI reference at
<https://opencode.ai/docs/cli/> calls it "a headless OpenCode server with a web
interface".

### opencode pair

OpenCode's page for OpenCode 2: <https://opencode.ai/v2/docs/cli/web/>. The
documentation of OpenCode 2 lists no `opencode web` command; a browser is
signed in to the web interface with `opencode pair`.

- Password: the web interface is "available by default and password protected".
- Server: "By default the server runs on port 49374 and listens only on
  localhost."
- From outside: `opencode pair --remote` connects "from anywhere" through an
  OpenTunnel address. The first time, it warns "This will expose your OpenCode
  server to the internet." and adds "Traffic is end-to-end encrypted, and
  access requires your server password."

### tmux over SSH

No vendor. The agent runs in a `tmux` session on the host and you attach from
any SSH client. From outside your network you need your own path, such as
Tailscale. You get a terminal, not a phone interface, and no notification you
do not script.

### Reemoat

Source: the v0.13.0 tag, mainly
[SECURITY.md](https://github.com/rends-east/reemoat/blob/v0.13.0/SECURITY.md).

The relay "moves bytes it holds no key for". You sign in to a control plane,
and its operator is trusted completely. No sandbox: the agent runs as your OS
user. Nothing notifies you: no push, email or bot. No browser client. Licence:
AGPL-3.0-only.

## When this is the wrong tool

Reemoat is the wrong choice when:

- You need the agent isolated from your machine. There is no sandbox.
- You need to be paged. A blocked session waits until you open the app.
- You want a browser client. There is none.
- The machine that would run the agents is not Linux or macOS.
- You use one agent and its vendor's remote covers you.

## Next

- [Install](/install/)
- [Security](/security/)
- [Reemoat and Claude Code Remote Control](/compare/claude-code-remote-control/)
