synthesia-interactive-avatar

Installation
SKILL.md

Synthesia Interactive Avatar Integration

The Synthesia Interactive Avatar is a plugin component for LiveKit Agents (Python). It renders a photoreal, lip-synced avatar and publishes it into the LiveKit room as a regular participant. The agent produces speech exactly as it always does; the component reroutes that audio to Synthesia's hosted avatar worker, which broadcasts synced audio + video back to the room.

This skill assesses what the user already has, picks ONE integration pathway, and implements it.

Constraints — read before doing anything

These shape every recommendation. State them to the user up front if they're relevant:

  • Access-gated. The API key must come from a Synthesia workspace with Interactive Avatar access; other keys are rejected (SynthesiaError, type AUTH or FEATURE_NOT_IN_PLAN). If the user has no key, stop and point them to the Synthesia developer console — nothing you build will run without it.
  • Python only. The plugin targets the Python LiveKit Agents framework, Python 3.10+. Node.js agents are not supported.
  • Default avatar: Kenji, "7572faa9-15da-400d-8227-ef1ab8932523". AvatarConfig takes avatar_ids: a list of one to five gallery ids. The first is the active avatar; the rest are precomputed so swap_avatar() can switch to them mid-session. Use Kenji alone unless the user names other avatars available to their workspace — inaccessible ids raise SynthesiaError with type UNKNOWN_AVATAR at start(), and a bare string instead of a list raises ValueError.
  • No sandbox. Unlike some competitors, there is no free sandbox avatar — every session counts against the workspace's quota (SynthesiaError with type QUOTA_EXCEEDED, HTTP 402, on cap).
  • Install from PyPI: pip install "livekit-plugins-synthesia~=1.8" (or the uv add equivalent).

Step 1: Discover what the user has

Check the codebase and conversation before asking anything. Do not ask questions the codebase already answers.

Installs
155
GitHub Stars
1
First Seen
Sep 15, 2026