33
Total Platforms
5
Categories
26
Built-in
10
Top Rated ★4+
33 items
📱 Consumer Messaging

Telegram

Built-in
★★★★★

The most popular Hermes gateway platform. Full feature support — voice messages, images, files, threads, typing indicators, and streaming. Set up via @BotFather in 2 minutes.

VoiceImagesFilesThreadsTypingStreaming
Auth: Bot token from @BotFather
Env vars: TELEGRAM_TOKEN
Bot token must be kept secret. Group sessions are isolated per-user by default. Use `TELEGRAM_ALLOWED_USERS` to restrict access.
Message @BotFather on Telegram → /newbot → choose name/username → paste token into `TELEGRAM_TOKEN` env var → `hermes gateway start`
📱 Consumer Messaging

Discord

Built-in
★★★★★

Most feature-rich adapter with voice channel support, message reactions, and comprehensive permission controls. The adapter is now a modularized package rather than a single large file.

VoiceImagesFilesThreadsReactionsTypingStreamingSlash Commands
Auth: Bot token from Discord Developer Portal
Env vars: DISCORD_TOKEN
Requires Message Content Intent in Discord Developer Portal. By default only responds when @mentioned in server channels. Use `DISCORD_FREE_RESPONSE_CHANNELS` for no-mention mode.
Discord Developer Portal → New Application → Bot → Add Bot → copy token → enable Message Content Intent → set `DISCORD_TOKEN` → invite bot with OAuth2 URL → `hermes gateway start`
📱 Consumer Messaging

Slack

Built-in
★★★★☆

Full enterprise messaging integration with voice, images, threads, reactions, and typing. Uses Socket Mode for real-time WebSocket communication.

VoiceImagesFilesThreadsReactionsTypingStreaming
Auth: Slack App Bot Token (xoxb-) + App-Level Token (xapp-)
Env vars: SLACK_BOT_TOKEN, SLACK_APP_TOKEN
Requires both Bot Token and App Token. Subscribe to `message.channels` event for public channel support. `DISCORD_FREE_RESPONSE_CHANNELS` equivalent is `SLACK_FREE_RESPONSE_CHANNELS`.
api.slack.com/apps → Create App → Bot Token Scopes → Install to Workspace → enable Socket Mode → copy Bot Token and App Token → set env vars → `hermes gateway start`
📱 Consumer Messaging

WhatsApp

Built-in
★★★☆☆

Two adapters ship for WhatsApp: the unofficial WhatsApp Web bridge via Baileys (QR code pairing, no Business API needed) and the official Meta WhatsApp Business Cloud API adapter (whatsapp-cloud, no bridge or QR codes).

ImagesFilesTypingStreaming
Auth: QR code pairing (WhatsApp Web emulation)
Unofficial bridge carries account ban risk. Use a dedicated phone number (not personal). Periodically breaks when WhatsApp updates its Web protocol. Requires Node.js v18+ and npm.
Enable WhatsApp in config.yaml → `hermes gateway start` → scan QR code with WhatsApp → bot is connected. Requires Node.js v18+ for the bridge process.
📱 Consumer Messaging

Signal

Built-in
★★★☆☆

Most privacy-focused option with end-to-end encryption. Requires external signal-cli daemon running in HTTP mode. Built-in rate limiting.

ImagesFilesTypingStreamingE2E Encryption
Auth: signal-cli linked as secondary device (QR scan)
Requires external Java-based signal-cli daemon. Must stay connected 24/7. No voice or reactions support.
Install signal-cli → `signal-cli -u +PHONE link -n "hermes"` → scan QR → run signal-cli in HTTP mode → configure `platforms.signal.extra.http_url` in config.yaml → `hermes gateway start`
📱 Consumer Messaging

BlueBubbles (iMessage)

Built-in
★★★☆☆

iMessage bridge via BlueBubbles server running on a Mac. Supports text, images, and files through Apple's iMessage protocol.

ImagesFiles
Auth: BlueBubbles server URL + password
Requires a Mac running BlueBubbles server 24/7. Not a direct Apple API integration — depends on BlueBubbles project stability.
Install BlueBubbles server on a Mac → set server URL and password → configure `platforms.bluebubbles.extra.server_url` and password in config.yaml → `hermes gateway start`
🏢 Enterprise / Team

