The whole voice AI stack, from prompt to production.
Agent runtime, workflow engine, knowledge base, test harness, observability — wired together, all open source, all swappable. Bring your own LLM, voice, and telephony.
- MIT licensed
- Self-host or cloud
- SOC 2 · HIPAA · GDPR
One stack for the whole voice loop.
Six tightly-integrated layers, each one swappable. Use the whole platform or pick the pieces you need.
- Voice agents
Compose with prompt, voice, and tools.
Inbound, outbound, widget, or chat — pick the surface, write the prompt, plug in the tools. Switch any layer without rewriting a line.
- Bring-your-own LLM
- Persona library
- Live test pane
- Knowledge base
Grounded answers with citations.
Drop in PDFs, scrape your docs, sync from Notion or Confluence. Tone handles chunking, embeddings, retrieval, and re-ranking.
- RAG with re-ranking
- Native connectors
- Custom vocabulary
- Workflows
Multi-step calls without spaghetti.
Visual canvas for branching logic — qualify, escalate, book, write to your CRM. Drag-and-drop nodes with TypeScript hooks underneath.
- Conditional branches
- Human handoff
- TypeScript hooks
- Tools & integrations
Call any API mid-conversation.
Plug into CRMs, calendars, payment rails, or your own services. Define a tool in TypeScript and your agent can call it in real time.
- Native CRM connectors
- Custom TS tools
- Webhook triggers
- Test center
Catch bugs before customers do.
Run thousands of simulated calls against your agent with realistic personas, accents, and edge cases. Replay real failures to reproduce.
- Parallel calling
- Persona library
- Replay any call
- Observability
Watch every conversation.
Voice-specific metrics — latency, interruption rate, sentiment, gibberish — on every call. Tune LLM judges against ground truth.
- Stereo recordings
- Custom dashboards
- Real-time alerts
One agent, every surface.
Build your agent once. Deploy it on the phone, in your app, on the web — and let it follow the conversation across channels.
Answer every call, 24/7.
Point a Twilio, Telnyx, or SIP number at Tone and your agent picks up — qualifying, routing, booking, escalating.
- Sub-300ms voice loop on warm starts
- Native warm transfer to human agents
- Automatic voicemail & callback flows
Built for the speed of human conversation.
Below 300 milliseconds is where people stop noticing the latency. Tone sits there by default — and we publish how we get there.
218ms
Voice loop p50
STT → LLM → TTS, warm start, en-US
120ms
Time-to-first-byte
Streaming token output to TTS
10k+
Concurrent calls
Per region, autoscaling pool
29
Languages supported
STT + TTS coverage out of the box
99.99%
Uptime SLA
On Tone Cloud, multi-region
8+
LLMs interchangeable
Anthropic, OpenAI, Groq, Llama 3…
Ship your first agent in 60 lines of code.
A typed SDK, a sane CLI, and a runtime you can read end-to-end. No proprietary DSLs, no black boxes — just TypeScript or Python against an open API.
TypeScript-first SDK
Strong types for prompts, tools, schemas, and webhooks. Generators for OpenAPI-style clients.
Local-first dev loop
docker compose up gives you Postgres, Redis, and the agent runtime. Hot-reload prompts and workflows.
Composable runtime
Plug Tone into Express, Next.js, FastAPI, or Hono. Or call our hosted API from anywhere.
// Define a tool your agent can call mid-conversationexport const bookAppointment = tool({name: 'book_appointment',schema: z.object({ doctor: z.string(), at: z.iso() }),async run({ doctor, at }) {return await calendar.book({ doctor, at });},});// Ship the agentconst agent = await tone.agents.create({name: 'Riley',voice: 'jessica@elevenlabs',model: 'claude-sonnet-4-6',systemPrompt: 'You are a friendly receptionist…',tools: [bookAppointment],knowledge: ['kb_clinic_policies'],});await agent.attachPhoneNumber('+14155550188');
Ship voice agents you can actually own.
Spin up Tone locally in 60 seconds. Star us if it makes your day a little easier.