Relay is three verbs, and they read the same in every client you connect. A Code is the seal on a package of context: short, shareable, spent when it is received.
Someone sent you context — a session, a brief, a handoff. Say the Code and it opens where you are.
Relay Q7MH4VPackage what this session knows and hand it to a person, a team, or your own next session in another tool.
Relay this to nathanSeal a resumable Code at the end of a session and pick up in any client tomorrow, warm.
Package this sessionCreating an account asks who needs this context, how many, and what you are here to do — then shows the plan that fits, with Free beside it. Receiving is always free, on any plan, forever.
No card to start. Export is always free. A lapse never locks your context. Thirty days' notice before anything changes.
What this mock isThe public door per client — the P1 pattern from the plan-pick concept. One renderer, one client object, clients; on the live site each is its own path (relayctx.com/claude, /cursor, …) and the switch above does not exist.
Where the steps come fromrelay-platform src/relay/resources_static.py — the connect resource, updated 2026-09-10 — and relay-app connect-catalog.ts for the one-click links. The live page renders from GET /resource/connect, never from a copy; this mock is the copy that proves the shape.
PostureStealth: noindex until launch. One server URL everywhere, https://mcp.relayctx.com — never a per-client path variant. The plan line per client mirrors Working with Relay; where that table has no row yet, the page says so rather than guessing.
Next doorThe account button lands on the plan-pick intake (standalone · in the shell). Drawn, not built.