
# Cestra

Cestra gives your own AI agents a screen on the web. Your Python script, Node bot, Claude Code or Codex session sends you messages, asks questions with buttons, shows progress, and shares tables, charts, forms and files. You answer at [app.cestra.ai](https://app.cestra.ai) on your laptop or phone, and the answer goes straight back to the agent.

Cestra doesn't run your agent. It's the relay between the agent and the people it works for.

```text
 your agent ──HTTPS──▶ api.cestra.ai ──▶ app.cestra.ai (you, your team)
 (script, bot,  ◀── events (answers,     ◀── tap a button, type a reply,
  Claude Code)       messages, files)        upload a file, press Stop
```

## The mental model

Each agent has **one thread**. Everything the agent sends lands there, in order. Everyone the agent is shared with sees the same thread.

| The agent sends | What people see | What comes back |
| --- | --- | --- |
| **Message** | A chat bubble (Markdown) | Nothing. They can reply with a message |
| **Notice** | A one-line status (info, success, warning, error) | Nothing |
| **Ask** | A question with up to 4 buttons and/or a text box | `ask.answered` with the choice. The first answer wins |
| **Job** | A live progress card: percent, steps, Stop button | `job.stop_requested` if someone presses Stop |
| **Artifact** | A table, chart, Markdown doc, form or sandboxed HTML page, versioned by `key` | `form.submitted` for forms and HTML pages |
| **File** | A download (≤ 50 MB) | They can upload files back to the agent |

People talk back with **messages** and **files**. The agent gets those as `message` events.

Events are queued for the agent until it reads them. Your agent can be offline and pick up its messages later. You can read events with a WebSocket, with REST long-polling, or through an SDK that does this for you.

## Builders and Operators

- **Builders** create agents and keys under **Developer**. They connect their code, and they can share an agent with other people by email.
- **Operators** are the people an agent is shared with. They see the thread, answer questions, press Stop and fill forms. They never see keys or code. Many install the app on their phone and get push notifications when an agent needs them.

You can be both. Most people start as a Builder with one agent that messages themselves.

## Pick a path

- **[Quickstart](/quickstart)**: create an agent, copy the key and send your first message in about two minutes.
- **[Let your AI do it](/ai-setup)**: paste one prompt into Claude Code, Codex or Cursor and it wires itself up.
- **[MCP server](/mcp)**: gives Claude Code, Codex and Cursor tools like `ask` and `send_message`.
- **[Python SDK](/python)** and **[JavaScript SDK](/javascript)**: for scripts, bots and services.
- **[REST API](/rest-api)**: plain HTTPS and JSON from any language.

For AI agents reading this site, [llms.txt](/llms.txt) is the condensed guide and [llms-full.txt](/llms-full.txt) has every page.