Slack (Enterprise)

Built-in
★★★★☆

Enterprise Slack integration with Socket Mode. Full feature parity for team communication — threads, reactions, and channel management.

VoiceImagesFilesThreadsReactionsTypingStreaming
Auth: Slack Bot Token + App Token
Env vars: SLACK_BOT_TOKEN, SLACK_APP_TOKEN
Enterprise Grid instances may have additional permissions required.
See Slack entry in Consumer category. Enterprise features use the same setup.
🏢 Enterprise / Team

Mattermost

Built-in
★★★☆☆

Self-hosted enterprise chat alternative to Slack. Uses webhooks and REST API for communication. Good for organizations that self-host.

ImagesFilesThreads
Auth: Mattermost personal access token or bot account token
Requires a running Mattermost server. Feature set depends on server version.
Set up Mattermost server → create bot account → generate token → configure `platforms.mattermost.token` and `extra.server_url` in config.yaml → `hermes gateway start`
🏢 Enterprise / Team

Microsoft Teams

Plugin
★★★☆☆

Enterprise Teams integration via plugin architecture. Supports bot messaging, adaptive cards, and @mentions.

Adaptive CardsMentionsRich Messages
Auth: Azure Bot Service registration + client secret
Env vars: TEAMS_CLIENT_ID, TEAMS_CLIENT_SECRET, TEAMS_TENANT_ID
Requires Azure subscription and public HTTPS endpoint. Plugin-based (install via plugins). Teams Meetings adapter available separately.
Azure Portal → Bot Service → create bot → configure Teams channel → copy App ID + password → set env vars → enable `platforms.teams` plugin → `hermes gateway start`
🏢 Enterprise / Team

Google Chat

Plugin
★★★☆☆

Google Workspace integration via plugin. Supports images, files, threads, and typing. Uses Google Cloud Pub/Sub for webhook-free receiving.

ImagesFilesThreadsTyping
Auth: Google Workspace service account
Env vars: GOOGLE_CHAT_PROJECT_ID, GOOGLE_CHAT_SUBSCRIPTION_NAME
Requires Google Cloud project with billing. Plugin-based. No public URL needed (uses Pub/Sub pull). Documentation is sparse.
Google Cloud Console → enable Google Chat API → create service account → set up Pub/Sub subscription → configure `platforms.google_chat` plugin → `hermes gateway start`
🏢 Enterprise / Team

IRC

Plugin
★★☆☆☆

Oldest chat protocol — text-only, no media, no reactions. Uses Python stdlib asyncio — zero external dependencies. Plugin-based.

Text onlyChannelsPrivate messages
Auth: Optional SASL/NickServ password
Text-only — no images, files, or rich media. Bot must stay connected 24/7. No typing indicators or reactions.
Configure `platforms.irc` plugin → set server, port, nickname, channels in config.yaml → `hermes gateway start`
🌏 Asian Platforms

DingTalk

Built-in
★★★☆☆

Alibaba's enterprise messaging platform with OAuth 2.0 auth. Essential for enterprise deployments in China.

Rich messagingEnterprise features
Auth: DingTalk app credentials (Client ID + Client Secret)
Env vars: DINGTALK_CLIENT_ID, DINGTALK_CLIENT_SECRET
Primarily for Chinese enterprise market. Requires DingTalk developer account.
DingTalk Developer Portal → create app → get Client ID and Client Secret → set env vars → `hermes gateway start`
🌏 Asian Platforms

Feishu / Lark

Built-in
★★★★☆

ByteDance's enterprise platform with card-style interactive messages and a separate comment rules module.

Card MessagesInteractive elementsRich messaging
Auth: Feishu App ID + App Secret (OAuth)
Very large adapter. Feishu is the international name for Lark. Card messages are powerful but complex to design.
Feishu Developer Console → create app → get App ID and App Secret → configure `platforms.feishu.extra.app_id` in config.yaml → `hermes gateway start`
🌏 Asian Platforms

WeCom (Enterprise WeChat)

Built-in
★★★☆☆

Tencent's enterprise communication platform. Two modes: simple webhook bot or full callback app with crypto support.

