Open Source
Explore the latest AI open-source projects from GitHub and HuggingFace.
Explore the latest AI open-source projects from GitHub and HuggingFace.
Patter is an open-source SDK that gives an AI agent a phone number. It positions itself directly against the hosted voice-agent platforms — the README names Vapi and Retell as the alternatives it is built for people to leave — and its pitch is ownership: you write the agent, Patter runs everything between it and the phone network. Released under MIT with SDKs in Python and TypeScript, the repository has collected 1,036 stars and 112 forks since its 7 April 2026 creation, with v0.7.0 published on 30 June 2026 and packages on both PyPI (getpatter) and npm.
The substantive claim is that Patter owns the whole voice stack, not the glue between a model and a carrier. It runs the agent loop and every layer beneath it — LLM, speech-to-text, text-to-speech, real-time voice, audio processing, telephony — and lets the builder pick the provider for each one independently, swapping any with a single line. The catalogue spans 27+ provider integrations: OpenAI, Anthropic, Gemini, Groq and Cerebras for generation; Deepgram, AssemblyAI, Cartesia, Soniox, Speechmatics, Whisper and Fish Audio for STT; ElevenLabs, OpenAI, Cartesia, LMNT, Rime, Telnyx and Fish Audio for TTS; OpenAI Realtime, Gemini Live, Ultravox and ElevenLabs ConvAI as all-in-one realtime engines; Twilio, Telnyx and Plivo as carriers; and Silero VAD, Krisp and DeepFilterNet for voice activity detection and noise suppression.
Those layers compose in three modes — Realtime, Pipeline or Hybrid — which is the practical reason to care about the abstraction. A Realtime engine minimises latency but locks the call into one vendor's model; Pipeline mode lets a team run Deepgram for transcription and ElevenLabs for speech with a separate LLM in between; Hybrid splits the difference. On top sits an automatic LLM fallback chain that fails over mid-call, plus tools, call transfer and guardrails specified once and behaving identically across every carrier, and a vendor-neutral OpenTelemetry trace per call.
The developer loop is the part most likely to win people over. serve({ agent, tunnel: true }) spawns a Cloudflare quick tunnel and points the number at it, so a working inbound agent is roughly four lines and no infrastructure; a whole call can also be simulated from the terminal with no phone involved. Both SDKs are held at full parity — same surface, same hooks, same events — and eight self-contained template repositories cover inbound booking agents, outbound calling with answering-machine detection and voicemail drop, webhook tool calling, custom voice pipelines, per-caller dynamic variables, bring-your-own-model, a monitoring dashboard with cost and latency tracking, and a fully-enabled production setup. A separate skills bundle installs the SDK's usage into roughly 55 coding-agent harnesses that follow the Agent Skills standard.
The trade-offs are real and mostly disclosed. Patter is MIT-licensed and self-hostable, but it is not free of dependencies: every layer still requires a commercial provider account and key, so "own the stack" means owning the orchestration, not the models or the carrier minutes. The SDK collects anonymous usage telemetry by default — bucketed provider, model and call facts, never call content, prompts, phone numbers or keys — with four documented ways to opt out, DO_NOT_TRACK honoured, and automatic disabling in CI, but on-by-default telemetry in a privacy-adjacent tool will still cost it some users. The tunnel-based quick start is explicitly a development convenience that production deployments must replace with a static webhook URL. And a project pre-1.0, with its most recent release in June against commits through August, is one whose surface should be expected to move.