- You open a session and
connect()over WebRTC - You send commands to control what the model does (e.g.
set_prompt,send_image,move) - The model emits media tracks (video, audio) and messages (structured JSON events)
- You close the session with
disconnect()
Reactor base class implements this shared protocol. Sessions, auth, file uploads, tracks, and events work the same regardless of which model you’re driving. A session can also be shared by multiple clients; see Sessions.
What does differ is the schema: which commands a model accepts, what their parameters mean, what events it emits, and any model-specific state rules.
Per-model command and event reference
Each model publishes its own command and event schema. For the full reference of a specific model (every command, every parameter, every event), see the Model API Reference.Driving a model: typed SDK vs base class
Two ways to talk to a model:- A typed SDK for the model (e.g.
HeliosModel): adds named methods that mirror the model’s schema. Recommended for production - The base
Reactorclass: generic, model-agnostic, sends raw JSON. Useful when no typed SDK exists yet, when prototyping, or when you want one client for several models