frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

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

https://github.com/ranacseruet/clawphone
2•ranacseruet•1h ago
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.