Your LiveKit agent has a voice.Now give it a face.
Anam's interactive video avatars drop into your existing LiveKit voice agent. Your config doesn't change. Users engage longer, consume more, and convert at a higher rate.
See it for yourself
Start a voice conversation, then flip the switch and watch how the avatar is in sync without restarting the session or any additional configuration.
Voice only Voice + Anam Reveal the face
Talk to the agent firstStart an audio-only conversation with your microphone.
support-agent-demo · voice agent
01
Your agentSTT · LLM · TTS
02
AnamLip sync · expression
03
LiveKit roomAudio + video
LIVEKIT AGENTS · NODE.JS
From voice agent to video agent in a few lines.
Node.js setup for your existing LiveKit voice agent. Your STT, LLM, and TTS stay unchanged.
import { voice } from "@livekit/agents";
import * as anam from "@livekit/agents-plugin-anam";
// Create a custom avatar (optional — or use one from the gallery)
const { id: avatarId } = await fetch("https://api.anam.ai/v1/avatars", {
method: "POST",
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
displayName: "My Avatar",
imageUrl: "https://example.com/photo.jpg",
}),
}).then((response) => response.json());
const session = new voice.AgentSession({ stt, llm, tts });
const avatar = new anam.AvatarSession({
personaConfig: { name: "My Avatar", avatarId },
});
await avatar.start(session, room);
await session.start({ room, agent });
Add a face to your LiveKit agent.
Keep your current speech, language model, and voice stack. Add a synchronized avatar in a few lines.