Back to browse
GitHub Repository

Easy-to-setup Cellular Phone/SMS Capability For your OpenClaw AI Agent

30 starsJavaScript

Clawphone – Twilio voice/SMS gateway for AI agents using TwiML polling

by ranacseruet·Feb 24, 2026·2 points·2 comments

AI Analysis

●●SolidDark HorseShip It

TwiML polling trades latency for zero-dependency simplicity—no WebSocket server or external STT/TTS APIs.

Strengths
  • Deliberate architectural trade-off: polling over HTTP vs. Media Streams eliminates Twilio gateway requirement and external API costs
  • 166 tests using Node's built-in test framework; zero external dependencies at HTTP layer; graceful call drain and structured logging
Weaknesses
  • Adds 1-2 second latency per round-trip compared to Media Streams—only viable for assistants, not real-time voice
  • Voice quality limited to Twilio's built-in neural voices; no multi-provider support like @openclaw/voice-call
Target Audience

AI agent builders, OpenClaw users, indie developers deploying Twilio-based conversational AI

Similar To

@openclaw/voice-call · Telnyx SDK · Plivo Voice API

Post Description

clawphone bridges Twilio phone calls and SMS to an OpenClaw AI agent using plain TwiML webhooks — no WebSocket server, no external STT/TTS APIs (OpenAI, ElevenLabs, etc.), no audio encoding pipeline. The design intentionally trades latency for operational simplicity. When a call comes in, Twilio handles speech-to-text via <Gather input="speech">, the agent runs async, and the reply is polled and spoken back via <Say>. It adds a couple seconds of round-trip vs. a Media Streams approach, but you only need one Twilio account and one Node process. Features:

Standalone server (Node / PM2) or OpenClaw plugin mode SMS support with fast-path (sync) and async fallback Twilio webhook signature validation Per-number rate limiting Graceful shutdown with in-flight voice call drain Structured JSON logging + optional Discord channel logging 166 tests using Node's built-in node:test (no external framework)

It's zero-dependency at the HTTP layer — raw node:http, ES Modules only. I built this because the official OpenClaw voice plugin requires a WebSocket gateway + external TTS/STT accounts. For a personal assistant or low-traffic deployment, that's a lot of infrastructure. This is the minimal path. GitHub: https://github.com/ranacseruet/clawphone npm: @ranacseruet/clawphone Happy to answer questions about the architecture or the TwiML polling approach.

Similar Projects

Developer Tools●●Solid

AgenticMail – Email, SMS, and multi-agent coordination for AI agents

Hands-off: each agent gets its own mailbox, phone number, inbox and API key, and the project bundles a local Stalwart mail server in Docker plus Gmail-relay or custom-domain outbound with DKIM/SPF/DMARC. Concrete safety features (outbound scanning to catch API keys/PII) and Google Voice SMS extraction for verification codes are genuinely useful and uncommon together. If you want to prototype agents that actually talk to people/services this is a focused, pragmatic stack — but expect telephony fiddliness and compliance trade-offs in real deployments.

WizardryNiche Gem
agenticmail
214mo ago