# LiveKit Plugin

**URL:** https://protoface.discourse.group/c/livekit-plugin/9.md

[Latest](https://protoface.discourse.group/latest.md) · [Categories](https://protoface.discourse.group/categories.md)

---

## [Category purpose: LiveKit Plugin](https://protoface.discourse.group/t/category-purpose-livekit-plugin/22)

<div class="topic-metadata">

**Author:** [@alpha](https://protoface.discourse.group/u/alpha)\
**Replies:** 0\
**Last updated:** [June 24, 2026, 12:38am UTC](https://protoface.discourse.group/t/category-purpose-livekit-plugin/22 "2026-06-24T00:38:50Z")

</div>

This category is for questions about using Protoface with LiveKit. Use it for livekit-plugins-protoface, LiveKit Agents setup, worker tokens, LiveKit rooms, avatar participants, and plugin configuration. For general Pr…

---

## [What should I include when asking for LiveKit plugin help?](https://protoface.discourse.group/t/what-should-i-include-when-asking-for-livekit-plugin-help/56)

<div class="topic-metadata">

**Author:** [@proton](https://protoface.discourse.group/u/proton)\
**Replies:** 0\
**Last updated:** [July 6, 2026, 6:56pm UTC](https://protoface.discourse.group/t/what-should-i-include-when-asking-for-livekit-plugin-help/56 "2026-07-06T18:56:38Z")

</div>

When asking for LiveKit plugin help, please include the plugin version, LiveKit Agents version, sanitized startup code, and the environment variable names you set, not their secret values. It also helps to include the r…

---

## [Can I use Protoface with Gemini Realtime or my own STT/LLM/TTS stack?](https://protoface.discourse.group/t/can-i-use-protoface-with-gemini-realtime-or-my-own-stt-llm-tts-stack/55)

<div class="topic-metadata">

**Author:** [@proton](https://protoface.discourse.group/u/proton)\
**Replies:** 0\
**Last updated:** [July 6, 2026, 6:55pm UTC](https://protoface.discourse.group/t/can-i-use-protoface-with-gemini-realtime-or-my-own-stt-llm-tts-stack/55 "2026-07-06T18:55:44Z")

</div>

Yes. The quickstart uses Gemini Realtime as one example, but Protoface can work with other STT, LLM, or TTS setups too. The key requirement is that your LiveKit Agent produces audio the plugin can route to the avatar. P…

---

## [How do I stop the avatar session when my LiveKit call ends?](https://protoface.discourse.group/t/how-do-i-stop-the-avatar-session-when-my-livekit-call-ends/54)

<div class="topic-metadata">

**Author:** [@proton](https://protoface.discourse.group/u/proton)\
**Replies:** 0\
**Last updated:** [July 6, 2026, 6:37pm UTC](https://protoface.discourse.group/t/how-do-i-stop-the-avatar-session-when-my-livekit-call-ends/54 "2026-07-06T18:37:01Z")

</div>

Call avatar.aclose() as part of your agent or room cleanup when the LiveKit call ends. That tells Protoface to stop the avatar session instead of leaving it running. Idle timeout and max duration can act as backstops, b…

---

## [Can I run multiple Protoface avatars in the same LiveKit room?](https://protoface.discourse.group/t/can-i-run-multiple-protoface-avatars-in-the-same-livekit-room/53)

<div class="topic-metadata">

**Author:** [@proton](https://protoface.discourse.group/u/proton)\
**Replies:** 0\
**Last updated:** [July 6, 2026, 6:33pm UTC](https://protoface.discourse.group/t/can-i-run-multiple-protoface-avatars-in-the-same-livekit-room/53 "2026-07-06T18:33:53Z")

</div>

Yes. You can run multiple Protoface avatars in the same LiveKit room. Each avatar should have its own separate AvatarSession instance, a unique participant identity, and its own Protoface session. Each one also counts s…

---

## [How do I set the avatar participation identity or display name?](https://protoface.discourse.group/t/how-do-i-set-the-avatar-participation-identity-or-display-name/52)

<div class="topic-metadata">

**Author:** [@proton](https://protoface.discourse.group/u/proton)\
**Replies:** 0\
**Last updated:** [July 6, 2026, 6:28pm UTC](https://protoface.discourse.group/t/how-do-i-set-the-avatar-participation-identity-or-display-name/52 "2026-07-06T18:28:23Z")

</div>

Use avatar\_participant\_identity to set the avatar’s LiveKit identity, and avatar\_participant\_name to set the display name users see. Keep identities stable and unique, especially if you have more than one avatar in the …

---

## [Why do I hear duplicate audio when using Protoface with LiveKit Agents?](https://protoface.discourse.group/t/why-do-i-hear-duplicate-audio-when-using-protoface-with-livekit-agents/51)

<div class="topic-metadata">

**Author:** [@proton](https://protoface.discourse.group/u/proton)\
**Replies:** 0\
**Last updated:** [July 6, 2026, 6:27pm UTC](https://protoface.discourse.group/t/why-do-i-hear-duplicate-audio-when-using-protoface-with-livekit-agents/51 "2026-07-06T18:27:15Z")

</div>

Duplicate audio usually means your app or client is playing two sources: the agent’s direct audio and the avatar participant’s audio. Check your LiveKit output configuration and client playback path. If the avatar shoul…

---

## [The avatar joins the room but stays silent. What should I check?](https://protoface.discourse.group/t/the-avatar-joins-the-room-but-stays-silent-what-should-i-check/50)

<div class="topic-metadata">

**Author:** [@proton](https://protoface.discourse.group/u/proton)\
**Replies:** 0\
**Last updated:** [July 6, 2026, 6:25pm UTC](https://protoface.discourse.group/t/the-avatar-joins-the-room-but-stays-silent-what-should-i-check/50 "2026-07-06T18:25:04Z")

</div>

First, confirm your agent is actually producing speech after session.start(...). Then confirm avatar.start(...) completed, avatar.session\_id is set, and the avatar participant is in the same LiveKit room. The plugin rou…

---

## [The avatar participant never appears in my LiveKit room. What should I check?](https://protoface.discourse.group/t/the-avatar-participant-never-appears-in-my-livekit-room-what-should-i-check/49)

<div class="topic-metadata">

**Author:** [@proton](https://protoface.discourse.group/u/proton)\
**Replies:** 0\
**Last updated:** [July 6, 2026, 6:23pm UTC](https://protoface.discourse.group/t/the-avatar-participant-never-appears-in-my-livekit-room-what-should-i-check/49 "2026-07-06T18:23:30Z")

</div>

First, confirm avatar.start(...) completed without raising an exception. Check that the avatar is starting in the same LiveKit room as your agent, and that LIVEKIT\_URL, LiveKit credentials, and your Protoface API key are…

---

## [When should I call avatar.start(...) in my LiveKit Agent?](https://protoface.discourse.group/t/when-should-i-call-avatar-start-in-my-livekit-agent/48)

<div class="topic-metadata">

**Author:** [@proton](https://protoface.discourse.group/u/proton)\
**Replies:** 0\
**Last updated:** [July 6, 2026, 6:14pm UTC](https://protoface.discourse.group/t/when-should-i-call-avatar-start-in-my-livekit-agent/48 "2026-07-06T18:14:52Z")

</div>

Call await avatar.start(session, room=ctx.room) before session.start(...). That gives the avatar participant time to join the LiveKit room, and lets the plugin route the agent’s audio to the avatar correctly. In practic…

---

## [Why does the plugin need my LiveKit API secret if Protoface never receives it?](https://protoface.discourse.group/t/why-does-the-plugin-need-my-livekit-api-secret-if-protoface-never-receives-it/47)

<div class="topic-metadata">

**Author:** [@proton](https://protoface.discourse.group/u/proton)\
**Replies:** 0\
**Last updated:** [July 6, 2026, 6:13pm UTC](https://protoface.discourse.group/t/why-does-the-plugin-need-my-livekit-api-secret-if-protoface-never-receives-it/47 "2026-07-06T18:13:32Z")

</div>

The plugin uses your LiveKit API secret locally to create a short-lived room token for the avatar participant. Protoface does not need your LiveKit API secret itself. It only receives the temporary worker token that let…

---

## [Livekit-plugins-protoface says credentials are missing. Which environment variables do I need?](https://protoface.discourse.group/t/livekit-plugins-protoface-says-credentials-are-missing-which-environment-variables-do-i-need/46)

<div class="topic-metadata">

**Author:** [@proton](https://protoface.discourse.group/u/proton)\
**Replies:** 0\
**Last updated:** [July 6, 2026, 6:12pm UTC](https://protoface.discourse.group/t/livekit-plugins-protoface-says-credentials-are-missing-which-environment-variables-do-i-need/46 "2026-07-06T18:12:01Z")

</div>

You will usually need these environment variables in your agent or server environment: PROTOFACE\_API\_KEY, LIVEKIT\_URL, LIVEKIT\_API\_KEY, and LIVEKIT\_API\_SECRET. You can also pass these values directly to AvatarSession or…
