Overview
The messaging gateway lets you talk to Hermes from any supported platform while the agent runs on a server, VPS, or cloud instance. It runs as a persistent process (or system service) that bridges incoming messages from your preferred platform to the Hermes agent loop and delivers responses back. This complements the CLI: use the CLI for interactive development sessions on your machine, and the gateway for anywhere-access from your phone, for unattended background tasks, and for receiving cron job notifications and background process updates.Supported platforms
Telegram
Full-featured. Bot token from @BotFather. Supports voice memos, images, documents, threads.
Discord
Full-featured. Bot token from Developer Portal. Supports threads, attachments, server + DM.
Slack
Full-featured via Socket Mode. Slash commands via
/hermes. Supports channels, DMs, threads.Built-in Baileys bridge — no third-party API needed. Pair with
hermes whatsapp.Signal
Via signal-cli HTTP bridge. Supports groups and DMs.
IMAP/SMTP. Works with Gmail (App Password), Outlook, and any standard mail server.
Matrix
Via any Matrix homeserver. Access token or password login.
Mattermost
Self-hosted Mattermost via bot or personal access token.
DingTalk
DingTalk enterprise messaging via client ID and secret.
Home Assistant
Home Assistant Assist pipeline integration.
Gateway setup
1
Run the setup wizard
The setup wizard configures your provider, API keys, and any platforms you want to activate:This creates or updates
~/.hermes/.env with the platform tokens you provide.2
Start the gateway
Run the gateway in the foreground to test:Install as a persistent system service (systemd / launchd):Other management commands:
3
Send your first message
Open the platform of your choice and send a message to your bot. The gateway will respond once the agent finishes processing.
Platform setup
- Telegram
- Discord
- Slack
- WhatsApp
- Signal
- Email
1
Create a bot
Message @BotFather on Telegram:Follow the prompts. BotFather gives you a bot token like
7123456789:AAH....2
Add the token
3
Restrict access (recommended)
Get your Telegram user ID from @userinfobot, then add it to Comma-separate multiple IDs:
.env:TELEGRAM_ALLOWED_USERS=123456789,9876543214
Start the gateway
Slash commands in messaging
Most slash commands work across both CLI and messaging platforms. Some are platform-specific:Available on both CLI and messaging
Messaging-only commands
CLI-only commands
Commands like/skin, /config, /tools, /cron, /history, /save, /rollback, /browser, /plugins, /verbose, /statusbar, and /paste are only available in the interactive CLI.
Setting a home channel
The home channel receives cron job notifications, background process completion messages, andsend_message deliveries when no specific target is specified.
In any platform chat, run:
TELEGRAM_HOME_CHANNEL, DISCORD_HOME_CHANNEL, etc. in config.yaml and takes effect immediately.
Cross-platform message delivery
When the agent uses thesend_message tool, it can route messages to any connected platform:
- Omit the target to deliver to the current platform’s home channel
- Specify a platform and chat ID to deliver elsewhere
Voice memo transcription
When a voice message or audio file is sent on Telegram, Discord, WhatsApp, or Slack, Hermes automatically transcribes it before passing it to the agent. No extra configuration is required beyond having a speech-to-text provider set up. The default STT provider islocal (faster-whisper, runs on your machine, no API key needed). Switch to cloud STT in config.yaml:
Background process notifications
When the agent launches a background process from a messaging platform, a watcher pushes status updates to your chat. Control verbosity in~/.hermes/config.yaml:
You can also set this via the
HERMES_BACKGROUND_NOTIFICATIONS environment variable.