How to choose an adapter
Every adapter wraps a different wire transport but exposes the same
scenario.run() API. Pick by use case, then click through to the adapter page
for the constructor, capabilities, gotchas, and a worked example.
If you want to compare specifics side-by-side, see the capability matrix.
By use case
| I want to… | Adapter |
|---|---|
| Test a Twilio IVR (phone, DTMF) | Twilio |
| Test an OpenAI Realtime agent | OpenAI Realtime |
| Test a custom Pipecat bot | Pipecat |
| Use a branded ElevenLabs Convai agent | ElevenLabs |
| Test a Gemini Live agent | Gemini Live |
| Test a LiveKit room agent (preview) | LiveKit [preview] |
| Test a Vapi outbound dialer (preview) | Vapi [preview] |
| Test a raw WebRTC datachannel agent (preview) | WebRTC [preview] |
| Plug in your own STT + LLM + TTS pipeline | Composable |
| Speak a custom WebSocket protocol | WebSocket |
What's next
- Capability matrix — per-adapter feature support, wire transports, and shipping status.
- Getting started — install, env vars, and your first runnable voice scenario.
- Voice agents proposal — design rationale and full adapter API surface.
