Multi-Platform Gateway: Hermes Everywhere
Run the same Hermes Agent on Telegram, Discord, Slack, WhatsApp, Signal, SMS, and more — with full tool access, not just chat. Step-by-step setup guide.
TLDR: The Hermes gateway is a daemon that connects your agent to messaging platforms. Install with
hermes gateway install, configure platforms viahermes gateway setup, and start withhermes gateway start. One agent, many doors — Telegram, Discord, Slack, WhatsApp, Signal, Email, SMS, Matrix, and 10+ more.
Key Takeaways
- Same agent, same tools, same memory — different chat interface. This hermes multi-platform setup connects Hermes to all your messaging apps.
- Telegram is the easiest platform to set up (create bot via @BotFather, paste token)
- Gateway runs as a systemd service — survives reboots with
loginctl enable-linger - Each platform has its own pitfalls: Discord needs Message Content Intent, Slack needs
message.channelssubscription - Check
~/.hermes/logs/gateway.logfor troubleshooting
Architecture
The gateway runs as a background service. It listens on each platform you configure, routes messages to the agent loop, and delivers responses back.
Telegram → \
Discord → → Gateway → Agent → Tools → Response
Slack → /
Quick Start
# Configure platforms interactively
hermes gateway setup
# Test in foreground
hermes gateway run
# Install as a systemd service (production)
hermes gateway install
hermes gateway start
# Check status
hermes gateway status
Telegram Setup
Telegram is the most popular platform for good reason — it’s fast, reliable, and the setup takes 2 minutes.
1. Create a Bot
- Open Telegram and message @BotFather
- Send
/newbot - Choose a name (e.g.,
My Hermes Agent) - Choose a username (e.g.,
my_hermes_bot) - BotFather gives you a token — copy it
2. Configure and Start
hermes gateway setup
# Select Telegram, paste token
hermes gateway start
Message your bot on Telegram. The agent has full tool access — search the web, run commands, analyze images, all from your phone.
Telegram features:
/sethome— set current chat as home channel/topic— enable DM topic sessions- Voice messages auto-transcribed (requires STT setup)
3. Control Access
hermes pairing list # Authorized users
hermes pairing approve "@user" # Add a user
hermes pairing revoke "@user" # Remove a user
Discord Setup
1. Create Bot Application
- Discord Developer Portal → New Application
- Bot → Add Bot → copy token
- IMPORTANT: Enable Message Content Intent under Privileged Gateway Intents
- OAuth2 → URL Generator → scopes:
bot→ permissions:Send Messages,Read Message History→ open the URL to invite
2. Configure
# ~/.hermes/config.yaml
gateway:
platforms:
discord:
enabled: true
bot_token: "your_discord_bot_token"
3. Restart
hermes gateway restart
Slack Setup
1. Create Slack App
- api.slack.com/apps → Create New App
- Add Bot Token Scopes:
chat:write,im:history,im:read,channels:history,channels:read - Subscribe to
message.channelsandmessage.imevents - Install to Workspace → copy Bot User OAuth Token (
xoxb-...)
2. Configure
# ~/.hermes/config.yaml
gateway:
platforms:
slack:
enabled: true
bot_token: "xoxb-..."
3. Restart
hermes gateway restart
Other Platforms
| Platform | Config key | Auth method |
|---|---|---|
whatsapp | API token | |
| Signal | signal | Signal CLI or API |
email | IMAP/SMTP credentials | |
| Matrix | matrix | Access token |
| SMS | sms | Twilio credentials |
| Home Assistant | homeassistant | Long-lived token |
Gateway Management
hermes gateway status # Running or stopped?
hermes gateway logs # Show recent logs
hermes gateway restart # Full restart
hermes gateway stop # Stop the service
Check logs when things go wrong:
grep -i "failed to send\|error" ~/.hermes/logs/gateway.log | tail -20
Troubleshooting Guide
Problem: Gateway dies on SSH logout
Fix: sudo loginctl enable-linger $USER — keeps user services alive after disconnect.
Problem: Gateway dies on WSL2 close
Fix: WSL2 needs systemd=true in /etc/wsl.conf for systemd. Without it, gateway falls back to nohup (dies when terminal closes).
Problem: Discord bot is silent Fix: Enable Message Content Intent in Discord Developer Portal → Bot → Privileged Gateway Intents.
Problem: Slack bot only works in DMs
Fix: Subscribe to message.channels event in Slack App configuration.
Problem: Gateway crash loop
Fix: systemctl --user reset-failed hermes-gateway && hermes gateway start
FAQ
Q: Can I run multiple gateway platforms at the same time?
Yes — the gateway supports all platforms simultaneously. Just enable each one in hermes gateway setup.
Q: Does the gateway work while I’m not logged in?
Yes — the systemd service runs independently of any user session. Use loginctl enable-linger to ensure it survives logout.
Q: Do messages to my Telegram bot reach the same agent instance?
The same agent handles messages from all platforms, so context from a Telegram conversation doesn’t carry over to Discord (they’re separate sessions). Use /sethome to set a home channel.
Next Steps
- Advanced Automation — set up cron jobs that deliver to your Telegram
- Skills System — teach your gateway-connected agent new tricks