How-To Series · Episode 30 / 59 · Module 5: Everywhere You Are

Hermes · On SMS

Via Twilio. Text it from any phone, even a flip phone.

After this videoYou can now reach Hermes from any phone by text.

Twilio bridges SMS to Hermes: someone texts your Twilio number, Twilio POSTs a webhook to your server, and Hermes replies via the Twilio API. Unlike Slack, SMS needs a public webhook URL. Install pip install 'hermes-agent[sms]', grab three Twilio values (Account SID, Auth Token, phone number), and set them plus SMS_ALLOWED_USERS. Point the Twilio console at /webhooks/twilio (tunnel with cloudflared or ngrok if local), and set SMS_WEBHOOK_URL to match, it is required for signature validation. Plain text only, 1600-char split. SMS is not encrypted, prefer Signal or Telegram for sensitive work.

About these resources. Every command in this video comes from the SMS (Twilio) messaging doc.

Sources · What this video distills

1 docs page · every command below traces to one of them
Primary · Twilio creds, gateway setup, webhook config, SMS_WEBHOOK_URL signature check, behavior, access control
SMS (Twilio) Setup
Read ↗

Commands shown · Copy and paste

each shows the source doc it came from
Install the extrafrom source ↗
pip install 'hermes-agent[sms]'
Wire + runfrom source ↗
hermes gateway setup && hermes gateway
Expose a local webhookfrom source ↗
cloudflared tunnel --url http://localhost:8080
Required envfrom source ↗
TWILIO_ACCOUNT_SID=AC... TWILIO_AUTH_TOKEN=... TWILIO_PHONE_NUMBER=+1... SMS_WEBHOOK_URL=https://your-server/webhooks/twilio

Going deeper · Related Hermes docs

further reading · not sources of facts shown above

Next in the series · Episodes that build on this

E28
Hermes on Signal
E34
Webhooks
E36
Schedule With Cron