Give voice to your
agents and apps.

Three places Vocal Bridge plugs into your stack. Sixty seconds each.

An AI Fund company
Andrew Ng
Andrew Ng
Founder, AI Fund
AI FundDeepLearning.AI
~ get started
py$pip installvocal-bridge
js$npm install@vocalbridgeai/sdk @vocalbridgeai/react
Surface 01 · Voice for your App

Speak to your UI.
Click back.

Embed a real-time voice experience directly in your product. The user talks, the UI moves; the user clicks, the agent reacts. Same WebRTC data channel — no protocols to design.

  • Bidirectional client actions agent → app and app → agent on one channel
  • React, JS, and Flutter SDKs drop-in components, zero WebRTC code
  • Live transcript & heartbeat built-in — works the moment you connect
provider → onAction → action schema.
tic-tac-toe
Your turn
You · live
Say where to play, e.g. “top right”
Transcript
Voice + clicks will appear here…
1/3One import. The whole voice layer.
2/3Wrap your layout. Voice unlocks everywhere below.
3/3Server-side token endpoint. Your API key never touches the browser.
layout.tsx
import { VocalBridgeProvider } from "@vocalbridgeai/react";
export default function Layout({ children }) {
return (
<VocalBridgeProvider
options={{ auth: { tokenUrl: "/api/token" } }}
>
{children}
</VocalBridgeProvider>
);
}
1/3One hook. Both directions on the same data channel.
2/3Agent → app. Voice picks a square; React state updates. No polling.
3/3App → agent. User clicks; agent sees the move on its next turn.
TicTacToe.tsx
import { useAgentActions } from "@vocalbridgeai/react";
export function TicTacToe() {
const { onAction, sendAction } = useAgentActions();
// agent → app : the agent picks a square, we draw it
useEffect(() =>
onAction("place_mark", ({ row, col }) => {
setBoard((b) => place(b, row, col, "O"));
}),
[onAction]);
// app → agent : user clicked a square, tell the agent
const handleClick = (row, col) => {
const next = place(board, row, col, "X");
setBoard(next);
sendAction("user_placed_mark", { row, col, board: next });
};
return <Board cells={board} onCell={handleClick} />;
}
Surface 02 · Voice for your Agent

Already have an agent?
Add voice.

VB becomes a thin voice layer on top of any LLM. Your prompt, your tools, your evals — completely untouched. Two lines of code and your text agent talks back.

  • Bring your own LLM Claude, GPT, Gemini, in-house, or anything callable
  • Your prompt, your tools VB doesn't touch your reasoning layer
  • Streaming-aware TTS fillers, barge-in, hand-off — handled for you
useAIAgent({ onQuery }). Two lines. Any LLM.
claude · with VB
Y
What was NVIDIA's closing price yesterday?
Type a message…
1/3One hook. Fires on every voice query.
2/3Forward to your backend. Claude, GPT, Gemini — your choice.
3/3Return a string. VB speaks it. No TTS to wire up.
Page.tsx
import { useAIAgent } from "@vocalbridgeai/react";
export function Page() {
useAIAgent({
onQuery: async (question) => {
const res = await fetch("/api/my-agent", {
method: "POST",
body: JSON.stringify({ question }),
});
const { text } = await res.json();
return text; // VB reads it out loud
},
});
return <YourChatUI />;
}
Surface 03 · Voice as a Tool

The phone is now a
function call.

Define a normal LLM tool. When the model picks it, run vb call. The agent on your VB account dials, holds the conversation, and streams the transcript back to your context.

  • Outbound calls, fully managed provisioned numbers, SIP trunking, TCPA-aware
  • Live transcripts & recordings stream results back into your LLM context
  • Same CLI, REST API, SDK wire it into any tool-using LLM framework
tool schema → vb call → real phone rings.
agent · tool runtime
Agent
Y
Yeah, do it — call Maya and ask if she's free for dinner.
Outbound call
Maya
+1 (415) 555-0188
Idle
1/2Standard tool schema. The description tells the LLM when to dial.
2/2JSON Schema. Only phone_number is required.
tools.ts
export const makePhoneCall = {
name: "make_phone_call",
description:
"Place an outbound phone call via Vocal Bridge.",
input_schema: {
type: "object",
properties: {
phone_number: { type: "string" }, // E.164
name: { type: "string" },
purpose: { type: "string" },
},
required: ["phone_number"],
},
};
1/3Plain Node child_process. No extra deps.
2/3Same vb call CLI you'd run in your terminal.
3/3Returns call_id, status, and a session URL for live monitoring.
api/agent/route.ts
import { execFile } from "node:child_process";
import { promisify } from "node:util";
const run = promisify(execFile);
export async function placeCall(input) {
const { phone_number, name } = input;
const { stdout } = await run("vb", [
"call", phone_number,
"--name", name ?? "",
"--json",
]);
return JSON.parse(stdout); // { call_id, status }
}
In production

Built on Vocal Bridge.

Real applications shipping voice today — from financial assistants to clinical workflows.

Luka AI
Voice-first finance
01 / 06Voice-first finance

Luka AI

A financial assistant powered entirely by voice — natural conversation replaces forms and dashboards.

02 / 06Healthcare

TrialMatch

Voice-first clinical trial matching, founded by team members from Stanford Medicine. Patients describe their condition; the agent surfaces eligible trials in seconds.

03 / 06Multimodal

Wellness Mirror

A multimodal assistant that brings voice and vision together in one intuitive interface — speak, look, and the assistant follows along.

04 / 06Patient guidance

Colonoscopy Prep

Guides patients through prep step-by-step. Voice carries the cognitive load; a familiar visual checklist keeps them oriented.

05 / 06Productivity

Executive Assistant

Lets executives navigate complex dashboards and reports by voice — no more clicking through filters and pivots.

06 / 06Research

LearnAloud

Talk to research papers and documents. Ask questions, request summaries, dive into citations — all by voice, over a familiar reader.

Built by

A team that's shipped voice
for a decade.

Ashwyn Sharma
Ashwyn Sharma
CEO & Co-Founder

A decade of production voice AI from Meta AI, Salesforce, and Otter.ai. Built Vocal Bridge to make voice a standard layer in every AI application.

Backed by

Built with Andrew Ng's AI Fund.

Vocal Bridge is an AI Fund company — co-founded with AI Fund and DeepLearning.AI, the platform millions of developers learn AI on.

AI FundDeepLearning.AI
Field reports

Built by developers,
trusted by developers.

I can't go back to building voice apps with vanilla LiveKit.
Developer
After 15 hours at a Vocal Bridge hackathon
More on LinkedIn
Follow our build-in-public updates
01

I can't go back to building voice apps with vanilla LiveKit.

Developer · After 15 hours at a Vocal Bridge hackathon
02

I've been waiting for Vapi or ElevenLabs to ship this for voice apps. Vocal Bridge finally delivered.

Hackathon finalist
03

Even with free credits from ElevenLabs, we prefer Vocal Bridge's interface.

Startup founder
04

Built a Codex plugin for Vocal Bridge and submitted my YC startup entirely on the platform.

Healthcare founder · Co-founded with a Stanford Medical researcher
Community

Building voice?
Come hang out.

Trade voice-app patterns with the team and other builders. Share what you're shipping. Get help when something's weird at 2 am.

Join the Discorddiscord.gg/MMcpreWbbf
QR code for https://discord.gg/MMcpreWbbf
Scan to join
Vocal Bridge Discord
Voice with VB

Three ways to ship voice.
One platform.

Sixty seconds from import to live voice.