Skip to main content
The Simli integrations in LiveKit Agents and Pipecat work with Trinity-2 faces as they are, with Simli’s default 768x768 video. They don’t expose Trinity-2’s options yet, such as a 16:9 video, the avatar’s position or a starting camera, and Pipecat’s has two known issues. Our starters work around these, as below. Each workaround says when you can remove it, and this page goes away once the integrations support Trinity-2 themselves.

LiveKit Agents

Trinity-2 options: Trinity2Config

The plugin’s SimliConfig sends Simli only the face ID, with a legacy style suffix, and the time limits. Its public create_json() method builds the body of the POST /compose/token request, so a subclass can override it: this one sends the plain face ID and adds the Trinity-2 fields. It’s from our LiveKit Agents starter:
Use it in place of simli.SimliConfig:
Remove it when the plugin’s SimliConfig takes the Trinity-2 options and sends the plain face ID.

Pipecat

Trinity-2 options: the Simli SDK’s config

Pipecat’s SimliVideoService has no Trinity-2 options yet. It runs the Simli Python SDK, which sends every field of its SimliConfig to Simli when the session starts, so the starter adds the framing fields there. It’s from our Pipecat starter:
Set the transport’s video to the same size, at Simli’s 25 fps:
_simli_client is a private attribute of SimliVideoService, so this can break when Pipecat changes it. A fix that adds these options to Pipecat’s Simli service is pending upstream. Remove it when that fix is in the Pipecat release you use and SimliVideoService takes the Trinity-2 options itself.

No video until the bot first speaks

SimliVideoService doesn’t pass on any video until the bot’s first audio (pipecat#4832). The starter has the bot greet the user as soon as they connect, so the avatar appears with the greeting. Remove it when the fix, pipecat#5033, is in the Pipecat release you use. You can then let the user speak first if you like.

Use OpenAI Realtime, not GPT-Live

Pipecat’s SimliVideoService ignores the audio frames Pipecat’s GPT-Live service produces, so with GPT-Live the avatar never moves. The starter uses OpenAIRealtimeLLMService instead. The same pending upstream fix to Pipecat’s Simli service covers this. Remove it when that fix is in the Pipecat release you use. GPT-Live then works with Simli like any other voice.