CoralDocs

Servers

Agents on your SSH servers and dev containers, in the same notch.

Agents running on a server you reach over SSH, or in a dev container, show up in Coral like the ones on your Mac: same notch, same keys, with the server's name next to the folder, for example "dev-box · shop/web".

Add a server

  1. In the island menu, choose Servers…, then Add Server….
  2. Pick a host from your ~/.ssh/config, type user@host, or pick a running dev container.
  3. Check what Coral will change, then click Connect.

Coral uses your SSH config and keys, and connects without asking for a password, so the server needs key login (your ssh-agent or a key file). Connect to it once in Terminal first, so its host key is trusted.

What Coral changes on the server

  • ~/.coral/bin/coral-hook, the small program your agents' hooks run.
  • Coral's hooks in each agent it finds there: ~/.claude/settings.json, ~/.codex/hooks.json and config.toml, ~/.copilot/hooks/coral.json and ~/.config/opencode/plugins/coral.js. Each file is backed up before Coral changes it.

Remove… in the Servers window takes it all back off. If a dev container is rebuilt, Coral puts its hooks back.

How it connects

Coral keeps its own SSH connection to each server, with one private socket forwarded on it. It opens no ports. For a dev container, Coral uses docker exec instead.

Prompts, questions, done cards, Peek, messages to an idle agent and images all work as they do on your Mac. Show terminal opens the Mac tab where you're running ssh to that server.

When your Mac sleeps, the connection closes, and prompts on the server go back to its terminal.

Reach your iPhone while your Mac sleeps

Turn on Reach my iPhone when my Mac sleeps on a server's row, then confirm on your iPhone with Face ID. While your Mac is asleep, an agent on that server that needs you sends an alert to your iPhone, and you answer there.

  • The server gets its own keys. Your Mac's and iPhone's keys never leave them.
  • Encrypted end to end. Messages go through Coral's relay, which can't read them (see What the relay carries).
  • The same rules as your Mac. Answers need Face ID, risky commands still need the terminal, and "Always allow" isn't offered.

Turn the switch off, or remove the server on your iPhone, to stop it. It works for Linux servers over SSH, not dev containers, and holds prompts from Claude Code and Codex.

What works

  • Linux servers (x86-64 and ARM) over SSH, including over a Tailscale network.
  • Macs over SSH. Reaching your iPhone while your Mac sleeps is Linux only for now.
  • Dev containers running in Docker on your Mac.
  • Agents: Claude Code, Codex, Copilot CLI and OpenCode.

Not yet: Tailscale SSH (Tailscale's own SSH server), mosh, and Claude Desktop's SSH sessions.