Ship production voice agents without building WebRTC yourself

VoiceThere is the Node.js platform for conversational voice and low latency multiplayer. You write the agent in TypeScript. We run WebRTC, signaling, sessions, and scale.

Connect browsers and Node clients. Deploy with the CLI. Debug live traffic from the dashboard. Optional speech on the worker cuts voice roundtrips and keeps STT and TTS in one system so you manage fewer vendors.

Plans start with a monthly credit allowance for voice and data sessions. Use what you need, top up with credit packs or metered overage, and talk to us for Enterprise quotes.

Speech To TextText To SpeechBrowserAgent

What you get

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.

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

Local STT & TTS on workers

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

CLI for deploy & releases

Automate upload, promote, and rollout with @voicethere/cli, the same deploy workflow the dashboard uses, scriptable in CI or from your laptop.

CLI login

Agent logs & session diagnostics

Structured agent logs and session error diagnostics so you can trace voice and data sessions without SSHing into workers.

Agent logs

Multiplayer & data channels

Low latency WebRTC data channels for interactive apps, plus optional project Redis for shared session state across clients and agents.

Browser client

Dashboard & control plane

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

See the full product roadmap

How it works

  1. 1

    Client joins

    A browser or Node client connects with a session token.

  2. 2

    Audio and speech to text

    Voice travels over WebRTC. Speech is recognized on the worker.

  3. 3

    Your agent runs

    TypeScript in defineAgent handles the transcript and decides what to say.

  4. 4

    Text to speech returns

    Speech plays back to the caller. Callers can barge in when they talk.

agent.tsVoice
import { defineAgent, speak } from "@voicethere/agent";

export default defineAgent({
  async onUserSpeechFinal({ sessionId, text }) {
    speak(sessionId, `You said: ${text}`);
  },
});

Live voice demo

Open the chat launcher in the corner to connect to a live voice agent, or browse all demos on the showcase page.

Developer packages

Install in your agent repo. Build with @voicethere/agent, ship with @voicethere/cli, and connect browsers with @voicethere/client.

@voicethere/agent

Build and verify sandboxed agent bundles. defineAgent, speak, and speech events. Use before every upload.

npm

@voicethere/cli

voicethere login, projects, build upload, promote, and deploy --wait against the VoiceThere API.

npm

@voicethere/client

Browser and Node client for local dev and cloud voice sessions. Connect, chat, and binary sync over WebRTC.

npm

Built on open source

VoiceThere extends the node-webrtc-rust stack. Develop locally, then deploy the same agent bundle to our cloud.

@node-webrtc-rust/sdk

Develop voice agents locally with Rust native media, VAD, and optional Sherpa STT and TTS. Peer dependency of @voicethere/agent.

npm

node-webrtc-rust

Full library source, examples, and Sherpa roundtrip demos. The media stack behind VoiceThere.

GitHub