What you need
- A Simli API key, from your Simli dashboard
- An OpenAI API key. The starter uses OpenAI’s Realtime API, speech to speech, so there’s no separate speech-to-text or text-to-speech provider.
- Python 3.11 or later (the starter uses uv), and Node.js 20.9 or later for the starter’s web page
Run the starter
create-simli-app-pipecat
A Pipecat voice agent on OpenAI’s Realtime API, with a Simli Trinity-2 avatar and a small web page to talk to it. Its lockfile pins the versions it was tested with.
/api/offer, which Next.js forwards to the bot. If the bot isn’t on http://localhost:7860, start the page with BOT_URL set to where it is. Pipecat’s prebuilt client at http://localhost:7860 works too.
Build it yourself
1. Install the packages
2. Set your keys
Put them in a.env file next to your bot:
.env
3. Add the avatar to your pipeline
This is the core of the starter’s bot: the transport, the Simli service and the pipeline. The starter’sbot.py has the complete file, with the imports, the OpenAI Realtime service and the runner.
bot.py
This gives a Trinity-2 face Simli’s default 768x768 video. For a 16:9 video and the avatar’s position, and for known issues with the avatar’s first video and with GPT-Live, see Trinity-2 in LiveKit Agents and Pipecat (temporary).
4. Run it
Before you go to production
The runner is for development. Anyone who can reach port 7860 can start a conversation, which uses your Simli minutes and OpenAI credit, so keep it on localhost or put it behind your own sign-in. To deploy, see Pipecat’s deployment guide.Learn more
- The starter’s README: changing the face, voice and prompt, and how it works
- Pipecat’s guide to Simli
- Pipecat docs: tools, other models and more