📚 Search and read the docs from your AI assistant or the terminal
You can now search and read Bolna’s documentation without opening a browser — right from your AI assistant or the CLI, no login needed.- AI assistant: connected over the MCP server? Just ask something like “how do I set up a webhook?” and it finds the right page and reads it back to you, instead of guessing.
- Terminal:
bolna docs search <query>finds the page you need, andbolna docs fetch <page>prints it right there in your terminal.
🎙️ Talk to your agent right from the browser
Want callers to talk to your voice agent without dialing a number? The new Web Call SDK (@bolna/web-call) lets you drop a live, spoken conversation straight into any web page: a landing page, a support widget, an in-app “talk to us” button, anywhere your users already are.It’s built to stay simple on the surface. Mint a short-lived call session from your own backend, point the SDK at it, and call start() from a button click. Your Bolna API key never has to touch the browser, and the SDK handles microphone permissions, connection setup, and cleanup for you.A few things that make it easier to build on:- Copy-paste starter templates for Next.js (deploys as-is on Vercel) and plain HTML plus Node, so you can go from nothing to a working call button in minutes.
- A small, predictable event set, including
call-start,call-end,error, andvolume-level, so you can drive your own UI instead of fighting the SDK’s. - Practical guardrails, like clear error codes for capacity limits and blocked autoplay, with an FAQ for the issues developers actually hit.
🚀 Bolna CLI Beta — manage your voice agents from the terminal
We’re excited to announce the public beta of the Bolna CLI (bolna), bringing agent, call, and account management to your terminal — and a full-screen dashboard when you’d rather look than type.
bolna-cli in action
- Manage agents end-to-end — list, view, create, update, and delete agents, with a before/after diff and confirmation on every change.
- Place and track calls — start a real outbound call, list history, and pull a full transcript, without opening the dashboard.
- Script and pipe — every list command supports
--jsonor--csv, and-qprints bare IDs for piping intoxargsand CI. - Watch it visually when you want to — run
bolnawith no arguments for a full-screen dashboard: live wallet balance, a command palette, and a guided call-start flow.
- Same tools as MCP — every command maps 1:1 to a tool in the Bolna MCP server’s list, so a script and an AI assistant work against the exact same operations.
- Never spends money silently — starting a call always shows your current wallet balance and asks for confirmation, unless a script explicitly passes
--yes.
Bolna MCP Server — connect any AI assistant to your account

Run Bolna from inside your AI assistant
- Check on your account → “List my agents”, “what’s my wallet balance?” — quick lookups without opening the dashboard.
- Debug a call → “Get the last 5 executions for agent X and show me the transcript for any that failed” — the assistant chains the lookups for you.
- Build and change agents → “Create a Hindi lead-qualification agent using Sarvam and GPT-4o mini” — describe the change, the assistant makes the call.
- Confirm before it acts →
update_agent,delete_agent, andstart_outbound_callare flagged destructive in their tool definitions — most clients pause for your confirmation before running them.
New OpenAI models: GPT-5.6 and GPT-5.5 Pro
GPT-5.6 (Sol, Terra, Luna) and GPT-5.5 Pro are now available as LLMs for your voice agents.gpt-5.6-sol is the flagship for the hardest reasoning and coding, gpt-5.6-terra balances quality and cost for high-volume production agents, and gpt-5.6-luna is a fast, low-cost option for everyday voice. gpt-5.5-pro targets maximum quality on complex reasoning, though its latency makes it unsuitable for real-time calls.Select any of them as the model in your agent’s LLM config. See OpenAI models for the full list and guidance.Multilingual static messages for graph agents
Static nodes in a graph agent can now hold a per-language message. Instead of a single string,static_message accepts a { "language_code": "text" } map, and the node speaks the variant that matches the caller’s active language.Highlights:- One pre-cached clip per language, each rendered with that language’s voice, so playback stays instant with zero LLM or TTS cost at call time
- Automatically follows language auto-switch, so a caller who moves to Hindi or Tamil hears the matching-language clip on the next static node
- Fully backward compatible: a plain-string
static_messagebehaves exactly as before
Filter Webhooks by Call Status
You can now choose which call statuses trigger your webhook, instead of receiving a POST for every status change. This cuts noise for integrations that only care about specific outcomes (for example, only firing oncompleted).To set it up:- Open your agent and go to the Extractions tab.
- Enter your Webhook URL under Webhook Configuration.
- Use Trigger on statuses to select the statuses you want webhooks for. By default, all statuses are sent.

