Skip to main content
If your voice agent runs on LiveKit Agents, livekit-plugins-protoface is an easy way to add an avatar. It opens a Protoface session and joins the avatar to your room, then streams your agent’s audio to it. If you’re not using LiveKit, Protoface also integrates with many more platforms and SDKs. See More Integrations. Official LiveKit-hosted docs are also available. LiveKit directly maintains and publishes the official Protoface plugin.

Install

Basic usage

Start the avatar before session.start(...):
After the avatar starts, the plugin routes agent audio through a LiveKit DataStream output addressed to the avatar participant.

Token handling

AvatarSession.start(...) uses your LiveKit API key and secret inside the agent process to mint a short-lived avatar room token. Protoface receives that token as worker_token; it never receives your LiveKit API secret.

Configuration

Set these in the agent environment. Or pass them directly:

AvatarSession options

After avatar.start(...) succeeds, avatar.session_id contains the Protoface session ID.

Lifecycle

Call await avatar.start(session, room=ctx.room) before session.start(...). Call await avatar.aclose() if you need to stop the avatar explicitly.

Next

Realtime quickstart

Run a complete sample agent.

More Integrations

Quickstarts for other platforms and SDKs.

Avatars

Choose the avatar ID for your app.