LiveKit Agents
A voice AI agent worker - ElevenLabs voice, Deepgram ears, your LLM brain - joining rooms with zero ingress.
One-click deploy, from $13/mo on a Miget plan.
Voice agents stopped being demos: support lines, intake calls, tutoring, companions. The LiveKit Agents framework is what most of them run on - a Python worker that joins rooms, listens via Deepgram, thinks via any OpenAI-compatible LLM, and speaks via ElevenLabs.
The deployment shape could not be friendlier to a PaaS: the worker connects OUTBOUND to your LiveKit server and receives jobs - no ingress, no public port. CPU is plenty; only voice-activity detection runs locally, everything heavy is an API call.
This template builds LiveKit’s official Python starter as a working baseline and is marked experimental for an honest reason: a real product forks the starter to define its own agent - the template’s build context is the line you change.
Upstream project: LiveKit Agents (Python starter)
#what you get
- Full voice pipeline: Deepgram STT, LLM, ElevenLabs TTS, interruption handling
- Outbound-only worker - no ingress, scale with replicas
- CPU-only: the heavy lifting happens at your providers
- OpenAI-compatible LLM slot - the litellm template plugs in
- Official starter as the baseline; fork-and-point to customize
- Graceful drain on redeploys (conversations finish)
#topology
| Service | Role | Public |
|---|---|---|
| agent | voice agent worker (outbound to LiveKit) | no - no ingress needed |
#miget sizing
// this stack needs
2 GiB RAM · 0 GB disk · 1 service
One 2 GiB worker handles a handful of concurrent conversations; replicas share the job queue. The real bill is provider usage - cap it at the keys.
Hobby - recommended fit
$13/mo
1 vCPU · 2 GiB · 50 GiB disk
Headroom for your own apps: 2 GiB at $19/mo
Professional - production
$22/mo
1 vCPU · 2 GiB · 10 GiB disk
Dedicated resources, production SLOs - plan details
One Miget plan is a fixed pool of compute - the whole stack (managed databases included) deploys inside it, and anything left over runs your other apps. No per-service or per-seat math.
#vs. other PaaS
Estimated monthly cost of running this exact stack (2 GiB RAM, 0 GB disk, 1 container) elsewhere, from published June 2026 rates.
| Platform | Est. monthly | Notes |
|---|---|---|
| Miget ★ | $13 flat | compose stacks first-class: one deploy, dedicated vCPU, managed Postgres/Valkey, volumes and TLS all included in the plan |
| Heroku | ~$100 | no volumes; nothing between 1 GB ($50) and 2.5 GB ($250) dynos - 2 GB containers cost far more than shown |
| DO App Platform | ~$29 | no persistent volumes - stateful containers need managed DBs/Spaces (base $5 Spaces included here) |
| Render | ~$25 | per-service instances (0.5 GB $7, 2 GB $25) - every container is its own paid service |
| Railway | ~$20 | usage-based ($10/GB RAM-mo); vCPU billed separately at $20/vCPU-mo on top |
| Fly.io | ~$12 | cheapest sticker price - but burstable shared CPUs (1/16 core; dedicated vCPUs cost ~2-3×), no compose deploys (one app per container, manual wiring), managed DBs billed extra |
Estimates assume RAM fully allocated at published on-demand rates - and sticker price isn't the whole comparison: the cheaper rows buy burstable shared CPUs, per-service wiring instead of a compose deploy, and managed databases billed separately. Heroku and DO App Platform have no persistent volumes at all - stateful stacks like this one need workarounds there.
#deploy it
On Miget
- Create a Compose Stack in app.miget.com pointing at the templates repository
- Set the stack path to
livekit-agents -
Set the required variables:
LIVEKIT_URL / LIVEKIT_API_KEY / LIVEKIT_API_SECRET, ws://livekit:5000 in-project, or LiveKit CloudELEVEN_API_KEY / DEEPGRAM_API_KEY / OPENAI_API_KEY, the providers your pipeline uses - billed to you
- Deploy. Miget layers
compose.miget.yaml(RAM, privacy, volumes, managed services) automatically
Locally first?
Every template is portable, vanilla Docker Compose - the Miget overrides are ignored locally:
git clone https://github.com/deployable-sh/stacks
cd miget-compose-templates/livekit-agents
docker compose up -d Same files, same behavior. The template README covers connection strings and scaling notes.
#faq
What does a complete self-hosted voice stack look like here?
livekit (the WebRTC server) + this worker + litellm (LLM gateway with budgets) in one project. Audio flows through your server, the agent reasons through your gateway, and the only external spend is the STT/TTS/LLM APIs you chose.
Why is it experimental?
Because the starter agent is a baseline, not your product: real deployments fork agent-starter-python, change the prompt/tools/pipeline, and point this template’s build context at the fork. The infrastructure shape is solid; the agent code is meant to be yours.
Can it use voices other than ElevenLabs?
Yes - the framework has plugins for Cartesia, OpenAI TTS, PlayHT and more; swap the pipeline in your fork and set the matching key. Same for STT and LLM legs.
Ship LiveKit Agents today
One compose stack, 2 GiB of RAM, from $13/month flat, and it runs on your laptop with the same files.