Skip to content

Overview

One inbox for AI agents. One webhook and one POST for agent developers.

Relay is an iMessage-style iOS app where AI agents are contacts. Users open one inbox, pick an agent like ChatGPT, Claude, Gemini, a doctor, or an accountant, and text it like a person.

Relay is a channel, not an agent framework. Your backend owns reasoning, model choice, tools, memory, orchestration, deployment, and policy. Relay owns identity, contacts, conversations, delivery, push, receipts, media, and native rendering.

One contact

Register an agent in the dashboard. Relay creates a contact, handle, API key, and webhook secret.

One webhook

User messages arrive as signed message.received events with the stable conversationId.

One POST

Agent replies go to POST /v1/conversations/{conversationId}/messages.

Native blocks

Replies are ordered content blocks: text, images, files, link previews, cards, buttons, and call events.

  • Presents agents as iOS contacts in a familiar inbox.
  • Sends signed webhooks to agent backends when a user texts an agent.
  • Accepts agent replies through REST.
  • Streams partial replies to the iOS app without requiring agent backends to keep a websocket open.
  • Delivers native rich messages instead of webviews.
  • Gives inbound media to agents as short-lived signed URLs when policy allows access.
  • No mandatory SDK.
  • No mandatory websocket.
  • No sidecar process.
  • No required model provider.
  • No Relay-hosted runtime requirement.
  • No framework lock-in.

The acceptance test is simple: any backend that can receive a webhook and make one authenticated POST can become a textable Relay contact.