Skip to content

Repository files navigation

Patter SDK

Patter SDK

PyPInpmMIT LicensePython 3.11+TypeScript 5+

AboutHow It WorksDocumentationQuickstartSkillsTemplates


About

Patter is the open-source SDK that gives your AI agent a phone number. You build the agent; Patter handles everything between it and the phone network — the agent loop, the language model, speech-to-text, text-to-speech, real-time voice, audio processing, and the telephony carrier.

  • Build with one API in Python or TypeScript — same surface, same hooks, same events, at full parity.
  • Choose the provider for every layer — LLM, STT, TTS, realtime engine, carrier — and swap any of them with one line.
  • Run locally with a built-in tunnel and dashboard, or simulate a whole call from your terminal — no phone required.

How It Works

Patter is the full voice stack between your application and the phone network — not just glue between an LLM and a carrier. It runs the agent loop and owns every layer of the call, and you pick the provider for each one. Compose them in Realtime, Pipeline, or Hybrid mode.

27+ provider integrations across the voice stack · 3 voice modes · 2 SDKs (Python & TypeScript) at parity.

LayerChoose from
LLM — text generationOpenAI · Anthropic · Google Gemini · Groq · Cerebras
STT — speech-to-textDeepgram · AssemblyAI · Cartesia · Soniox · Speechmatics · Whisper · Fish Audio
TTS — text-to-speechElevenLabs · OpenAI · Cartesia · LMNT · Rime · Telnyx · Fish Audio
Realtime — all-in-one voiceOpenAI Realtime · Gemini Live · Ultravox · ElevenLabs ConvAI
Telephony — phone carriersTwilio · Telnyx · Plivo
Audio — VAD & suppressionSilero VAD · Krisp · DeepFilterNet

On top of the stack: an automatic LLM fallback chain (provider failover mid-call), built-in tools / call transfer / guardrails that behave identically on every carrier, and a vendor-neutral OpenTelemetry trace of each call.

Documentation

Visit the docs, or jump straight to a quickstart: TypeScript · Python.

Skills for Coding Agents

Using Claude Code, Claude Desktop, OpenClaw, Hermes, Cursor, Codex, or another AI coding agent?

Install Patter skills for voice agents →

npx skills add patterai/skills

The bundle works in ~55 agent harnesses that consume the Anthropic Agent Skills standard. Install once; every agent on your machine learns the SDK. Skills live in their own repository: PatterAI/skills.

Quickstart

Provider and carrier credentials are read from environment variables (e.g. TWILIO_ACCOUNT_SID, OPENAI_API_KEY) — the docs list the full catalog. Swap Twilio for Telnyx or Plivo to change carrier.

TypeScript

npm install getpatter
import{Patter,Twilio,OpenAIRealtime}from"getpatter";constphone=newPatter({carrier: newTwilio(),phoneNumber: "+15550001234"});constagent=phone.agent({engine: newOpenAIRealtime(),systemPrompt: "You are a friendly receptionist for Acme Corp.",firstMessage: "Hello! How can I help?",});awaitphone.serve({ agent,tunnel: true});

Python

pip install getpatter
fromgetpatterimportPatter, Twilio, OpenAIRealtimephone=Patter(carrier=Twilio(), phone_number="+15550001234")
agent=phone.agent(
engine=OpenAIRealtime(),
system_prompt="You are a friendly receptionist for Acme Corp.",
first_message="Hello! How can I help?",
)
awaitphone.serve(agent, tunnel=True)

tunnel: true spawns a Cloudflare quick tunnel and points your number at it — ideal for local dev. For production, use a static webhook_url (or ngrok); see Tunneling.

Telemetry

Note Patter collects anonymous, opt-out usage data (SDK version, bucketed provider/model and call facts) to help us prioritise — never call content, prompts, phone numbers, keys, or free text.

Opt out any time: Patter(telemetry=False) (new Patter({ telemetry: false })), getpatter telemetry disable, or PATTER_TELEMETRY_DISABLED=1 (also honours DO_NOT_TRACK=1); auto-off in CI/tests. Inspect without sending: PATTER_TELEMETRY_DEBUG=1. Full details: Telemetry.

Templates

Each template is a self-contained repo — clone, add your .env, and run. Python and TypeScript both included.

TemplateDescriptionRepo
Inbound AgentAnswer calls as a restaurant booking assistantpatter-inbound-agent
Outbound CallsPlace calls with AMD and voicemail droppatter-outbound-calls
Tool CallingCRM lookup + ticket creation via webhook toolspatter-tool-calling
Custom VoicePipeline mode: Deepgram STT + ElevenLabs TTSpatter-custom-voice
Dynamic VariablesPersonalize prompts per caller using CRM datapatter-dynamic-variables
Custom LLMBring your own modelpatter-custom-llm
DashboardReal-time monitoring with cost + latency trackingpatter-dashboard
Production SetupEverything enabled: tools, guardrails, recording, dashboardpatter-production
git clone https://github.com/PatterAI/patter-inbound-agent
cd patter-inbound-agent
cp .env.example .env # fill in your keyscd python && pip install -r requirements.txt && python main.py

Star History

Star History Chart

Contributors

Thanks to all our amazing contributors!

License

MIT — see LICENSE.

About

Open-source voice-AI SDK. The Vapi/Retell alternative for builders who want to own the stack. Give your AI agent a phone number in 4 lines — Python and TypeScript, MIT licensed, Twilio, Telnyx, and Plivo.

Topics

Resources

Contributing

Security policy

Stars

1.0k stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages