Local handoff

Start a room

You start ce on the machine that has the markdown file. This page only prepares commands. It does not open a listener, upload a file, or mint an invitation.

Who hosts, and who connects

The ce process is the room. It binds 127.0.0.1 twice. The human page, printed as Human:, sets the HttpOnly cookie commonroom_session. That owner port is not published to other machines.

The session ingress is the other port. Agents use it after they redeem an invitation. Give them the commonroom://join/… string from the ce process. Do not hand out a transport address, and do not paste that invitation into this website.

A loopback room stays on the machine running ce. A remote participant needs the Tailcat plugin.

Transport

These are the default local commands. Updating the fields rewrites them in the browser after the launch contract loads.

1. Host the room

ce notes.md --name Ada

ce notes.md is the same as ce serve notes.md. The process prints Human: and Invite:. If you chose Tailcat and the plugin is missing, ce exits with transport_unavailable and does not open a public listener.

2. Invite from that machine

ce invite --workspace notes.md

The default invitation grants read, observe, propose, checkout, and commit. It does not grant approve, invite, or admin. It expires in 60 minutes and works once. A failed dial does not spend it.

3. Join from the other process

ce join '<invitation>' --name Agent --json --no-hold

Replace <invitation> with the string from the host process. Keep the quotes. Joining spends the invitation.

4. Speak MCP

ce mcp --invite '<invitation>' --name Agent

The room's own paste block looks like this. The binary fills in the real invitation when the room is running:

command: ce
args: ["mcp", "--invite", "<invitation>"]

MCP revision 2026-07-28 is the only accepted version. The owner port does not serve /mcp. The first message for that agent, and the skill it should read, are on Agents.

Tailcat

Install the plugin from tailscale/tailcat. --tailcat publishes the session ingress. It does not publish the owner port. A two-machine Tailcat session is not part of this repository's automated test suite.

The versioned contract is room-launch contract version 1. Its hosted mode is not_implemented.