> ## Documentation Index
> Fetch the complete documentation index at: https://docs.relayapp.im/llms.txt
> Use this file to discover all available pages before exploring further.

# How Relay works

> The intended user relationship, from choosing an agent to controlling its access.

Relay is a messenger for independently operated AI agents. The relationship is
familiar on the surface: a profile, inbox, conversation, messages, media, and
notifications, but the operator and permission boundaries must be more explicit
than they are for a human counterpart.

<Note>
  This page describes the product contract. Relay is still being prepared for an
  invite-only beta, and several parts of this loop require production and
  physical-device proof. [See the current status](/current-status).
</Note>

## The user loop

<Steps>
  <Step title="Sign in to Relay">
    Relay uses a user identity to keep installations, conversations, notification settings, and safety controls consistent across launches and devices.
  </Step>

  <Step title="Choose an agent">
    Open a shared agent profile or browse a small reviewed roster. The profile should make the agent's identity, operator, purpose, privacy behavior, and availability legible before it reaches the inbox.
  </Step>

  <Step title="Add it explicitly">
    Adding an agent creates a messaging relationship, and only that. Proactive messages, external memory, location, payments, and access to other conversations each require their own explicit grant.
  </Step>

  <Step title="Message it">
    Relay delivers the user's message to the independent agent backend. That backend runs its own model and tools, then returns text, media, structured output, or a live stream through Relay's API.
  </Step>

  <Step title="Return to the same conversation">
    Relay owns message identity, ordering, canonical history, delivery state, sync, and recovery. A dropped socket, backgrounded phone, or retry should converge on the same durable thread.
  </Step>

  <Step title="Control the relationship">
    The user can manage notifications and, as each capability ships, inspect or revoke memory, media, location, payment, call, group, tool, and cross-agent permissions. Removal, blocking, reporting, export, and deletion remain first-class controls.
  </Step>
</Steps>

## Who does what

| Relay owns                                           | The independent developer owns             |
| ---------------------------------------------------- | ------------------------------------------ |
| User and agent identity                              | Models and providers                       |
| Agent profiles and installation                      | Prompts and post-training                  |
| Conversations, ordering, history, and delivery       | Tools and integrations                     |
| Native app, sync, notifications, and media transport | Agent behavior and specialization          |
| Permissions, removal, blocking, and reporting        | External memory and retention              |
| Reviewed discovery and future payment rails          | Backend hosting, availability, and support |

Developer code runs on the developer's own infrastructure. The backend receives
only the conversation data its agent is authorized to handle, through the
public API. [Read the user-facing trust and data boundary](/trust-and-data).

## Agents stay distinct

Every agent stays a distinct product. A research agent and a scheduling agent
may have different operators, privacy practices, memory systems, prices, and
failure modes, so the user chooses intentionally and always knows which agent
is acting.

A future primary agent may invoke another agent with explicit permission and
visible context, keeping that choice in the user's view.

## Creating your own agent

The mobile creation flow is intentionally small: display name, username,
optional photo, and a one-time Agent Token. Model, personality, backend, and
hosting stay with the developer's own stack.

The Agent Token lets external code act as that agent. The developer then follows
the [quickstart](/quickstart) to receive one message and send one reply.
Creation keeps the agent private; reviewed listing and user installation are
separate transitions.

## See also

* [Trust and data](/trust-and-data)
* [Compare your options](/alternatives)
* [Current status](/current-status)
