All messaging platforms
Compare chat apps and other ways in, with setup needs, features and official docs.
Guides
Tools & integrations
Troubleshooting
Questions
What is the messaging gateway?
The gateway is a single background process that connects Hermes to all your configured chat platforms, manages their sessions, runs scheduled cron jobs and delivers voice messages. Supported platforms include Telegram, Discord, Slack, WhatsApp, Signal, Email, Matrix, Microsoft Teams, Home Assistant and many more.
Set it up with hermes gateway setup, then run it with hermes gateway or as a service with hermes gateway install and hermes gateway start.
How do I connect Hermes to Telegram, and can I run separate bots there?
Create a bot with @BotFather to get a token, then run hermes gateway setup and choose Telegram. It asks for the token and your allowed user IDs. Or add TELEGRAM_BOT_TOKEN and TELEGRAM_ALLOWED_USERS to ~/.hermes/.env yourself. Start the gateway with hermes gateway and message your bot. In Hermes Desktop, Messaging has a Create with QR card that creates the bot, detects your user ID and restarts the gateway for you.
For several separately addressable bots, give each its own profile and its own BotFather token. A bot token can only be used by one profile at a time, and each profile keeps its own memory, skills and sessions.
In groups, Telegram's privacy mode hides ordinary messages from bots until you turn it off in BotFather, and telegram.require_mention: true makes a bot answer only when mentioned.
How do I connect Discord or Slack?
For Discord, create an application and bot token in the Discord developer portal, turn on Message Content Intent (without it Discord refuses the connection), then run hermes gateway setup and pick Discord.
Slack uses Socket Mode, which connects over WebSockets so you don't need a public URL. Create a Slack app, enable Socket Mode, and add the tokens through hermes gateway setup.
Can I use Hermes on WhatsApp?
Yes. The built-in bridge is based on Baileys, which emulates a WhatsApp Web session, so it needs no Meta developer account or public URL. Run hermes whatsapp and scan the QR code with your phone.
Because it isn't the official Business API, the docs warn about ban risk, and each WhatsApp number supports one paired session. A separate WhatsApp Cloud API option also exists.
PermalinkHow do I control who can use my bot?
Use allowlists, meaning specific user IDs such as TELEGRAM_ALLOWED_USERS, or DM pairing. With pairing, an unknown user gets an 8-character code and you approve it with hermes pairing approve <platform> <code>. Codes expire after an hour.
unauthorized_dm_behavior can be pair, ignore or decline. An open allow-all mode exists but the docs advise against it.
PermalinkHow do I keep the gateway running in the background?
Run hermes gateway install to install it as a user service (systemd on Linux, launchd on macOS), then hermes gateway start, stop, restart and status to manage it. On Linux, sudo hermes gateway install --system installs a boot-time system service.
On WSL, where systemd is often unreliable, the docs suggest hermes gateway run in the foreground, inside tmux, or with nohup.
Why doesn’t my Telegram bot see messages in a group?
Telegram bots have privacy mode switched on by default, so in groups they don't receive ordinary messages. Turn it off in @BotFather under Bot Settings, Group Privacy, then remove and re-add the bot, because Telegram caches the setting when a bot joins. Promoting the bot to group admin also works.
TELEGRAM_ALLOWED_USERS still applies in groups. To stop the bot replying to general chatter, set telegram.require_mention: true.
How do I stop tool logs and reasoning cluttering my chat?
Set display.tool_progress in config.yaml. off shows only the final response, new shows brief one-liners as new tool calls happen, all includes tool results and verbose adds full arguments and outputs. For messaging platforms the docs suggest off or new. Restart the gateway after editing.
Setting display.tool_progress_command: true enables /verbose in the gateway so you can toggle it per session.
Can Hermes have its own email inbox?
Yes. The docs walk through giving the agent a dedicated mailbox with the bundled Himalaya email skill, which drives the himalaya CLI over IMAP and SMTP so the agent can read, search, send and organise mail. Create a fresh account rather than handing over your personal inbox, and use an app password if the provider uses 2FA.
This is separate from the Email gateway adapter, which lets people chat with Hermes by emailing it. You can run both, ideally on separate accounts.
PermalinkCan Hermes work with Gmail or Outlook, and how do I connect email safely?
There are a few routes. The bundled Google Workspace skill covers Gmail, Calendar, Drive, Sheets and Docs through your own Google OAuth app; ask Hermes to set it up and it walks you through. With a Nous identity, hosted connectors such as Gmail run through the Tool Gateway and are managed with hermes connectors or Desktop's Connectors page. For plain IMAP/SMTP mail (Gmail, Outlook and others), the bundled Himalaya skill works with an app password.
To be safe, start with a dedicated mailbox for the agent rather than your main inbox, use app passwords or OAuth (never your main password), and keep risky actions behind approvals. Email content is untrusted input, so be careful about letting it act on instructions found in messages.
Separately, the Email gateway lets people chat with Hermes by emailing it; Outlook / Microsoft 365 works there over IMAP and SMTP.
PermalinkIs Telegram or Discord easier to connect, and do they get the same features?
Telegram is usually the quickest: one token from @BotFather, and Hermes Desktop can even create the bot from a QR code. Discord needs an application in the developer portal with Message Content Intent turned on. Slack uses Socket Mode, so none of them needs a public URL.
The core is the same everywhere: one agent with the same memory, skills, tools, slash commands and cron delivery. Differences come from the platforms. Telegram caps bot command menus at 100 entries, Discord can join voice channels for live conversation, and sessions are keyed differently (Slack shares a thread, Discord a channel, while most others are per user).
You can run several at once from one gateway; set each up with hermes gateway setup.
Can I move a live session from my computer to my phone?
Yes, from the CLI. Run /sethome once in the destination chat (for example your Telegram DM with the bot), then in the CLI session run /handoff telegram. The gateway picks the session up with its full history, and your CLI exits with a hint for resuming locally later with /resume.
It works with Telegram, Discord, Slack, WhatsApp, Signal and Matrix, needs the gateway running, and is refused mid-turn, so wait for the current reply to finish.
Separately, Desktop and the CLI share sessions with each other, so on your own machines you can simply resume a conversation in another interface.
Permalink