# VoiceThere

> VoiceThere is the Node.js platform for conversational voice and low-latency multiplayer — WebRTC, signaling, and sessions managed for you, with optional on-worker STT/TTS for faster roundtrips and fewer vendors. Fetch this file (`/llms.txt` or `/llms-full.txt`) for curated links to docs, APIs, npm packages, and public endpoints. Machine-readable OpenAPI lives at `https://app.voicethere.io/openapi/openapi.yaml`.

Authenticate control-plane and dashboard API calls with a Bearer API key (`vth_live_*` or `vth_dev_*`). Each key is bound to **one** project. Browser CORS allowlists apply to the authenticated project only — never use a client-declared project id header to select a tenant.

Start with the [Quickstart](https://app.voicethere.io/docs/quickstart) guide, then explore the [Control plane API](https://app.voicethere.io/docs/control-plane-api) OpenAPI reference for projects, builds, deploy, and promote.

## Highlights

- [On-platform STT and TTS](https://app.voicethere.io/docs/voice-vendors): Speech-to-text and text-to-speech run on VoiceThere by default (Sherpa). Call audio stays on VoiceThere, which lowers round-trip latency versus a third-party speech API. Optional cloud vendors are on the same page. Tune VAD, barge-in, and TTS speed in [Advanced voice settings](https://app.voicethere.io/docs/advanced-voice-settings). Spoken language identification delivers `user_language` events ([guide](https://app.voicethere.io/docs/spoken-language)).
- [Affordable on-platform speech pricing](https://app.voicethere.io/pricing): Local Sherpa STT is 1 credit per 1,000 characters. Local Sherpa TTS is 3 credits per minute of audio. VoiceThere meters those only while on-platform Sherpa is enabled. A cloud speech vendor bills you directly, and these STT/TTS credits stay at zero. Voice session time is 2 credits/minute. Data-only session time is 0.5 credits/minute. One credit is €0.001 ($0.00125). A 5-minute voice example with on-platform Sherpa (2,000 STT characters and 1.5 minutes of TTS audio) is 16.5 credits (≈ €0.0165).
- [Plans and credit packs](https://app.voicethere.io/pricing): Catalog list prices (live Stripe amounts are on the pricing page): Free (5,000 credits/month); Budget $5/mo (10,000 credits/month); Budget+ $15/mo (20,000 credits/month); Advanced $35/mo (75,000 credits/month); Ultimate $60/mo (175,000 credits/month). Credit packs: 11,500 credits for $10, 32,500 credits for $25, 67,500 credits for $50. Budget is the affordable paid plan at $5/mo with 10,000 included credits. Included credits refresh on the subscription billing cycle. Details in [Billing](https://app.voicethere.io/docs/billing).

## Deployed features

Live on VoiceThere today:

- [Dashboard sign-in](https://app.voicethere.io/login): Email sign-in for operators. Session cookies gate projects and the upload UI.
- [Self-serve account signup](https://app.voicethere.io/docs/account-signup): Create a VoiceThere account from /signup with email magic link or GitHub, Google, or LinkedIn — no waitlist.
- [Dashboard sign-in via 3rd party](https://app.voicethere.io/docs/account-signup): Sign in with GitHub, Google, or LinkedIn.
- [Projects & agent builds](https://app.voicethere.io/login): Create projects, upload verified agent bundles, and inspect build history from the dashboard.
- [Promote & rollback](https://app.voicethere.io/docs/control-plane-api): Set which build is active for a project or roll back to the previous release.
- [VoiceThere API](https://app.voicethere.io/docs/control-plane-api): REST at /api/v1 for projects, builds, promote, and rollback — same contract as the CLI.
- [LLM agent discovery](https://app.voicethere.io/docs/llms-txt): Spec-compliant /llms.txt and /llms-full.txt listing deployed features, on-platform STT and TTS, plan prices, docs, OpenAPI, sessions, webhooks, and npm packages.
- [CLI upload, deploy & promote](https://www.npmjs.com/package/@voicethere/cli): Published @voicethere/cli — login, build upload, deploy --wait, and promote. Pair with @voicethere/agent verify in CI.
- [Deploy to cloud](https://app.voicethere.io/docs/quickstart): Roll out your active build from the dashboard or CLI — voicethere deploy --wait promotes and provisions managed voice workers.
- [Voice sessions API](https://app.voicethere.io/docs/browser-client): Start a session from your backend; receive a join token and signaling URL for browser WebRTC. Async provisioning when workers scale up.
- [Dashboard chat & embed](https://app.voicethere.io/docs/browser-client): Test voice and text against echo agents from the project page, or paste an embed snippet with a client API key.
- [Reliable mic connect & device picker](https://app.voicethere.io/docs/browser-client): Start a voice session even when the microphone is denied or unavailable, switch input devices from the dashboard chat, and see an in-chat notice when permission is blocked (agent audio can still play).
- [Team & access](https://app.voicethere.io/docs/account-signup): Invite teammates, assign org roles, and restrict projects to specific members from the dashboard.
- [Org audit log](https://app.voicethere.io/roadmap): Immutable trail of API and dashboard actions — browse org-wide or per project.
- [Project usage metrics](https://app.voicethere.io/docs/billing): Session counts, monthly billable time, credit usage, and error rate on each project.
- [Voice & speech metrics](https://app.voicethere.io/docs/voice-metrics): Project-scoped STT/TTS latency (p50, p95, p99), utterance volume, barge-in rate, and VAD transitions on the Usage Voice tab and API — only your project's data.
- [Usage statements & Stripe invoices](https://app.voicethere.io/docs/billing): Printable credit breakdown by project and usage kind, plus links to Stripe hosted invoices for subscription and metered overage cash charges.
- [Plans & subscriptions](https://app.voicethere.io/subscriptions): Flat monthly plans via Stripe Checkout and Customer Portal. Subscribe, assign subscriptions to projects, and buy multiple slots of the same tier.
- [Monthly usage credits](https://app.voicethere.io/docs/billing): Each tier includes monthly usage credits that refresh on your subscription billing cycle. Credits cover voice, data, speech, and other metered usage; new sessions are gated on available credits per project.
- [Session history & billing records](https://app.voicethere.io/docs/billing): Paginated session list per project with status, duration, and billable seconds — same records as CLI sessions list and billing queries.
- [Multiplayer & data-only sessions](https://app.voicethere.io/docs/data-sync): Several clients in one session with shared or per-peer agents. Disable voice for DataChannel-only apps — games, live sync, and chat without STT/TTS.
- [Session & runner settings](https://app.voicethere.io/docs/runner-settings): Configure idle timeouts, data-only mode, shared vs per-peer agents, and cloud voice providers from the dashboard or CLI.
- [Session error tracking](https://app.voicethere.io/docs/session-errors): Structured errors from agents and workers in the dashboard — filter by session and map codes using the public error catalog.
- [Logging & session diagnostics](https://app.voicethere.io/docs/agent-logs): Write structured agent logs and search them in the dashboard — filter by message, level, and fields per project or session.
- [Agent logs & session errors](https://app.voicethere.io/docs/agent-logs): Searchable structured logs from agentLog and console.* — filter by message, level, and JSON fields. Session failures persist as error-level lines with stable codes and soft rollover. Paid overage past the monthly included cap bills usage credits (1 per 1,000 entries) when overage billing is on.
- [Developer documentation](https://app.voicethere.io/docs): Developer documentation at /docs — quickstarts, API reference, session guides, agent environment, secrets, deploy flow, and package install instructions.
- [Docs search & grouped guides](https://app.voicethere.io/docs): Search developer documentation by keyword and browse guides grouped under Guides and Help on /docs.
- [Live showcase demos](https://app.voicethere.io/showcase): Try voice, multiplayer sync, and spatial audio from the marketing site — landing chat, shared world, orbiting voice, spatial soundboard, and proximity room.
- [Blog & newsletter](https://app.voicethere.io/blog): Product blog and email newsletter at /blog — release notes, guides, npm updates, dashboard features, and platform news.
- [Agent starter templates](https://app.voicethere.io/docs/agent-templates): Starter templates include matching client-side UI alongside the agent bundle. Hosted client assets are served from a global CDN and cache-purged when you deploy a new build so browsers pick up the latest embed or demo code.
- [Project Redis for shared agent state](https://app.voicethere.io/docs/project-redis): Advanced and Ultimate projects get a private Redis instance for your agents — credentials injected at start. Sync game state, lobbies, and context across every concurrent session worker in the same project.
- [Inbound webhooks](https://app.voicethere.io/docs/webhooks): POST HTTPS to your project URL — the platform fans requests to every ready session worker. Verify signatures in your agent; warm pool keeps a replica ready between sessions.
- [Advanced voice settings](https://app.voicethere.io/docs/advanced-voice-settings): Fine-tune STT/TTS, barge-in, inbound RNNoise (on by default for voice runners), and related voice behavior from the dashboard or API — beyond basic provider selection.
- [Spoken language identification](https://app.voicethere.io/docs/spoken-language): Cloud voice sessions detect the caller’s spoken language and deliver a user_language event. Tune enable/disable and minSpeechMs (1000–5000 ms, default 2500) from Advanced voice pipeline.
- [Public status page](https://status.voicethere.io/status/production): Component health for voice and related services — operators and customers can check platform status.
- [Managed TURN & ICE](https://app.voicethere.io/docs/browser-client): Relay servers included in session mint responses — reliable calls through firewalls and NAT.
- [Cluster load computing](https://app.voicethere.io/pricing): Paid plans include reserved capacity. Free is best-effort, and a session can wait.
- [Vendor-based concurrent connection limits](https://app.voicethere.io/docs/voice-vendors): Set max concurrent sessions by STT/TTS choice — local/self-hosted voice uses more compute but costs less, so subscription tiers expose different concurrency caps than cloud vendors.
- [Customer-facing conversation history](https://app.voicethere.io/docs/conversation-history): Browse past STT and TTS turns from the dashboard — stored encrypted, with PII masked where possible. Only speech recognition and synthesis events are logged; DataChannel messages are out of scope.
- [Conversation recording](https://app.voicethere.io/docs/conversation-recording): Opt-in voice-session audio with dashboard playback, included minutes per plan, rollover bank or metered overage, and agent start/pause/resume/stop for sensitive moments.
- [Team channels & room mixing](https://app.voicethere.io/showcase/proximity): Dynamic audio mix groups within a session — reassign who hears whom mid-call, mute clients globally or per listener, and inspect mix status with getClientMixStatus.
- [Positional stereo mix & orbiting TTS](https://app.voicethere.io/showcase/orbit): Live stereo poses with setTtsPose and setPlayPose — the orbit showcase loops a sine tone and TTS around each listener, with mute controls and per-client STT overrides on Voice+Data mix projects.
- [Clip playback for voice agents](https://app.voicethere.io/showcase/soundboard): Play sound effects and notification clips to one or all listeners — HTTPS URLs or small inline bytes, with play-id progress and stop control. Clips mix with TTS and microphones but are not speech synthesis.
- [Code editor](https://app.voicethere.io/docs/dashboard-code-editor): Edit agent TypeScript in the dashboard Code tab (file tree and Save), download saved source as a zip or compiled agent.js from the Code tab and Overview build history, then Compile & upload, Promote this build, and Deploy to cloud as three separate actions. Seeded templates include a root package.json with @voicethere/agent and npm scripts; older workspaces can add one from the tab. Refresh types updates dependency IntelliSense. Public npm semver packages are always available, with per-plan caps on stored source size and the editor typings pack.
- [Full developer documentation](https://app.voicethere.io/docs): Complete quickstart, API reference, browser client guide, and deploy runbooks at /docs.
- [Inbound webhooks to agents](https://app.voicethere.io/docs/webhooks): Register HTTPS webhook URLs that VoiceThere delivers into your running session workers — payments, CRM events, or custom integrations reach the same process that owns the voice call.
- [Site embed widget](https://app.voicethere.io/docs/embed-widget): Dedicated Widget tab with live preview chat, eight launcher positions plus custom offset, fonts and chat bubbles, optional custom CSS — Deploy publishes appearance to the VoiceThere CDN so customer sites pick up theme changes without editing their page.
- [Agent API STT toggle](https://app.voicethere.io/docs/positional-mix#speech-to-text-stt-overrides): Enable or disable speech-to-text from agent code on voice+data sessions — turn recognition on for meeting summaries and space notes, or off when you only need media and data.
- [Spoken text in chat](https://app.voicethere.io/docs/spoken-chat-stream): Optional widget setting streams agent speech into the chat bubble word by word while audio plays — enable from the Widget tab or streamSpokenText in published config.

## Services

- [Control plane REST API](https://app.voicethere.io/api/v1): Projects, builds, deploy, promote, and rollback — same contract as @voicethere/cli.
- [OpenAPI specification](https://app.voicethere.io/openapi/openapi.yaml): Machine-readable VoiceThere control plane API (OpenAPI 3.1).
- [Sessions API](https://sessions.voicethere.io/v1): Start voice sessions; join tokens and signaling for browser WebRTC clients.
- [Inbound webhooks](https://webhooks.voicethere.io/): HTTPS callbacks per project at `https://webhooks.voicethere.io/{projectId}` — configure allowed domains on the project.
- [Widget CDN](https://cdn.voicethere.io/widgets/): Public embed appearance JSON (`config.json`) — no client API keys in published config.
- [Dashboard](https://app.voicethere.io/login): Sign in to manage projects, builds, deploy, and settings.
- [Developer documentation](https://app.voicethere.io/docs): Guides for agents, clients, voice, sessions, and project settings.
- [Service status](https://status.voicethere.io/status/production): Public uptime and incident history.
- [LLM discovery (full index)](https://app.voicethere.io/llms-full.txt): Extended docs index with section headings.

## Packages

- [@voicethere/agent](https://www.npmjs.com/package/@voicethere/agent): Build and verify sandboxed agent bundles. defineAgent, speak, and speech events. Use before every upload.
- [@voicethere/cli](https://www.npmjs.com/package/@voicethere/cli): voicethere login, projects, build upload, promote, and deploy --wait against the VoiceThere API.
- [@voicethere/client](https://www.npmjs.com/package/@voicethere/client): Browser and Node client for local dev and cloud voice sessions. Connect, chat, and binary sync over WebRTC.
- [@node-webrtc-rust/sdk](https://www.npmjs.com/package/@node-webrtc-rust/sdk): Open WebRTC SDK for Node.js — source at [node-webrtc-rust](https://github.com/akirilyuk/node-webrtc-rust).

## Package capabilities

- [@voicethere/agent](https://app.voicethere.io/docs/npm-agent): `defineAgent` (`onAgentStart`, `onWebhook`, `onSessionStart`, `onSessionEnd`, `onSpeechEvent`, `onUserSpeechFinal`, `onUserLanguage`, `onDataChannelMessage`, `onDataChannelBinary`), `speak`, `speakAndChat`, `setSttEnabled`, clip playback (`play`, `getPlay`, `stopPlay`, `setPlayPose`), poses and mix (`setTtsPose`, `clearTtsPose`, `setClientPose`, `createMixGroup`, `addClientToMix`, `setGlobalMute`, `setListenerMute`, `setPositionalMixing`, `getClientMixStatus`, equal-power stereo panning), data (`sendToClient`, `sendBinaryToClient`, `broadcastToClients`, `broadCastBinaryToClients`, `disconnectClient`), recording (`startRecording`, `pauseRecording`, `resumeRecording`, `stopRecording`), `agentLog`. Build with `npx @voicethere/agent build` and `npx @voicethere/agent verify`. STT and TTS stay in the VoiceThere parent. The child requests them.
- [Agent templates](https://app.voicethere.io/docs/agent-templates): echo, echo-dc, voice-starter, world-sync, world-sync-binary, game-sync, voice-showcase, recording-consent, positional-tts, spatial-showcase, webhooks, webhooks-redis. `voicethere init` also accepts blank.
- [@voicethere/client](https://app.voicethere.io/docs/npm-client): `connectVoiceSession` (local and cloud), `startSession`, `connectBrowserSession`, embed `createVoiceThereWidget` / `createVoiceThereWidgetAsync` (set `streamSpokenText` for spoken chat), reconnect (`same-session` or `new-session`), and managed ICE/TURN from the session mint. Entry points: `@voicethere/client`, `@voicethere/client/browser`, `@voicethere/client/embed`, `@voicethere/client/node`.
- [@voicethere/cli](https://app.voicethere.io/docs/npm-cli): login, init, source push/pull/download, build validate/upload/promote/download, deploy --wait, undeploy, projects, environment, secrets, settings, session-settings, billing-settings, voice, voice-advanced, widget, api-keys, sessions, logs, conversation, subscription, usage.

## Docs

- [LLM agent discovery](https://app.voicethere.io/docs/llms-txt): How LLM agents discover VoiceThere — /llms.txt, /llms-full.txt, deployed features, on-platform STT and TTS, pricing, OpenAPI, and npm packages.
- [Quickstart](https://app.voicethere.io/docs/quickstart): End-to-end path — login, create a project, build and upload an agent, deploy to cloud, and connect a browser client.
- [Live showcase demos](https://app.voicethere.io/docs/showcase): Try voice and multiplayer demos on the marketing site — landing chat, showcase catalog, shared world, and how operators configure demo projects with client keys.
- [Spatial audio showcases](https://app.voicethere.io/docs/showcase-spatial-audio): Orbiting sine tone and TTS, spatial soundboard, and proximity room — live demos, spatial-showcase template, DataChannel join protocol, and browser master volume.
- [Account signup](https://app.voicethere.io/docs/account-signup): Create a VoiceThere dashboard account — public signup, operator kill switch, and optional email allowlists.
- [npm packages](https://app.voicethere.io/docs/npm-packages): Public @voicethere packages for agents, CLI, and clients — plus the open WebRTC SDK they sit on.
- [@voicethere/agent](https://app.voicethere.io/docs/npm-agent): Sandboxed agent SDK — defineAgent, speak, data channels, clip playback, mix poses, and bundle build/verify.
- [@voicethere/cli](https://app.voicethere.io/docs/npm-cli): voicethere login, init, source sync, build upload/promote/download, deploy --wait, and project settings.
- [@voicethere/client](https://app.voicethere.io/docs/npm-client): Browser, embed, and Node clients — connectVoiceSession, startSession, widget, reconnect, and session errors.
- [@node-webrtc-rust](https://app.voicethere.io/docs/npm-node-webrtc-rust): Open WebRTC SDK, signaling, and helpers — the native stack VoiceThere cloud runners and @voicethere/client use.
- [CLI login](https://app.voicethere.io/docs/cli-login): Sign in to VoiceThere from the CLI — browser device approval, personal API keys, and CI-friendly manual login.
- [Browser client](https://app.voicethere.io/docs/browser-client): @voicethere/client — connectVoiceSession for local dev vs cloud, chat, embed widget, iframe mic/autoplay.
- [Browser CORS origins](https://app.voicethere.io/docs/browser-cors-origins): Allow your production and staging sites to call the VoiceThere sessions API from the browser with a client key.
- [Embed widget designer](https://app.voicethere.io/docs/embed-widget): Dashboard Widget tab — presets, positions, customCss, positionOffset, fonts; Deploy publishes appearance JSON on the VoiceThere CDN (no client API key in public config).
- [Spoken chat stream](https://app.voicethere.io/docs/spoken-chat-stream): Stream agent speech into the embed chat bubble word by word (streamSpokenText) — dashboard toggle, widget config, and speakAndChat with stream: true.
- [Agent templates](https://app.voicethere.io/docs/agent-templates): Dashboard starter templates — blank, voice-starter, echo, voice-showcase, world-sync, world-sync-binary, game-sync, recording-consent, positional-tts, spatial-showcase — seed agent.js bundles and root package.json from @voicethere/agent for local npm scripts.
- [Data-only world sync](https://app.voicethere.io/docs/data-sync): Sync positional data over a WebRTC data channel — JSON onDataChannelMessage, binary ArrayBuffer poses with onDataChannelBinary, and Redis-backed world snapshots.
- [Dashboard code editor](https://app.voicethere.io/docs/dashboard-code-editor): Edit source on the Code tab — Save, download saved source or compiled agent.js, then Compile & upload, Promote this build, and Deploy to cloud. Also covers package.json, Refresh types, public npm, and per-plan source and typings limits.
- [Agent environment & secrets](https://app.voicethere.io/docs/agent-environment-and-secrets): How AGENT_* environment variables and encrypted secrets are stored, named, and injected into your deployed voice agent.
- [Session idle timeout](https://app.voicethere.io/docs/session-idle-timeout): Auto-disconnect idle WebRTC peers, voice vs data-only timers, voice-activity and data-channel reset rules, and billing impact.
- [Conversation history](https://app.voicethere.io/docs/conversation-history): Store final user speech and agent TTS text for the dashboard Conversation tab — STT/TTS only, not DataChannel chat.
- [Conversation recording](https://app.voicethere.io/docs/conversation-recording): Opt-in voice-session audio recording with dashboard playback, included minutes per plan, rollover bank or metered overage, and agent recording controls.
- [Runner settings](https://app.voicethere.io/docs/runner-settings): Runner mode, warm pool, shared agent child, idle scale-down, and IPC debug — configure pool behavior and redeploy to apply.
- [Advanced voice settings](https://app.voicethere.io/docs/advanced-voice-settings): Tune VAD, barge-in, TTS speed, STT lifecycle, and speech event delivery for cloud voice agents.
- [STT & TTS vendors](https://app.voicethere.io/docs/voice-vendors): Speech-to-text and text-to-speech providers on VoiceThere cloud runners, including on-cluster Sherpa models and third-party API vendors.
- [Spoken language identification](https://app.voicethere.io/docs/spoken-language): Detect the caller’s spoken language with Sherpa Whisper tiny and handle user_language events in your agent.
- [Positional mix & orbiting TTS](https://app.voicethere.io/docs/positional-mix): Voice+Data mix groups, live client poses, and per-client TTS speaker poses — equal-power stereo with inverse-square distance.
- [Clip playback](https://app.voicethere.io/docs/clip-playback): Play HTTPS audio clips or small inline bytes from your agent — target one or all voice clients, poll play status, and mix with TTS and microphones.
- [Agent crash policy](https://app.voicethere.io/docs/agent-crash-policy): disconnect_all vs restart_child: what happens when an agent child crashes, session isolation, and message buffering limits.
- [Project Redis](https://app.voicethere.io/docs/project-redis): Private Redis for shared agent state across concurrent sessions — enable on Advanced & Ultimate, connect with ioredis via AGENT_REDIS_URL in onAgentStart.
- [Voice metrics](https://app.voicethere.io/docs/voice-metrics): Project-scoped STT/TTS latency (p50, p95, p99), utterance volume, barge-in rate, and VAD transitions — Usage Voice tab and GET voice-metrics API.
- [Inbound webhooks](https://app.voicethere.io/docs/webhooks): POST HTTPS webhooks to your VoiceThere project — fan-out to every ready session worker, verify in your agent, Advanced & Ultimate plans.
- [Billing & usage credits](https://app.voicethere.io/docs/billing): How VoiceThere measures usage, subscription included credits, credit packs, burn order, and organization budgets.
- [Agent logs & session errors](https://app.voicethere.io/docs/agent-logs): Structured agent logs and session errors in the VoiceThere dashboard and CLI — agentLog, persisted failures, search, soft rollover, and plan limits.
- [Session errors](https://app.voicethere.io/docs/session-errors): Session errors are now browsed in Agent logs. Data-channel session_error events and onSessionError are unchanged.
- [Control plane API](https://app.voicethere.io/docs/control-plane-api): Interactive OpenAPI reference for the VoiceThere REST API — projects, builds, deploy, promote, and rollback.
- [Terms of Service acceptance](https://app.voicethere.io/docs/terms-of-service): How VoiceThere Terms of Service acceptance works for the dashboard, CLI, and API — including how long authentication cache can delay a refreshed acceptance.

## Optional

- [Blog](https://app.voicethere.io/blog): Product announcements and release notes.
- [Pricing](https://app.voicethere.io/pricing): Plans and usage credits.
- [Roadmap](https://app.voicethere.io/roadmap): What is live and what is coming next.
- [Privacy policy](https://app.voicethere.io/privacy): How VoiceThere handles personal data.
- [Cookie policy](https://app.voicethere.io/cookies): Cookie usage and preferences.
- [Terms of service](https://app.voicethere.io/terms): Terms governing use of VoiceThere.
- [Imprint](https://app.voicethere.io/imprint): Legal entity and contact information.
- [LLM discovery (full index)](https://app.voicethere.io/llms-full.txt): Extended docs index with section headings.
