Quick start

/collab shares your running session with other omp instances. Guests render the same session natively in their own TUI — streaming assistant text, tool-call cards, footer state (cwd, model, context %, cost), ctrl+o expansion, /dump — no terminal mirroring. Guests can prompt and interrupt the agent; the host machine runs the agent and all tools.

/collab

prints

Collab session started!
 • Join from another terminal: omp join "mgAYTZwEnpRQtca0CTgn-Q#gdJUbTovD94ofDaa8YvhY0-ty16w4fn8PgB6PLnoA30"
 • or any web browser: my.omp.sh/#mgAYTZwEnpRQtca0CTgn-Q#gdJUbTovD94ofDaa8YvhY0-ty16w4fn8PgB6PLnoA30

The browser line is click-to-join: the relay serves the web guest client at /, and the room id + key ride in the URL fragment. From another omp (any directory, any machine), either form works:

/join my.omp.sh/#mgAYTZwEnpRQtca0CTgn-Q#gdJU…

The guest’s previous session is restored on /leave (or when the host stops).

Commands

CommandEffect
/collabStart sharing (or re-print the link when already hosting)
/collab <relay>Start sharing through a specific relay (relay.example.com, ws://localhost:7475)
/collab viewPrint a read-only (view-only) link (starts sharing first if needed)
/collab statusShow link + participants
/collab stopStop sharing
/join <link>Join a shared session as a guest
/leaveLeave (guest) or stop sharing (host)
https://host[:port]/#<link>          → browser deep link (printed by /collab; /join accepts it too)
<roomId>#<key>                       → default relay (my.omp.sh)
host[:port]/r/<roomId>#<key>         → custom relay, wss:// inferred
ws://localhost:7475/r/<roomId>#<key> → plain ws, allowed for localhost only

The trailing fragment (#<key>) is the room secret, base64url-encoded, in one of two strengths:

  • Full link — 48 bytes: the 32-byte AES-256-GCM room key followed by a 16-byte write token. Grants prompting, interrupting, and subagent control.

  • View-only link — the bare 32-byte key, no write token. Grants live read access only. Pre-token links parse as view-only.

In the browser deep link, everything after the first # — room id and key — is a URL fragment: it never appears in any HTTP request, and neither secret is ever sent to the relay.

End-to-end encryption

Every session payload (entries, events, state, prompts) is sealed with AES-256-GCM before it touches the socket. The relay sees only:

  • room ids and connection counts,

  • opaque ciphertext frames and their sizes,

  • a 4-byte routing prefix (which guest a frame targets).

Possession of the link is the trust boundary: a full link reads and steers the session, a view-only link reads it. Share both like secrets.

Guest permission model

Two trust levels, enforced by the link itself — the host verifies the 16-byte write token at join and rejects writes from peers without it; they appear as read-only in the participants list, and the join notice says so.

Guests with a full link can:

  • read the entire session, including the back-transcript at join time,

  • prompt the agent — rendered with their name badge on every participant’s transcript; the LLM sees the prompt text verbatim, names are display-only,

  • interrupt the agent (Esc),

  • use the Agent Hub against the host’s subagents: live table and progress, chat, kill, revive, and transcript viewing fetched from the host on demand.

Guests with a view-only link can read everything live — back-transcript, streaming text, tool cards, subagent transcripts — but the host rejects prompting, interrupting, and agent control from them.

Everything that mutates the host session or machine is host-only: /model, /compact, /resume, /branch, bash (!), python ($), skills. Guests keep a small local allowlist (/dump, /export, /copy, /help, /hotkeys, /theme, /settings, /leave, /collab, /exit).

Known v1 limit: a turn already streaming when a guest joins becomes visible from its next message boundary.

Web client

The relay serves a standalone browser client at / for the same links — no omp install needed on the guest side. https://<relay>/#<link> loads the client and auto-connects from the fragment. It renders the live transcript (streaming text, thinking, tool cards), a subagent panel with on-demand transcripts, and a composer with the same guest powers: prompt, interrupt, hub actions. The client never talks to anything but the relay, and the key stays in the fragment.

Settings

| Setting | Default | Meaning | | -------------------- | ----------------- | ------------------------------------------------------ | --- | | collab.relayUrl | wss://my.omp.sh | Relay used by /collab when no relay is passed inline | | collab.displayName | OS username | Name shown to other participants | \n |

Ask Docs

AI assistant to help answer questions about the documentation. Answers are read-only and cite docs/source.

Hi! How can I help you with the documentation today? Answers are read-only and cite docs/source.

Ctrl+Enter to send