Tutorial Overview
Series index: Hermes Agent Tutorial Series
This tutorial covers Hermes Agent’s Messaging Gateway — one of its unique capabilities that lets you deploy the agent to multiple messaging platforms simultaneously.
What you will learn
- ✅ Gateway architecture and how it works
- ✅ Platform setup for Telegram, Discord, Slack, WhatsApp, Signal
- ✅ Voice memo transcription
- ✅ Cross-platform conversation continuity
- ✅ Security: DM pairing and command approval
Note: If you’re here for Discord/Telegram bots, read this first. If you prefer terminal-only, see Tutorial 5: CLI and TUI Guide.
Why Multi-Platform Matters
Hermes vs desktop-only agents
Claude Code, Cursor, and most AI assistants are tied to your desktop. Hermes Agent is different: it can live on your Telegram group, Discord server, Slack workspace, or Signal — not just your laptop.
flowchart TD
A[Hermes Gateway] --> B[Telegram]
A --> C[Discord]
A --> D[Slack]
A --> E[WhatsApp]
A --> F[Signal]
A --> G[CLI]
B --> H[Single Agent Memory]
C --> H
D --> H
E --> H
F --> H
G --> H
style A fill:#e1f5ff
style H fill:#e8f5e9
Key benefits
| Feature | Benefit |
|---|---|
| Team access | Multiple users interact with same agent |
| Always available | Agent runs on server, not your laptop |
| Memory continuity | Same memory across all platforms |
| Voice support | Transcribe voice memos automatically |
Gateway Architecture
How it works
flowchart LR
A[Platform API] --> B[Gateway Process]
B --> C[Hermes Agent]
C --> D[Memory/Skills]
D --> C
C --> B
B --> A
style B fill:#fff3e0
Components:
- Gateway process — Runs as a daemon, listens to all platforms
- Platform adapters — Translate messages to Hermes format
- Agent core — Shared memory and skills for all platforms
Start the gateway
# Setup gateway configuration
hermes gateway setup
# Start gateway daemon
hermes gateway start
# Check status
hermes gateway status
Platform Setup
Platform comparison
| Platform | Setup Complexity | Voice Support | Group Support |
|---|---|---|---|
| Telegram | Low | ✅ Full | ✅ Yes |
| Discord | Medium | ✅ Full | ✅ Yes |
| Slack | Medium | ✅ Limited | ✅ Yes |
| Medium | ✅ Full | ❌ DM only | |
| Signal | Low | ✅ Full | ❌ DM only |
Telegram Setup
Step 1: Create bot
- Open Telegram, search for
@BotFather - Send
/newbot - Name your bot (e.g., “My Hermes”)
- Get your bot token
Step 2: Configure Hermes
hermes gateway add telegram --token "YOUR_BOT_TOKEN"
Step 3: Start and test
hermes gateway start telegram
Send a message to your bot on Telegram. Hermes should respond.
Discord Setup
Step 1: Create Discord application
- Go to Discord Developer Portal
- Click “New Application”
- Name it (e.g., “Hermes Agent”)
- Go to “Bot” section, click “Add Bot”
- Copy the bot token
Step 2: Configure Hermes
hermes gateway add discord --token "YOUR_DISCORD_TOKEN"
Step 3: Invite bot to server
Create invite link with required permissions:
- Read Messages
- Send Messages
- Read Message History
Step 4: Start gateway
hermes gateway start discord
Slack Setup
Step 1: Create Slack App
- Go to Slack API
- Create new app
- Add Bot Token Scopes:
chat:write,channels:history,groups:history - Install to workspace
- Copy Bot User OAuth Token
Step 2: Configure Hermes
hermes gateway add slack --token "xoxb-YOUR-TOKEN"
Step 3: Start gateway
hermes gateway start slack
WhatsApp Setup
WhatsApp requires Meta’s Cloud API or Twilio integration. Basic setup:
hermes gateway add whatsapp --provider twilio --account_sid "YOUR_SID" --auth_token "YOUR_TOKEN"
Signal Setup
Signal integration uses the Signal CLI:
# First, link Signal CLI to your number
signal-cli link -n "Hermes"
# Then configure Hermes
hermes gateway add signal --phone "+1234567890"
Voice Memo Transcription
How it works
Hermes automatically transcribes voice memos using ElevenLabs or Whisper:
sequenceDiagram
participant U as User
participant P as Platform
participant G as Gateway
participant T as Transcriber
participant H as Hermes
U->>P: Send voice memo
P->>G: Voice file received
G->>T: Transcribe audio
T->>G: Text result
G->>H: Process as text
H->>G: Response
G->>P: Send response
P->>U: Text reply
style T fill:#fff3e0
Enable voice transcription
# Configure transcription provider
hermes config set transcription.provider elevenlabs
# Or use OpenAI Whisper
hermes config set transcription.provider whisper
Supported formats
- MP3, WAV, M4A (Telegram, Discord)
- OGG (WhatsApp, Signal)
- Maximum: 5 minutes per memo
Cross-Platform Continuity
Conversation continuity
Start a conversation on Telegram, continue on Discord — Hermes remembers:
flowchart TD
A[Telegram: "Debug auth bug"] --> B[Stored in memory]
B --> C[Discord: "What about that bug?"]
C --> D[Retrieved from memory]
D --> E[Full context available]
E --> F[Continue conversation]
style B fill:#e8f5e9
style D fill:#e8f5e9
Platform commands
Available on all platforms:
| Command | Purpose |
|---|---|
/new |
Start fresh conversation |
/status |
Check gateway status |
/platforms |
Show connected platforms |
/sethome |
Set preferred platform |
Home platform concept
Set your primary platform where Hermes should prioritize responses:
/sethome telegram
Hermes will:
- Send scheduled reports to Telegram by default
- Use Telegram for critical notifications
- Sync memory from all platforms to Telegram context
Security
DM pairing
Restrict Hermes to only respond to approved users:
# Enable DM pairing mode
hermes config set security.dm_pairing true
# Pair a user (they must send /pair code to Hermes)
hermes gateway pair telegram --user "@username"
Command approval
Require approval for sensitive commands:
# Configure approval rules
hermes config set security.approval_commands "file:write,bash:execute"
When triggered:
- Hermes requests approval
- You approve/reject via any platform
- Command executes only if approved
Rate limiting
# Set per-user limits
hermes config set security.rate_limit 10 # messages per minute
hermes config set security.daily_limit 1000 # tokens per day
Managing Gateway
View connected platforms
hermes gateway status
Output:
Platform Status Messages Users
─────────────────────────────────────────
Telegram Active 156 5
Discord Active 89 3
Slack Active 23 1
WhatsApp Inactive - -
Signal Inactive - -
Restart specific platform
hermes gateway restart telegram
Stop gateway
hermes gateway stop
Troubleshooting
Platform not responding
Cause: Gateway process stopped or token invalid.
Fix:
hermes gateway status
hermes gateway restart PLATFORM
Messages not syncing across platforms
Cause: Memory sync disabled.
Fix:
hermes config set memory.cross_platform true
Voice transcription failing
Cause: API key missing or quota exceeded.
Fix:
hermes config set transcription.api_key "YOUR_KEY"
hermes config set transcription.provider whisper
Summary
Messaging Gateway is Hermes’s deployment advantage:
- Multi-platform — Telegram, Discord, Slack, WhatsApp, Signal
- Gateway architecture — Single agent, multiple platforms
- Voice support — Automatic transcription
- Continuity — Same memory across all platforms
- Security — DM pairing, approval, rate limits
Key takeaways
- ✅ Gateway runs as daemon, listens to all platforms
- ✅ Setup requires platform-specific bot tokens
- ✅ Voice memos transcribed automatically
- ✅ Memory persists across platforms
- ✅ Security controls limit access
Series navigation:
- ← Previous: Tutorial 3: Skills System — Creating and Managing Skills
- → Next: Tutorial 5: CLI and TUI Guide — Terminal Interface
- Back: Series Index
Decision Note: You now have two deployment options. If you started with Messaging Gateway (this article), you have Hermes on Telegram/Discord. For terminal basics, see Tutorial 5: CLI and TUI. Both apply to multi-model configuration in Tutorial 6.