Voice sessions & WebRTC
WebRTC media for browser and Node clients with voice agents ready for barge in. Connect, speak, and stream without running your own signaling stack.
Quickstart →Build on @voicethere/agent, deploy from the CLI, and connect browsers or Node clients. A session carries voice, data channels or both, so the same platform runs a voice support agent, a multiplayer game or a shared whiteboard. We run signaling, sessions, speech and scaling.
npm i @voicethere/agent45
conversations at once in one load test
1,725 of 1,725
caller turns understood correctly
231 ms
median time from transcript to the agent's first word (667 ms p95)
Measured in our voice load test on October 8, 2026, on the Advanced plan. Full results
VoiceThere runs the WebRTC stack, voice workers, and control plane so you can focus on product logic. Deploy with the CLI, connect browsers and Node clients, tune speech on the worker for faster roundtrips, and trace sessions from the dashboard without operating signaling yourself.
WebRTC media for browser and Node clients with voice agents ready for barge in. Connect, speak, and stream without running your own signaling stack.
Quickstart →Optional speech recognition and synthesis on the worker. Fewer network hops for faster voice roundtrips, and speech stays in one system instead of bolting on separate cloud STT and TTS.
Voice settings →Automate upload, promote, and rollout with @voicethere/cli, the same deploy workflow the dashboard uses, scriptable in CI or from your laptop.
CLI login →Structured agent logs and session error diagnostics so you can trace voice and data sessions without SSHing into workers.
Agent logs →Low latency WebRTC data channels for interactive apps, plus optional project Redis for shared session state across clients and agents.
Browser client →Create projects, inspect build history, promote or roll back releases, and tune runner and voice settings from the dashboard or the REST API at /api/v1.
API reference →A browser or Node client connects with a session token.
Voice travels over WebRTC. Speech is recognized on the worker.
TypeScript in defineAgent handles the transcript and decides what to say.
Speech plays back to the caller. Callers can barge in when they talk.
import { defineAgent, speak } from "@voicethere/agent";
export default defineAgent({
async onUserSpeechFinal({ sessionId, text }) {
speak(sessionId, `You said: ${text}`);
},
});voicethere deploy --wait[voicethere] Starting cloud deployment[voicethere] Calling POST /deploymentsDeployment queued: 7c1e4a52-3b9d-4f0a-a6d1-2e85c0b94f17 build: b3f9a0d4-61c8-4e27-9a15-d8e07f2c5b36 mode: drain status: queued[voicethere] Waiting for rollout to completeDeployment completed: 7c1e4a52-3b9d-4f0a-a6d1-2e85c0b94f17 build: b3f9a0d4-61c8-4e27-9a15-d8e07f2c5b36 status: completed mode: drainExample turn. Rows tagged measured come from our load tests; each session in the dashboard has its own trace.
Open the chat launcher in the corner to connect to a live voice agent, or browse all demos on the showcase page.
Scan to open voice chat on your phone
https://app.voicethere.io/?chat=1&connect=1
Install in your agent repo. Build with @voicethere/agent, ship with @voicethere/cli, and connect browsers with @voicethere/client.
Build and verify sandboxed agent bundles. defineAgent, speak, and speech events. Use before every upload.
voicethere login, projects, build upload, promote, and deploy --wait against the VoiceThere API.
Browser and Node client for local dev and cloud voice sessions. Connect, chat, and binary sync over WebRTC.
VoiceThere extends the node-webrtc-rust stack. Develop locally, then deploy the same agent bundle to our cloud.
Write it in TypeScript, run voicethere deploy, and connect from a browser or a Node client.
npm i -g @voicethere/cliYou can change your choice anytime via Cookie settings in the footer.