Open-source alternatives to Vapi

agent-starter-react leads with 50, ahead of agent-starter-node (49) and agent-starter-python (48). Updated from public GitHub data.

The highest-scoring open-source projects in Voice and realtime. They are picks, not exact replacements, so read the weaknesses before you switch. The same picks fit if you are leaving Retell AI or Bland AI.

Open-source alternatives to Vapi
RankProjectScore
1agent-starter-reactNext.js voice assistant frontend for LiveKit AgentsVoice and realtime952 starsMIT50 out of 100
2agent-starter-nodeNode.js voice agent on LiveKit Agents with turn detection and simulationsVoice and realtime114 starsMIT49 out of 100
3agent-starter-pythonPython voice agent on LiveKit Agents with turn detection and simulationsVoice and realtime265 starsMIT48 out of 100
#4voice-ui-kitReact components and templates for Pipecat voice agent frontendsVoice and realtime418 starsBSD-2-Clause47 out of 100
#5pipecat-examplesRunnable Pipecat voice agent examples for phone, web and deploymentVoice and realtime395 starsBSD-2-Clause42 out of 100
#6agent-starter-androidKotlin and Jetpack Compose voice assistant client for LiveKit AgentsVoice and realtime104 starsMIT40 out of 100
#7agent-starter-swiftSwiftUI voice agent client for iOS, macOS and visionOS on LiveKitVoice and realtime97 starsMIT40 out of 100
#8agent-starter-flutterFlutter voice agent client for iOS, Android, macOS and webVoice and realtime93 starsMIT39 out of 100
#9examplesPrompt-generated ElevenLabs examples for speech, music and voice agentsVoice and realtime629 starsMIT35 out of 100
#10agent-starter-react-nativeExpo React Native voice assistant client for LiveKit AgentsVoice and realtime84 starsMIT35 out of 100

Reviews

150 out of 100

agent-starter-react

Next.js voice assistant frontend for LiveKit Agents

952 starsMITlast commit Sep 2026

Next.js app on LiveKit Agents UI components and the LiveKit JS SDK: welcome and session views, chat transcript, media tiles, camera, screen share, avatar rendering and five audio visualizer styles. A route at app/api/token issues LiveKit tokens from your project credentials. Frontend only; pair it with a LiveKit agent such as agent-starter-python or agent-starter-node.

Strengths

  • Transcript, media tiles, avatar video and visualizers already composed
  • Agents UI components are installed into components/ and editable in place
  • Token route included; development token server also supported
  • Matching Android, Swift, Flutter and React Native starters exist

Weaknesses

  • Needs a separate LiveKit agent and a LiveKit Cloud or self-hosted server
  • Token route has no authentication; add one before production
  • No tests or Docker
  • TypeScript
  • Needs LiveKit Cloud or self-hosted LiveKit server, a LiveKit agent
  • GitHub template
  • env example file
249 out of 100

agent-starter-node

Node.js voice agent on LiveKit Agents with turn detection and simulations

114 starsMITlast commit Oct 2026

pnpm TypeScript voice assistant on LiveKit Agents using LiveKit Inference for STT, LLM (default Gemma 4 31B) and TTS (default Fish Audio S2.1 Pro), with the LiveKit turn detector, adaptive interruption handling and noise cancellation. Ships a Dockerfile for LiveKit Cloud, an AGENTS.md with LiveKit skills, and scenarios.yaml simulations run in CI on merge to main. Backend only; pair with a LiveKit frontend starter.

Strengths

  • Turn detector, adaptive interruption handling and noise cancellation preconfigured
  • Conversation simulations in scenarios.yaml run in CI on merge to main
  • Dockerfile and lk CLI flow for LiveKit Cloud deployment
  • AGENTS.md and LiveKit skills for Claude Code, Cursor and Codex

Weaknesses

  • Defaults rely on LiveKit Inference and Cloud noise cancellation; self-hosting needs plugin swaps
  • CI simulations use real inference and need LiveKit secrets
  • pnpm-lock.yaml is not tracked; commit it yourself
  • No frontend; a separate client starter is required
  • TypeScript, LiveKit Inference (OpenAI, Cartesia, Deepgram and others), LiveKit realtime model plugins
  • Needs LiveKit Cloud (or self-hosted LiveKit plus model plugins)
  • GitHub template
  • Docker
  • env example file
348 out of 100

agent-starter-python

Python voice agent on LiveKit Agents with turn detection and simulations

