Examples
Runnable example apps covering every provider, pattern, and use case.
Every example is a standalone Vite app you can run locally. Clone the repository, install dependencies, and start any example:
git clone https://github.com/lukeocodes/composite-voice.git
cd composite-voice
pnpm install
pnpm --filter 00-minimal-voice-agent devEach example runs on its own port so you can run several simultaneously. Found 29 examples.
Foundation
minimal-voice-agent
Minimal voice agent — NativeSTT (Web Speech API) + Anthropic Claude + NativeTTS (SpeechSynthesis)
conversation-history
Multi-turn conversation with NativeSTT + Anthropic + NativeTTS
system-persona
Persona selector with pre-built system prompts — NativeSTT + Anthropic + NativeTTS
event-inspector
Full event timeline with filtering — developer debugging tool
error-recovery
Error simulation and auto-recovery demonstration
turn-taking
Turn-taking strategy visualization — auto, conservative, aggressive
advanced-config
Advanced configuration showcase — 3-provider multi-role and 5-provider explicit patterns with queue options
Server & Deployment
proxy-server
Server-side proxy — Deepgram + Anthropic via Express, no API keys in the browser
nextjs-proxy
Next.js App Router proxy — secure deployment with createNextJsProxy
custom-provider
Custom LLM provider extending BaseLLMProvider — zero API keys needed
multi-language
Language switching mid-session — international voice agent
Deepgram Pipelines
deepgram-pipeline
Full Deepgram pipeline — DeepgramSTT nova-3 + Anthropic Claude + DeepgramTTS aura-2
eager-pipeline
DeepgramFlux eager/preflight pipeline — start LLM before speech ends
deepgram-options
Deepgram STT configuration panel — model, VAD, endpointing, and more
deepgram-voices
Deepgram TTS voice gallery — preview and select from all Aura 2 voices
deepgram-conversation-history
Complete production agent — Deepgram STT/TTS + Anthropic Claude + conversation history
Provider Showcases
anthropic-models
Side-by-side Anthropic model comparison — Haiku vs Sonnet vs Opus
anthropic-streaming-config
Anthropic streaming config — temperature, maxTokens, and topP tuning
openai-pipeline
Minimal OpenAI voice agent — NativeSTT + OpenAI GPT + NativeTTS
openai-deepgram
OpenAI + Deepgram production pipeline — mix-and-match providers
openai-tts-pipeline
OpenAI voice agent — NativeSTT + OpenAI GPT + OpenAI TTS
webllm-pipeline
Fully offline voice agent — NativeSTT + WebLLM (in-browser via WebGPU) + NativeTTS
groq-pipeline
Groq voice pipeline — DeepgramSTT nova-3 + Groq LLM + DeepgramTTS aura-2
assemblyai-pipeline
AssemblyAI voice pipeline — AssemblyAI STT + Anthropic Claude + DeepgramTTS aura-2
elevenlabs-pipeline
ElevenLabs voice pipeline — DeepgramSTT nova-3 + Anthropic Claude + ElevenLabs TTS
elevenlabs-stt
ElevenLabs STT — real-time transcription with Scribe V2 via proxy
cartesia-pipeline
Cartesia voice pipeline — DeepgramSTT nova-3 + Groq LLM + Cartesia TTS
gemini-pipeline
Gemini voice pipeline — DeepgramSTT nova-3 + Gemini LLM + ElevenLabs TTS
mistral-pipeline
Mistral voice pipeline — DeepgramSTT nova-3 + Mistral LLM + ElevenLabs TTS
Where to start
New to the SDK? Start with 00-minimal-voice-agent — browser-native providers, one API key.
Building for production? Jump to 20-deepgram-pipeline for cloud-grade STT/TTS, then add 10-proxy-server for secure key management.
Privacy-sensitive? See 50-webllm-pipeline — everything runs in the browser, no data leaves the device.