# What Reemoat is, and how it works

Reemoat is open-source, self-hosted remote control for AI coding agents. A
daemon on a Linux or macOS machine you own runs Claude Code, Codex, OpenCode,
Kimi Code, Grok Build and Cursor as long-lived sessions, and one app on your
laptop or phone supervises them through a relay that cannot read what it
carries.

**[Install](/install/)**

## The three parts

Every part is open source under AGPL-3.0-only, and none of it needs an account
on reemoat.com.

- **The daemon.** Runs on each machine the agents work on, as your own user.
  It starts the agent CLIs over the
  [Agent Client Protocol](https://agentclientprotocol.com/) (ACP), one git
  worktree per session, and keeps each session's transcript on that machine.
- **The control plane and its relay.** Runs on a server: your own, or one
  whose operator you trust. It holds accounts, machines and grants, signs
  short-lived tokens scoped to one machine, and passes ciphertext between the
  app and the daemon.
- **The app.** Runs on macOS, Windows, Linux, Android and iOS. It shows every
  machine and every session, and is where you answer what an agent asks. It
  is a native app: there is no browser client.

For Reemoat, self-hosted means the daemon runs on a machine you operate, and
the control plane and its relay can too. Anthropic's
[Self-hosted environments](https://code.claude.com/docs/en/self-hosted-environments)
for Claude Code are something else: runners in an organisation's network for
Claude Code's cloud sessions, where "The control plane remains
Anthropic-hosted".

![A demonstration of the Reemoat app on a computer, with invented sessions: two
machines on the left, a list of eight sessions from Claude Code, Codex, OpenCode
and Kimi Code, one of them waiting for an answer, and a Claude Code session open
in the middle of a task, running its tests.](/assets/app-sessions-1400.webp)

## How a session reaches you

![Your server, where your agents run, opens an end-to-end encrypted connection
out to a public relay. The relay cannot read what it carries; it only passes it
on, to your phone and your laptop.](/assets/relay.svg)

1. The daemon on your machine dials out to a public relay, so nothing on your
   router has to be opened.
2. The app reaches the daemon through that relay, and the two speak an
   end-to-end encrypted channel: the relay can't read what it carries.
3. Sessions live on that machine, each in its own git worktree, so a closed
   lid or a dropped connection does not stop them.

Each agent asks under its own vendor's rules, not Reemoat's: Cursor, for one,
edits files inside the session's folder without asking. A request holds its
place until you open the app. The encrypted channel ends at the daemon: from
there the agent sends its model vendor the prompts and the code it reads, as it
does from your terminal.
[Who can read what](/security/#who-can-read-what) covers every party,
including the operator of a control plane.

## Reemoat in brief

| Fact | Detail |
|---|---|
| Agents | Claude Code, Codex, OpenCode, Kimi Code, Grok Build and Cursor |
| Agent accounts | The ones you already have: each agent's own sign-in, or an API key; Codex needs its sign-in, a key alone does not start it. Claude Code and OpenCode can also be pointed at OpenRouter |
| Where the agents run | Your own machine: a Linux server, a box under the desk or a Mac. Linux needs systemd; x86_64 or arm64; with git |
| The app | macOS, Windows, Linux, Android and iOS; no browser client |
| Sessions | One git worktree each, in a git repository; they keep running with the app closed. On a Mac that uses the app's own daemon, quitting the app stops them |
| Agents messaging each other | A session can message another session, on the same machine or on another machine of yours on the same control plane; between machines the messages are end-to-end encrypted. On by default since 0.12.0, and a switch turns it off |
| If the control plane is down | Sessions already running keep running. Nobody can sign in, get a new token or add a machine, and no remote machine can be reached until the control plane is back |
| Encryption | Noise_IK, end to end; the relay carries only ciphertext |
| Network | The machine dials out: no open port, no VPN |
| Notifications | None: no push, no email, no bot |
| Sandbox | None: an agent runs as your own user |
| Licence | Open source, AGPL-3.0-only |
| Price | Free. Reemoat resells no model time; you pay each agent's vendor as you already do |
| Maturity | Pre-1.0, one maintainer |

## Who it is for

Reemoat fits if:

- you have a long-running coding task you want to start and walk away from;
- you have a Linux or macOS machine of your own, and are content to let an
  agent operate it as you;
- you already pay for Claude Code, Codex, OpenCode, Kimi Code, Grok Build or
  Cursor, or hold an OpenRouter key;
- you would rather keep the repository and the credentials on your own
  hardware.

## When this is the wrong tool

- You want the agent kept away from the rest of the machine. There is no
  sandbox: [what is accepted](/security/#what-is-accepted-and-not-protected).
- You need to be told when a session finishes or blocks. Nothing notifies you.
- You want to work from a browser. There is no browser client.
- The machine for the agents runs Windows. The daemon runs on Linux and macOS
  only, though the app runs on Windows too.
- You use one agent and its vendor's own remote covers you:
  [the options, side by side](/compare/).

## Who makes it

Reemoat is made by one person and is pre-1.0. The source, the issues and every
release are on [GitHub](https://github.com/rends-east/reemoat). Only the latest
release and `main` are supported.

| Contact | How |
|---|---|
| Email | <mailto:info@reemoat.com> |
| Telegram | [@rends_east](https://t.me/rends_east) |
| A bug, or a wrong fact on this site | [Open an issue](https://github.com/rends-east/reemoat/issues) |
| A vulnerability | Privately, as [Reporting a vulnerability](/security/#reporting-a-vulnerability) describes |

## In the repository

- [README](https://github.com/rends-east/reemoat/blob/main/README.md)
- [HTTP API](https://github.com/rends-east/reemoat/blob/main/docs/API.md)
- [Self-hosting](https://github.com/rends-east/reemoat/blob/main/deploy/README.md)
- [Plugins](https://github.com/rends-east/reemoat/blob/main/docs/PLUGINS.md)
- [Changelog](https://github.com/rends-east/reemoat/blob/main/CHANGELOG.md)

## Next

- [Install](/install/)
- [Security](/security/)
- [Compare](/compare/)