Rich messagingWebhook modeCallback modeCrypto support
Auth: Webhook URL (bot_id) or corp credentials for callback mode
Callback mode requires WeChat cryptography module. Webhook mode is simpler but limited functionality.
WeCom Admin Console → create bot → get webhook URL or create self-built app → configure `platforms.wecom.extra.bot_id` or corp credentials → `hermes gateway start`
🌏 Asian Platforms

Weixin (WeChat)

Built-in
★★☆☆☆

WeChat Official Account integration. Only option for reaching WeChat's billion+ users. Uses XML message format.

Official Account messagingXML messages
Auth: WeChat Official Account credentials (AppID + AppSecret)
Requires a paid, verified WeChat Official Account. Cannot use personal WeChat accounts. XML-only message format.
WeChat Official Account Admin → get AppID and AppSecret → configure `platforms.weixin.extra.account_id` and token in config.yaml → `hermes gateway start`
🌏 Asian Platforms

QQ Bot

Built-in
★★★☆☆

QQ messaging via official Bot API. Access to QQ's massive Chinese userbase. WebSocket-based.

QQ messagingWebSocket
Auth: QQ Bot platform credentials (App ID + Client Secret)
Uses QQ Bot API (different from personal QQ accounts). Lives in its own subdirectory adapter.
QQ Bot Platform → create bot → get App ID and Client Secret → configure `platforms.qqbot.extra` in config.yaml → `hermes gateway start`
🌏 Asian Platforms

LINE

Plugin
★★★★☆

Dominant messaging platform in Japan, Taiwan, and Thailand. Plugin-based with full media support — images, audio, video, files, stickers, location.

ImagesAudioVideoFilesStickersLocation
Auth: LINE Channel Access Token + Channel Secret
Env vars: LINE_CHANNEL_ACCESS_TOKEN, LINE_CHANNEL_SECRET
Must disable auto-reply and greeting in LINE Developers Console. Uses free reply tokens first (60s window), falls back to metered Push API. Default webhook port 8646.
LINE Developers Console → create provider → create channel → get Channel Access Token and Secret → set env vars → enable `platforms.line` plugin → `hermes gateway start`
🌏 Asian Platforms

Yuanbao

Built-in
★★★☆☆

Tencent's Yuanbao platform with proprietary messaging protocol, media, stickers, and custom proto support.

MediaStickersCustom protocol
Auth: Yuanbao App ID + App Secret
Niche platform. Custom protocol implementation with 4 adapter files. Limited audience outside China.
Yuanbao developer console → create app → get App ID and App Secret → configure `platforms.yuanbao.extra` in config.yaml → `hermes gateway start`
🖧 Infrastructure

Email

Built-in
★★★★☆

Reliable async communication via SMTP/IMAP. Supports threading via email subjects. Best for notification-heavy workflows and offline communication.

ImagesFilesThreading
Auth: SMTP/IMAP credentials
Requires both SMTP (sending) and IMAP (receiving) configuration. Not real-time — polling-based receiving. Firewall may block ports.
Configure `platforms.email.extra` with SMTP server, port, username, password (sending) and IMAP settings (receiving) in config.yaml → set monitored email address → `hermes gateway start`
🖧 Infrastructure

SMS (Twilio)

Built-in
★★☆☆☆

Bare-bones text-only channel via Twilio. Useful for alerts, 2FA codes, and offline notifications when you're away from internet-connected platforms.

Text only
Auth: Twilio Account SID + Auth Token + Phone Number
Env vars: TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, TWILIO_PHONE_NUMBER
Text-only with character limits. Requires Twilio account with purchased phone number (paid). No images, files, or rich formatting.
Twilio Console → get Account SID, Auth Token → buy a phone number → set env vars → configure webhook for inbound → `hermes gateway start`
🖧 Infrastructure

Matrix

Built-in
★★★☆☆

Decentralized open protocol for federated deployments, supporting the Matrix ecosystem.

ImagesFilesDecentralized
Auth: Matrix access token from homeserver login
Requires a Matrix homeserver. Self-hosting adds operational overhead. Decentralized nature can complicate setup.
Register on a Matrix homeserver (matrix.org or self-hosted) → get access token → configure `platforms.matrix.token` and `extra.homeserver_url` in config.yaml → `hermes gateway start`
🖧 Infrastructure