265 starsMITlast commit Oct 2026

uv-managed Python voice assistant on LiveKit Agents using LiveKit Inference for STT, LLM (default Gemma 4 31B) and TTS (default Fish Audio S2.1 Pro), with the LiveKit turn detector, adaptive interruption handling and noise cancellation. Ships a Dockerfile for LiveKit Cloud, an AGENTS.md with LiveKit skills, and scenarios.yaml simulations run in CI on merges to main. Backend only; pair with a LiveKit frontend starter.

Strengths

  • Turn detector, adaptive interruption handling and noise cancellation preconfigured
  • Conversation simulations in scenarios.yaml run in CI on merge to main
  • Dockerfile and lk CLI flow for LiveKit Cloud deployment
  • AGENTS.md and LiveKit skills for Claude Code, Cursor and Codex

Weaknesses

  • Defaults rely on LiveKit Inference and Cloud noise cancellation; self-hosting needs plugin swaps
  • CI simulations use real inference and need LiveKit secrets
  • uv.lock is not tracked; commit it yourself
  • No frontend; a separate client starter is required
  • Python, LiveKit Inference (OpenAI, Cartesia, Deepgram and others), LiveKit realtime model plugins
  • Needs LiveKit Cloud (or self-hosted LiveKit plus model plugins)
  • GitHub template
  • Docker
  • env example file
#447 out of 100

voice-ui-kit

React components and templates for Pipecat voice agent frontends

418 starsBSD-2-Clauselast commit Oct 2026

pnpm workspace publishing @pipecat-ai/voice-ui-kit: React components (connect button, control bar, voice visualizer, audio controls), hooks, a ConsoleTemplate debug UI and a ThemeProvider on Tailwind 4. Works over the Pipecat Daily or SmallWebRTC transports; examples cover the console template, custom components, Tailwind and Vite. For teams building a browser frontend for a Pipecat bot; the bot is separate.

Strengths

  • Drop-in ConsoleTemplate for testing and benchmarking a Pipecat bot
  • Daily and SmallWebRTC transports supported
  • Tailwind 4 theme via CSS variables; Storybook included
  • Four example apps: console, components, Tailwind, Vite

Weaknesses

  • Library plus examples, not a deployable app; you assemble the page
  • Requires a running Pipecat server exposing /api/offer or a Daily room
  • No auth or persistence
  • TypeScript
  • Needs Pipecat bot server, Daily account (optional transport)
#542 out of 100

pipecat-examples

Runnable Pipecat voice agent examples for phone, web and deployment

395 starsBSD-2-Clauselast commit Sep 2026

Pipecat apps in Python 3.11+, one directory each: phone bots for Twilio, Telnyx, Plivo, Exotel and Daily SIP, a simple-chatbot with React, Swift, Kotlin and React Native clients, websocket and p2p WebRTC transports, Gemini Live, local smart-turn, OpenTelemetry tracing and deploy recipes for Pipecat Cloud, Fly.io, Modal and Cerebrium. For teams on Pipecat who want a working pattern to copy.

Strengths

  • Telephony examples for Twilio, Telnyx, Plivo, Exotel and Daily SIP
  • simple-chatbot ships React, Swift, Kotlin and React Native clients
  • Deployment and OpenTelemetry (Langfuse, LangSmith, Jaeger) examples

Weaknesses

  • Each example has its own setup; no single app to fork
  • Needs API keys for STT, LLM and TTS services (OpenAI, Deepgram, Cartesia)
  • Beginner examples live in the main Pipecat repo, not here
  • Issues are tracked in the main Pipecat repo
  • Python, Pipecat service plugins (OpenAI, Deepgram, Cartesia, Gemini Live)
  • Needs OpenAI, Deepgram, Cartesia or similar API keys, Daily or a telephony provider for phone examples
  • Docker
#640 out of 100

agent-starter-android

Kotlin and Jetpack Compose voice assistant client for LiveKit Agents

104 starsMITlast commit Aug 2026

Android Studio project on the LiveKit Android SDK giving you a simple voice interface to a LiveKit agent, scaffolded with lk app create. It connects to the public LiveKit homepage agent by default; to reach your own agent you set a development token server id in TokenExt.kt. Client only: the agent and a production token server are yours to build.

Strengths

  • Kotlin and Jetpack Compose on the official LiveKit Android SDK
  • Works immediately against the public LiveKit homepage agent
  • Pairs with the Python and Node agent starters

