many-fall-81099
02/20/2026, 2:28 PMtall-airline-16756
02/20/2026, 2:28 PMtall-airline-16756
02/20/2026, 2:28 PMlk.publish_on_behalf set to the agent’s identity — use this to identify the avatar worker.
• Render the avatar’s audio and video tracks (from the avatar worker), not the agent participant’s tracks.
If you want the short integration checklist
1. Identify the avatar worker in the room:
◦ Find the agent participant (agent identity with no lk.publish_on_behalf), then find the participant where lk.publish_on_behalf === agent.identity.
1. Get the avatar worker’s audio and video tracks.
2. Attach the video track to a DOM/video component and the audio track to an audio element (or let the SDK handle playback).
3. Optionally: use the provided React helper useVoiceAssistant which already finds the avatar worker and returns agent, audioTrack, and videoTrack.
What I need from you to give exact code
• Frontend framework / platform (choose one): React (web), Vue, Angular, React Native, Flutter, SwiftUI, Android, or plain JS.
• Are you using any LiveKit helper components or the plain LiveKit client SDK?
• Which avatar provider/plugin are you using (examples: Anam, Tavus, Hedra)? Do you already have the AvatarSession set up on the backend?
If you want a React example right away
• I can provide a minimal React snippet showing how to:
a. Find the avatar worker via participant attributes.
b. Attach the VideoTrack to a <video> element (or LiveKit React components).
Tell me if you prefer that and which UI approach you use (plain DOM elements vs. LiveKit React components).
If you want links or starter apps
• I can point you to example starter apps (Next.js, React Native, Flutter, SwiftUI, Android) that already handle avatar rendering.
Which option would you like me to show next? (Pick one)
• A minimal plain-React + LiveKit client snippet
• A useVoiceAssistant-based React example
• A Vue/Angular/plain-JS example
• Mobile example (React Native / Flutter / native) Sources: Virtual avatar models overview | LiveKit Documentation | Anam virtual avatar integration guide | LiveKit Documentationmany-fall-81099
02/20/2026, 2:30 PMtall-airline-16756
02/20/2026, 2:30 PMuseVoiceAssistant and other helpers): https://docs.livekit.io/components/react
Avatar plugin & provider setup
• Anam avatar plugin setup (example plugin used for generated avatars): https://github.com/livekit-examples/agents-plugin-anam
• Agent plugins overview and configuration: https://docs.livekit.io/agents/plugins
Starter apps with avatar support (examples you can clone)
• Next.js Voice Agent (web React starter): https://github.com/livekit-examples/agent-starter-react
• React Native Voice Agent: https://github.com/livekit-examples/agent-starter-react-native
• Flutter Voice Agent: https://github.com/livekit-examples/agent-starter-flutter
• SwiftUI Voice Agent: https://github.com/livekit-examples/agent-starter-swift
• Android Voice Agent: https://github.com/livekit-examples/agent-starter-android
Quick pointers to the exact parts you’ll likely use
• Finding the avatar worker in the room (look for lk.publish_on_behalf attribute on a participant): see the avatar worker guide above.
• Rendering tracks from the avatar worker (use Web SDK or React components to attach `VideoTrack`/`AudioTrack` to UI elements): see the Web SDK and React components docs.
• Example code that already handles this: refer to the Next.js Voice Agent starter repo.
Would you like a short curated snippet or a specific doc link for your framework (React, Vue, Flutter, etc.)? Tell me which framework and I’ll point to the exact page or code sample.