Home Assistant

Built-in
★★★☆☆

Smart home integration via Home Assistant WebSocket API. Enables the agent to control and monitor your smart home devices.

Smart home controlNotificationsReal-time WebSocket
Auth: Home Assistant Long-Lived Access Token
Requires running Home Assistant instance. Off by default for security. Separate from the homeassistant toolset for device control.
Home Assistant → Profile → Long-Lived Access Tokens → create token → configure `platforms.homeassistant.token` and `extra.server_url` in config.yaml → `hermes gateway start`
🔌 API & Webhook

API Server

Built-in
★★★★☆

OpenAI-compatible chat completions API. The backbone for Open WebUI and custom integrations. Runs the agent as a server-to-server service.

OpenAI-compatible APICORSAPI key authStreaming
Auth: Optional API key
Env vars: API_SERVER_ENABLED, API_SERVER_HOST, API_SERVER_PORT
Tool calls execute on the API server host, not the client machine. Not a pure LLM proxy — runs the full agent runtime.
Set `API_SERVER_ENABLED=true`, `API_SERVER_HOST=0.0.0.0`, `API_SERVER_PORT=8642` → optionally set `API_SERVER_KEY` → `hermes gateway start` → point clients at http://host:8642/v1
🔌 API & Webhook

Webhooks

Built-in
★★★☆☆

Generic HTTP webhook listener. Configure arbitrary routes mapping webhook payloads to agent conversations. Flexible for custom integrations.

Custom routesHTTP methodsConfigurable responses
Auth: Optional per-route
No built-in UI — purely config-driven. Route definitions can be complex for multi-payload scenarios.
Enable `platforms.webhook.enabled` in config.yaml → define routes under `extra.routes` with path, method, and response config → `hermes gateway start`
🔌 API & Webhook

MS Graph Webhook

Built-in
★★★☆☆

Microsoft Graph change notification listener. Subscribe to Microsoft 365 events — email, Teams messages, calendar changes. Event-driven agent actions.

Microsoft 365 eventsChange notifications
Auth: Microsoft Entra ID app registration
A subscription listener, not a chat platform. Requires Microsoft Entra ID app with appropriate permissions. Complex setup.
Azure Portal → App Registration → configure cert/secret → set up Graph API permissions → enable `platforms.msgraph_webhook` in config.yaml → `hermes gateway start`
🔌 API & Webhook

Open WebUI

Built-in
★★★★★

Polished web UI for Hermes Agent via the API Server. Full chat interface with conversation management, user accounts, and file uploads.

Web chat UIUser accountsFile uploadsConversation management
Auth: Optional (delegates to Open WebUI auth)
Env vars: API_SERVER_ENABLED=true
Not a standalone adapter — rides on the API Server. Tool calls execute on the API-Server host. Open WebUI is a separate project with its own setup.
Start Hermes API Server (`API_SERVER_ENABLED=true`) → install Open WebUI → configure the OpenAI-compatible endpoint to http://localhost:8642/v1 → login and chat.
🖧 Infrastructure

ntfy

Built-in
★★★☆☆

Simple HTTP-based pub-sub notification channel. Works with the free public ntfy.sh server or a self-hosted instance, and supports any client that can make HTTP requests - phones, browsers, scripts, watches. Subscribe to a topic from the ntfy mobile app, send messages to the topic to talk to the agent, and get responses back on your phone.

Push notificationsMobile app clientsSelf-hosted or public server
Auth: None for public topics; account token for private/reserved topics
Env vars: NTFY_TOPIC, optional ntfy account token
Uses httpx, which is already a Hermes dependency - no SDK, daemon, or Node.js required. Public topics on ntfy.sh are readable by anyone who knows the name, so use an account token for private topics.
Subscribe to a topic in the ntfy mobile app (or any HTTP client) → configure the topic in the gateway section of config.yaml → `hermes gateway setup` and pick ntfy → `hermes gateway start`
📱 Consumer Messaging

Photon (iMessage)

Built-in
★★★☆☆

