Recipes
Recipes are reference integrations between Teler and popular AI voice
providers. Each one is a runnable repo (clone, set environment variables,
docker compose up) and ships with both a Python and a Node variant
(except where noted).
Realtime model providers
Section titled “Realtime model providers”A single WebSocket handles STT, LLM, and TTS. Lowest latency, fastest path to a working agent.
Voice agent platforms
Section titled “Voice agent platforms”End-to-end agent platforms that handle conversation logic on their side.
Speech-to-text providers
Section titled “Speech-to-text providers”Bring your own LLM and TTS. These recipes wire Teler to a streaming STT provider only.
Common shape
Section titled “Common shape”Every WebSocket-based bridge follows the same pattern. Once you’ve run one, you’ve run them all.
git clone https://github.com/frejun-tech/teler-<provider>-bridgecd teler-<provider>-bridgecp .env.example .env# fill TELER_API_KEY, NGROK_AUTHTOKEN, and the provider's API keydocker compose up --build
# in another shellcurl -X POST http://localhost:8000/api/v1/calls/initiate-call \ -H "Content-Type: application/json" \ -d '{"from_number":"+91...","to_number":"+91..."}'Standard environment variables across all bridges:
| Variable | Required | Purpose |
|---|---|---|
TELER_API_KEY | yes | Your Teler API key from the dashboard |
NGROK_AUTHTOKEN | yes (local) | Tunnel for receiving Teler webhooks during dev |
SERVER_DOMAIN | auto | Public URL exposed to Teler, set by ngrok |
<PROVIDER>_API_KEY | yes | Provider-specific credential, see each recipe |
Build your own
Section titled “Build your own”The bridges are intentionally small. If your provider isn’t listed:
- Fork the closest recipe (Deepgram for STT-only, OpenAI for realtime models, ElevenLabs for agent platforms).
- Replace the provider WebSocket logic.
- Adjust the sample-rate conversion if needed.
Or build from scratch using the SDKs: the StreamConnector primitive
is exactly the abstraction the bridges use under the hood.