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.

New words here · Plain English

one sentence each · full glossary
SMSRegular text messages on a phone. Hermes can send and receive them via Twilio.
TwilioA service that lets programs send and receive text messages programmatically.

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