iMessage integration through Photon, a managed service that handles the Apple line allocation and abuse-prevention layer so no self-hosted Mac relay is needed. Supports voice, images, files, and reactions. Distinct from BlueBubbles, which requires your own Mac server.

VoiceImagesFilesReactionsTypingStreaming
Auth: Photon managed service
Env vars: Photon API credentials
Managed service, so no Mac is required - but the free tier uses Photon shared iMessage line pool, where different recipients may see different sending numbers.
Create a Photon account and obtain API credentials → configure the Photon platform in config.yaml → `hermes gateway start`
📱 Consumer Messaging

SimpleX Chat

Built-in
★★★☆☆

Private, decentralised messaging platform where users own their contacts and groups. SimpleX assigns no persistent user IDs - every contact is identified by an opaque ID generated at connection time - making it one of the most private messengers available. Full media and voice support.

VoiceImagesFilesTyping
Auth: SimpleX contact/group invite
Env vars: simplex-chat CLI daemon, Python websockets package
Requires the external simplex-chat daemon to stay running. No persistent user IDs means contact identity is connection-scoped, which complicates allow-listing.
Install the simplex-chat CLI and run it as a daemon → `pip install websockets` → `hermes gateway setup` and pick SimpleX → `hermes gateway start`
🏢 Enterprise / Team

Raft

Plugin
★★★☆☆

Connects Hermes to Raft as an external agent through a local wake-channel bridge. The adapter starts a loopback HTTP endpoint that receives content-free wake hints from the bridge and injects them into the gateway session pipeline; the agent reads and sends messages through the Raft CLI, so the adapter never touches message bodies or delivery cursors.

Wake-channel bridgeLoopback HTTP endpointCLI-based message I/O
Auth: Raft workspace membership
Env vars: Raft CLI plus the local wake-channel bridge
The bridge owns wake-hint consumption, dedup, backoff, reconnection, at-least-once delivery, and proof logging. The adapter is content-free by design.
Install the Raft CLI and the local wake-channel bridge → configure the Raft platform in config.yaml → `hermes gateway start`
🏢 Enterprise / Team

Buzz

Plugin
★★★☆☆

Connects Hermes to a Buzz community - Block open-source human+agent collaboration platform built on the Nostr protocol - and relays messages between Buzz channels (or DMs) and the agent. Outbound traffic shells out to the buzz CLI, inbound uses a native Nostr WebSocket subscription with CLI polling as fallback.

ImagesThreadsMarkdown renderingNostr WebSocket inboundCLI polling fallback
Auth: Nostr relay membership via the buzz CLI
Env vars: BUZZ_TRANSPORT, optional BUZZ_AUTH_TAG
No extra Python packages are required beyond the buzz binary. Inbound uses a NIP-42-authenticated Nostr WebSocket by default with automatic fallback to CLI polling; set BUZZ_AUTH_TAG if your relay membership uses NIP-OA owner attestation.
Install the `buzz` binary → run `hermes gateway setup` and pick Buzz → `hermes gateway start`
📱 Consumer Messaging

WhatsApp Business (Cloud API)

Built-in
★★★★☆

Official Meta WhatsApp Business Cloud API adapter - the production-grade path with no Node.js bridge subprocess, no QR codes, and no account-ban risk.

VoiceImagesFilesTyping
Auth: Meta WhatsApp Business Cloud API
Env vars: WhatsApp Cloud API credentials
Requires a Meta Business account and webhook endpoint. This is separate from the Baileys whatsapp adapter.
Create a Meta WhatsApp Business app → obtain the Cloud API credentials and webhook configuration → configure the whatsapp-cloud platform in config.yaml → `hermes gateway start`
🔌 API & Webhook

A2A (Agent-to-Agent)

Plugin
★★★☆☆

Agent-to-Agent protocol adapter (A2A v1.0). Lets Hermes agents exchange messages with other A2A-compatible agents.

Agent-to-agent messagingA2A v1.0 protocol
Auth: A2A endpoint credentials (if required)
Env vars: A2A endpoint configuration
Newest adapter in the set (v0.20.0 A2A v1.0 window). Intended for agent-to-agent traffic rather than human chat.
Configure the a2a platform endpoint in config.yaml → `hermes gateway start`
🔍

No results found. Try a different search or filter.