Documentation Index
Fetch the complete documentation index at: https://patter-06b046ce-feat-observability-otel-attrs-0-6-1.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Tunneling
Patter needs a public URL so your telephony provider can send webhooks to the local server. There are three options, all configured via thetunnel= argument on Patter() (or new Patter({ tunnel })).
CloudflareTunnel (recommended)
The built-in Cloudflare Quick Tunnel creates a public*.trycloudflare.com URL. No account or setup required — just the cloudflared binary on PATH (or the cloudflared npm package).
tunnel=True (Python) / tunnel: true (TypeScript) is shorthand for CloudflareTunnel():
tunnel=True directly to serve():
Installing cloudflared
The TypeScript SDK ships thecloudflared npm wrapper as a regular dependency, so tunnel: true Just Works out of the box (npm install getpatter is enough).
The Python SDK requires the cloudflared binary on your PATH — there is no Python wrapper package available. Install it once with your system package manager:
tunnel=True (Python) without the cloudflared binary on PATH, the SDK raises a clear error with the install command you need. The legacy pip install "getpatter[tunnel]" extra is now an empty alias kept only for backwards compatibility.
Twilio webhook auto-configuration
Both SDKs automatically set the tunnel URL as the Twilio number’s voice webhook (IncomingPhoneNumber.update(voice_url=...)) on serve(), so inbound calls work out of the box — no Twilio Console configuration needed. For Telnyx, the number is associated with the configured Call Control Application (connection_id) the same way.
If auto-configuration fails (for example the Twilio auth token doesn’t have permission to update the number), Patter logs a warning and prints the URL you can set manually.
Static (user-managed tunnel)
Running ngrok or some other public hostname yourself? UseStatic(hostname=...) — Patter will skip process management and just trust the hostname you provide.
webhook_url / webhookUrl:

