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

> ## Agent Instructions
> To build and serve your own model, start at /deploy/development/quickstart and /deploy/development/overview. Deploying is the default path: reactor init scaffolds a workspace, reactor auth login authenticates, and reactor model deploy registers the model, publishes the release with the weights/ folder, and activates it on Reactor's GPUs, in one command from that workspace. Docker must be running, because the publish step builds the image locally. Bump model.version in reactor.yaml before redeploying a change, because a release that already has an image is reactivated as it is. Deployment access is granted per account, so contact team@reactor.inc if a deploy is refused. Every key in reactor.yaml is documented at /deploy/platform/reactor-yaml. Model code imports reactor_runtime; Python client code imports reactor_sdk. The runtime overview explains the model interface. Running the model on your own machine with reactor run is optional and needs a GPU you attach with --gpus; /deploy/development/local-testing covers that loop and pairs a complete brightness model with a Python client test in a separate brightness-test workspace.
> Reactor hosts multiple models, each with its own connect slug (modelName) and command/event schema. The catalog of every model — slug, typed SDK package, and links to its schema — is at /model-api-reference/overview. Some models expose one slug per experience (e.g. HappyOyster); always take the slug from the model's own pages, never guess it.
> Fastest path to a working app: `npx create-reactor-app my-app --model=<slug>` scaffolds a complete app with secure auth wired up. Typed TypeScript SDKs are published as @reactor-models/<model>; Python uses the base reactor-sdk package.
> Auth: exchange an API key (rk_...) for a JWT via POST https://api.reactor.inc/tokens from your server. Never put the API key in client-side code.
> Append .md to any docs URL for clean Markdown. Search these docs via the MCP server at https://docs.reactor.inc/mcp.

# All symbols

> Every name the Reactor Runtime exports, grouped by what it is for.

Everything below is importable from the top-level package:

```python theme={"theme":{"light":"github-light","dark":"github-dark-high-contrast"}}
from reactor_runtime import ReactorApp, InputState, Output, Video, event
```

The same names are also available under `reactor_runtime.interface`, but the top-level package is
the path to use.

## The app

| Symbol                                                           | Description                                 |
| ---------------------------------------------------------------- | ------------------------------------------- |
| [`ReactorApp`](/deploy/runtime-reference/reactorapp)             | The class you subclass to define a model    |
| [`StepOutcome`](/deploy/runtime-reference/stepoutcome)           | What `generate()` did on one step           |
| [`ApplicationError`](/deploy/runtime-reference/applicationerror) | Raise from `process_input()` to skip a step |

## State

| Symbol                                                 | Description                               |
| ------------------------------------------------------ | ----------------------------------------- |
| [`InputState`](/deploy/runtime-reference/inputstate)   | Base for the state a client can set       |
| [`InputField()`](/deploy/runtime-reference/inputfield) | Declare a field's default and constraints |
| [`FieldInfo`](/deploy/runtime-reference/fieldinfo)     | The resolved constraints of one field     |

## Commands

| Symbol                                                      | Description                                      |
| ----------------------------------------------------------- | ------------------------------------------------ |
| [`@event`](/deploy/runtime-reference/event)                 | Mark a method as the handler for a named command |
| [`Command`](/deploy/runtime-reference/command)              | Base for the generated command payload           |
| [`CommandError`](/deploy/runtime-reference/commanderror)    | Answer a caller with a failure                   |
| [`UploadedFile`](/deploy/runtime-reference/uploadedfile)    | A file a client sent, as bytes                   |
| [`@file_uploaded`](/deploy/runtime-reference/file-uploaded) | Receive a file sent outside any command          |

## Messages

| Symbol                                                     | Description                         |
| ---------------------------------------------------------- | ----------------------------------- |
| [`ModelMessage`](/deploy/runtime-reference/modelmessage)   | Base for a typed message to clients |
| [`MessageField()`](/deploy/runtime-reference/messagefield) | Declare a default and a description |

## Sessions and clients

| Symbol                                                          | Description                                   |
| --------------------------------------------------------------- | --------------------------------------------- |
| [`@session_started`](/deploy/runtime-reference/session-started) | Runs once when a session begins               |
| [`@session_ended`](/deploy/runtime-reference/session-ended)     | Runs once when a session ends                 |
| [`@connected`](/deploy/runtime-reference/connected)             | Runs each time a client connects              |
| [`@disconnected`](/deploy/runtime-reference/disconnected)       | Runs each time a client disconnects           |
| [`ClientInfo`](/deploy/runtime-reference/clientinfo)            | One client's identity, and messaging it alone |

## Outbound media

| Symbol                                                   | Description                                |
| -------------------------------------------------------- | ------------------------------------------ |
| [`Output`](/deploy/runtime-reference/output)             | Base for the tracks your model sends       |
| [`Video`](/deploy/runtime-reference/video)               | Declares a video track                     |
| [`Audio`](/deploy/runtime-reference/audio)               | Declares an audio track                    |
| [`Track`](/deploy/runtime-reference/track)               | The base both `Video` and `Audio` extend   |
| [`TrackPayload`](/deploy/runtime-reference/trackpayload) | Frames plus the metadata to send with them |
| [`Metadata`](/deploy/runtime-reference/metadata)         | What a frame's metadata can be             |
| [`OutputStream`](/deploy/runtime-reference/outputstream) | `self.output`, the handle onto playout     |

## Inbound media

| Symbol                                                   | Description                             |
| -------------------------------------------------------- | --------------------------------------- |
| [`MediaInput`](/deploy/runtime-reference/mediainput)     | Base for the tracks your model receives |
| [`InputFrame`](/deploy/runtime-reference/inputframe)     | One frame that arrived from a client    |
| [`InputBuffer`](/deploy/runtime-reference/inputbuffer)   | One inbound track's frames              |
| [`ReadMode`](/deploy/runtime-reference/readmode)         | Newest frames, or oldest                |
| [`BufferClosed`](/deploy/runtime-reference/bufferclosed) | Raised once a closed track is drained   |

## Helpers

| Symbol                                                             | Description                                  |
| ------------------------------------------------------------------ | -------------------------------------------- |
| [`get_weights_path()`](/deploy/runtime-reference/get-weights-path) | The directory the model's weights live under |
| [`get_logger()`](/deploy/runtime-reference/get-logger)             | A logger that carries the session id         |

## Renamed

These still import, with a deprecation warning.

| Old name          | Use instead                                                      |
| ----------------- | ---------------------------------------------------------------- |
| `ReactorModel`    | [`ReactorApp`](/deploy/runtime-reference/reactorapp)             |
| `ReactorPipeline` | [`ReactorApp`](/deploy/runtime-reference/reactorapp)             |
| `Input`           | [`MediaInput`](/deploy/runtime-reference/mediainput)             |
| `Idle`            | [`ApplicationError`](/deploy/runtime-reference/applicationerror) |
