Bolna
End-to-end open-source platform for building voice AI agents
About
Bolna is an open-source voice-agent orchestration platform (Python, MIT-licensed). Agents are configured as JSON, and the platform orchestrates conversations over websockets by combining pluggable providers: telephony (Twilio, Plivo) to place/receive calls, ASR (Deepgram, Azure) to transcribe, LLMs (OpenAI, DeepSeek, Cohere, Mistral, Llama) to reason, and TTS (ElevenLabs, Cartesia, Deepgram, Azure, AWS Polly, and more) to speak back. A Dockerized local setup (bolna server + telephony server + ngrok + redis) gets you calling from your own infra; the company also sells hosted APIs and a no-code dashboard built on the same orchestration layer.
What it can do
- JSON-configured voice agents — no code needed to define a call flow
- Pluggable telephony (Twilio, Plivo), ASR (Deepgram, Azure), LLMs (OpenAI, DeepSeek, Cohere, Mistral, Llama), TTS (ElevenLabs, Cartesia, Deepgram, OpenAI, Azure, AWS Polly, Smallest, Maya, Kalpa)
- Orchestration over websockets with interruption handling, function calling, and post-call extraction
- Dockerized local setup with telephony server, agent server, ngrok tunnel, redis persistence
- Hosted APIs + no-code playground (closed source) built on the same OSS orchestration layer; strong Indic/Hinglish language support per independent reviews
Setup
- Self-host: clone the repo, go to
local_setup/, populate.envfrom.env.samplewith telephony (Twilio/Plivo), STT, LLM, and TTS provider keys plus an ngrok authtoken. - Run
./start.sh(ordocker compose up -d) — this starts the telephony web server, the Bolna agent server, ngrok tunnel, and redis. - Define agents as JSON (instructions, provider choices, voices) and trigger calls via the server API; the Python package is also on PyPI (
pip install bolna, 0.10.289). - Alternative: use the hosted route — create an account at bolna.ai, grab an API key, build the agent in the no-code playground at platform.bolna.ai, and call the hosted REST API.
Prerequisites
Docker + Docker Compose V2 for the local setup; provider accounts and API keys (Twilio or Plivo for phone, Deepgram/Azure for STT, an LLM provider, a TTS provider); ngrok authtoken for tunneling; Python 3.10+ for the PyPI package.
Use cases
Works with
Trust score — 7/10
Scored 7/10 (verified tier, metrics-v1). Evidence: 787 GitHub stars (log-scaled vs catalog peers); blended with ~9,415 monthly package downloads; last push 0d ago; 100 releases/12mo; 149 open issues. Manual review: README says 'actively looking for maintainers' — real dependency risk; 200k calls/day / $700k ARR / pricing are vendor-reported; self-hosted phone costs real money. License: MIT (hosted APIs + dashboard closed — open-core).
★ 787 GitHub stars
How the trust score is built
Full methodology →- Adoption · stars/downloads, log-scaled vs peers
- 5.9/10
- Maintenance · recency, releases, issue load
- 8.2/10
- Openness · license + docs
- 10.0/10
- Manual review · sanity read + red-flag check
- 6.0/10
- · 787 GitHub stars (log-scaled vs catalog peers)
- · blended with ~9,415 monthly package downloads
- · last push 0d ago; 100 releases/12mo; 149 open issues
- · manual review: README says 'actively looking for maintainers' — real dependency risk; 200k calls/day / $700k ARR / pricing are vendor-reported; self-hosted phone costs real money
Sources
Every fact above was checked against these sources. Where a claim comes from the provider and couldn't be independently verified, the text says so.