Skip to content

plugins: add Avaluma avatar plugin#6310

Open
Alpe6825 wants to merge 2 commits into
livekit:mainfrom
avaluma-ai:add-avaluma-avatar-plugin
Open

plugins: add Avaluma avatar plugin#6310
Alpe6825 wants to merge 2 commits into
livekit:mainfrom
avaluma-ai:add-avaluma-avatar-plugin

Conversation

@Alpe6825

@Alpe6825 Alpe6825 commented Jul 3, 2026

Copy link
Copy Markdown

Summary

Adds livekit-plugins-avaluma, a remote avatar integration for Avaluma.

Like the other avatar plugins, the agent's audio output is streamed to the Avaluma avatar worker via DataStreamAudioOutput (with publish_on_behalf and video-track waiting), and the avatar joins the room and streams video back. Agent and user turn-taking state changes are forwarded to the avatar over RPC.

What's included

  • livekit-plugins/livekit-plugins-avaluma/ — the plugin (PEP 420 namespace package, py.typed, Apache-2.0)
  • examples/avatar_agents/avaluma/ — example agent worker
  • livekit-agents: avaluma optional-dependency extra
  • root pyproject.toml [tool.uv.sources] entry + uv.lock

Configuration

  • AVALUMA_LICENSE_KEY, AVALUMA_AVATAR_ID — required
  • AVALUMA_AVATAR_SERVER_URL — optional, only when self-hosting the avatar server

Checks

  • ruff check
  • ruff format --check
  • mypy --strict

Introduces the integration discussed in #6309. Happy to sign the CLA and coordinate versioning, the PyPI publish under the LiveKit org, and the docs page.

Add livekit-plugins-avaluma, a remote avatar integration for Avaluma
(https://avaluma.ai), following the standard avatar plugin structure:
DataStreamAudioOutput with publish_on_behalf and video-track waiting,
plus agent/user turn-taking state forwarded to the avatar over RPC.

- livekit-plugins/livekit-plugins-avaluma: the plugin
- examples/avatar_agents/avaluma: example agent worker
- livekit-agents: add the "avaluma" optional-dependency extra
@Alpe6825 Alpe6825 requested a review from a team as a code owner July 3, 2026 10:51
@CLAassistant

CLAassistant commented Jul 3, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

devin-ai-integration[bot]

This comment was marked as resolved.

Address review feedback:
- wire the avatar audio via output.replace_audio_tail(...) like the other
  avatar plugins, preserving upstream chain wrappers (transcript sync,
  recording) instead of replacing the whole output chain
- re-raise a non-retryable APIStatusError (e.g. 401/403) immediately
  instead of retrying and masking it with a generic APIConnectionError
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants