What you need
Install
pip install step is required.
Set up
~/.hermes/.env, and can install the
HookMyApp CLI for you (--install-cli). Secrets are masked in its prompts.
Restart the gateway to pick up the new env.
Receive messages
No public URL (default):Env values
hermes hookmyapp setup writes the first five to ~/.hermes/.env; the rest
are optional:
Send and receive
Message your WhatsApp number from an allowlisted phone — setHOOKMYAPP_ALLOWED_USERS first, since the adapter answers nobody by
default. Your agent replies in the same chat through Hermes’ normal message
loop. HOOKMYAPP_HOME_CHANNEL sets the default recipient for cron and
scheduled sends.
Security
HookMyApp signs every delivery withX-HookMyApp-Signature-256. The adapter
rejects unsigned or mis-signed requests, and verification cannot be
disabled. By default the adapter answers only senders in
HOOKMYAPP_ALLOWED_USERS (phone formats with or without + both match).
Set HOOKMYAPP_ALLOW_ALL_USERS=true only for development or testing — it
disables the allowlist entirely. HookMyApp’s verification probes are
answered automatically.
Reliability
Once the adapter acknowledges a message, a crash before your agent processes it loses that message permanently — HookMyApp and Meta do not re-deliver acknowledged events. This window is milliseconds wide in normal operation. One WhatsApp channel per Hermes gateway in this version.Diagnostics
Media limits
Images and documents are cached locally for Hermes vision and document tools. Voice notes are cached as audio and transcribed by Hermes STT (faster-whisper locally, or an OpenAI key). Text-like documents are attached for the agent to read.Troubleshooting
Deliveries return 401.WEBHOOK_HMAC_SECRET in ~/.hermes/.env does
not match the channel. Re-run hookmyapp channels env <channel> --write ~/.hermes/.env, then hermes gateway restart.
Verification probe fails. VERIFY_TOKEN is missing from
~/.hermes/.env. Set it and restart the gateway.
Port 8649 already in use. Set HOOKMYAPP_PORT to a free port in
~/.hermes/.env, restart the gateway, and restart channels listen with
the new --port.
channels listen exited on its own. A webhook URL set in the HookMyApp
dashboard takes precedence over the CLI listener. Clear it with hookmyapp channels webhook clear <channel> and start listen again.
Source
- Plugin source: https://github.com/hookmyapp/hermes-agent-plugin (v0.1.0).
Installs the
releasebranch (production);mainis staging. - Developed against Hermes Agent
main, June 2026 (3aeded6e).