transport_type: livekit and the pipeline_mode value in Step 2, then start a tavus.AvatarSession with your replica_id and persona_id as in Step 3.
Tavus enables AI developers to create realistic video avatars powered by state-of-the-art speech synthesis, perception, and rendering pipelines. Through its integration with the LiveKit Agents application, you can seamlessly add conversational avatars to real-time voice AI systems.
Prerequisites
Make sure you have the following before starting:-
Tavus
replica_id- You can use Tavus’s stock Replicas or your own custom replica.
- LiveKit Voice Assistant App (Python or Node.js)
- Your own existing application.
- Or follow the LiveKit Voice AI quickstart to create one (same guide for Python and Node.js).
Integration Guide
Step 1: Setup and Authentication
- Install the plugin:
- Python
- Node.js
- Set
TAVUS_API_KEYin your.envfile. Use the same value as your Tavus API key from Authentication. Step 2 creates the persona via Create Persona.
Step 2: Configure Replica and Persona
- Create a persona with LiveKit support using the Tavus API:
- Replace
<api-key>with your actual Tavus API key. You can generate one in the Developer Portal. See Authentication for how requests are authorized. - Set
pipeline_modetoecho. That value is the persona’s pipeline mode for this integration; it is not the same as CVIconversation.echoapp messages (which this LiveKit path does not support). - Set
transport_typetolivekit.
- Save the
persona_idfrom the API response. - Choose a replica from the Stock Library or browse available options on the Developer Portal.
Step 3: Add AvatarSession to AgentSession
In your LiveKit app, create an avatar session alongside your
AgentSession:- Python
- Node.js / TypeScript
| Parameter | Description |
|---|---|
replica_id / replicaId (string) | ID of the Tavus replica to render and speak through |
persona_id / personaId (string) | ID of the persona with the correct pipeline and transport configuration |
avatar_participant_name / avatarParticipantName (string, optional) | Display name for the avatar participant in the room. Defaults to Tavus-avatar-agent |
Try out the integration using this sample code.

