platform · bring your own brain

You bring the brain.
We bring the voice.

Your LLM, your prompt, your tools, your data — running in your own backend. You expose one authenticated WebSocket route, like any webhook, and we connect to your brain per session. From that point, you're in control. We run the voice plane; nothing runs in our cloud that you didn't put there.

One authenticated route — like a webhook. Tool calls run local — zero round-trip. Python & Go SDKs.
your backend · python
from voqalcloud import Brain, serve_direct

class SupportBrain(Brain):
    async def on_interaction(self, i):
        ctx = your_db.context(i.session.id)   # your data, local
        async with i.inference() as inf:
            async for chunk in your_llm.stream(i.transcript, ctx):
                await inf.speak(chunk)
            i.action("open_invoice", {"id": ctx.last})  # drive the UI

serve_direct(SupportBrain, host="0.0.0.0", port=8787)   # we dial this route per call
the split

We run the plane. You run the intelligence.

voqalize handles
  • WebRTC media — P2P, no SFU
  • STT, TTS, turn detection, interruption
  • Multi-tenant session management
  • The optional Cortex relay (fallback when you can't accept inbound) + client SDKs (JS, React, Android, iOS)
you handle
  • Your LLM, your prompt, your framework
  • Your tools — called locally, zero round-trip
  • Your data and business logic
  • Which UI actions to expose, and when to call them
the surface you write

A Brain of callbacks. No frames, no plumbing.

What the user said
on_interaction(i)i.transcript
What the agent says
i.inference()await inf.speak(text)
Drive the UI (and get the result)
i.action(name, args, callback=…)
What the user actually heard
on_inference_finalized(inf)inf.heard / .interrupted
Browser → agent feedback
on_app_event(session, event)
User interrupted
the on_interaction coroutine is cancelled

Two official SDKs speak the same protocol: the Python SDK (pipecat-based) and a native Go SDK (pipecat-free, talks the wire directly). The Go SDK runs the live /travel demo today.

speech, included

And the speech is ours.

STT and TTS are open-source models we run ourselves — your audio goes to us, not a third-party voice vendor. They sit behind Deepgram-Flux– and Cartesia–compatible APIs, cover 22 Indian languages alongside English and 40+ more, and can deploy inside your own VPC — so nothing but the session WebSocket to your brain crosses the wall.

Read about speech →

Wire it into your backend.

One callback. One authenticated WebSocket route. Any language or framework.

Talk to a live agenton a Voqalize demo