Skip to main content
Omni is a complete realtime voice agent behind one WebSocket:
Migrating an older Omni client? The former chat URL was discontinued on August 13, 2026. Follow the Omni endpoint migration guide for the exact URL, auth, query, configure, framing, and error-handling changes.
Send audio in. Receive spoken audio and events back. Omni handles speech recognition, reasoning, speech generation, voice activity detection, turn detection, and interruption handling inside the session.

One endpoint instead of a voice cascade

A traditional voice agent makes you assemble and operate this:
That diagram leaves out the hard parts: deciding when a turn is complete, stopping speech when the caller interrupts, carrying context between components, retrying failures, and keeping each hop responsive. With Omni, your application connects to one realtime endpoint. You describe the agent in a configure frame, then stream audio:
You still control the persona, voice, language, greeting, tools, and knowledge sources. PyAI runs the realtime conversation loop.

Connect

There is no agent resource you must create before opening a session. Authorize the WebSocket with an API key, then send the agent configuration:
After configuration, send PCM16 as 0x01 || audio_bytes. Server audio uses 0x01; plain UTF-8 caller-transcript deltas use 0x02; control JSON uses 0x03. Every server JSON body is keyed on event; the transcript body is not JSON. See the browser tutorial for capture, playback, and frame handling.

Choose how to build

Choose your path

API primitives, console Agent, or a framework adapter.

Launch an Agent

Create, test, and put a Call Now button on your site without a token broker.

Create agents via API

Store a profile, bind knowledge and tools, open Omni with session_label.

Read the wire protocol

Binary audio framing, lifecycle events, tools, and session controls.

When to use a focused API instead

Use Hear when you only need transcripts or live captions. Use Speak when you already have text and only need audio. If you want to operate each component yourself, combine Hear with your own reasoning and speech output where Hear’s English-only transcription fits the call.