Weaknesses

  • Token server id is hardcoded in TokenExt.kt; production token flow is yours
  • README does not document video, text input or avatar support
  • No tests
  • Kotlin
  • Needs LiveKit Cloud project, a LiveKit agent, token server
  • GitHub template
  • env example file
#740 out of 100

agent-starter-swift

SwiftUI voice agent client for iOS, macOS and visionOS on LiveKit

97 starsMITlast commit Sep 2026

Xcode project on the LiveKit Swift SDK with voice, text, camera and screen-share input, transcriptions and avatar rendering, built on the SDK's Session and LocalMedia observables with preconnect audio buffering on by default. Targets iOS, iPadOS, macOS and visionOS. Set AgentToConnect.current to a development token server id for your own agent, then swap in an EndpointTokenSource for production.

Strengths

  • Voice, text, video and screen-share input toggled per feature in code
  • Preconnect audio buffer makes connects feel instant
  • Renders the agent's avatar video automatically when published
  • One codebase for iOS, iPadOS, macOS and visionOS

Weaknesses

  • Video and screen share need a physical device, not the Simulator
  • Production token generation is left to you
  • No tests
  • App Store archive warns about missing LiveKitWebRTC dSYMs
  • Swift
  • Needs LiveKit Cloud project, a LiveKit agent, token server
  • GitHub template
#839 out of 100

agent-starter-flutter

Flutter voice agent client for iOS, Android, macOS and web

93 starsMITlast commit Sep 2026

Flutter project on the LiveKit Flutter SDK with voice, text and optional camera or screen-share input, transcriptions and agent video rendering, built around livekit_client.Session with preconnect audio buffering. Targets iOS, macOS, Android and web. Set LIVEKIT_TOKEN_SERVER_ID in assets/.env for development, then swap in an EndpointTokenSource in app_ctrl.dart before shipping.

Strengths

  • Covers iOS, macOS, Android and web from one Flutter codebase
  • Voice, text, video and screen share input wired
  • Falls back to an audio visualizer when the agent publishes no video
  • Test suite present

Weaknesses

  • Development token server lets any client request any permissions
  • Production token generation is yours to implement
  • Video input may need a physical device
  • Client only; needs a separate LiveKit agent
  • Dart
  • Needs LiveKit Cloud project, a LiveKit agent, token server
  • GitHub template
  • env example file
#935 out of 100

examples

Prompt-generated ElevenLabs examples for speech, music and voice agents

629 starsMITlast commit Oct 2026

Monorepo of small runnable ElevenLabs examples, each generated from a PROMPT.md by the Cursor CLI onto shared Expo, Next.js, Python and TypeScript templates. Covers text-to-speech, Scribe v2 speech-to-text (including realtime with VAD), music, sound effects, voice isolation, dubbing and a Next.js voice agent on the React Agents SDK. For developers who want one starting point per ElevenLabs feature.

Strengths

  • One runnable example per ElevenLabs feature, each with its own README
  • Next.js realtime voice agent and guardrail_triggered event demo included
  • Shared Expo, Next.js, Python and TypeScript base templates

Weaknesses

  • Examples are LLM-generated from prompts; review the code before reuse
  • Regenerating examples requires the Cursor CLI
  • ElevenLabs only; needs an ElevenLabs API key
  • Legacy examples/ folder is deprecated but still present
  • TypeScript, ElevenLabs JS SDK, ElevenLabs Python SDK, ElevenLabs React Agents SDK
  • Needs ElevenLabs API key
#1035 out of 100

agent-starter-react-native

Expo React Native voice assistant client for LiveKit Agents

84 starsMITlast commit Sep 2026

Expo project on the LiveKit React Native SDK and its Expo config plugin, run on Android and iOS with npx expo run, giving a simple voice interface to a LiveKit agent. It connects to the public LiveKit homepage agent by default; set tokenServerId in hooks/useConnection.tsx for your own agent, then switch to TokenSource.endpoint before shipping. Client only.

Strengths

  • Expo plugin handles the native LiveKit setup for iOS and Android
  • Token source is one line to swap for a real endpoint
  • Pairs with the Python and Node agent starters

Weaknesses

  • README documents voice only; no video or text input described
  • Development token server lets any client request any permissions
  • No .env.example; configuration is edited in code
  • TypeScript
  • Needs LiveKit Cloud project, a LiveKit agent, token server
  • GitHub template