Skip to main content
HERMINA · YOUR PERSONAL HARNESSExplore
Docs/Channels and messaging

Channels and messaging

Each agent can receive messages through its own Hermes Gateway configuration. Hermina currently exposes guided flows for WhatsApp, Telegram, and Matrix, with room for other Hermes-supported platforms.

Choose a channel

ChannelSetup styleBest forKey consideration
WhatsApp (Baileys)Linked-device QRFast personal or business-number setupSession credentials must persist
WhatsApp CloudMeta app credentials + webhookOfficial API deploymentsRequires a public HTTPS webhook
TelegramBot tokenBots, groups, and simple deploymentGroup mention policy matters
MatrixHomeserver, user, token, room policySelf-hosted/open messagingTreat the access token as a secret

Configure channels from the agent detail screen or during hermina onboard. Use the CLI commands below for common operations.

WhatsApp linked device

The default WhatsApp transport uses a linked device session.

hermina start support
hermina qr support
hermina logs support --follow

On the WhatsApp account that will represent the agent:

  1. Open Settings or the main menu.
  2. Open Linked devices.
  3. Choose Link a device.
  4. Scan the terminal QR.

Credentials are stored under agents/<name>/whatsapp/session/. Preserve that directory during updates and backups.

Check the connection:

hermina bridge support

If the QR has expired, restart the agent and follow the new QR from the logs.

WhatsApp Cloud

WhatsApp Cloud uses Meta credentials and a webhook instead of a device QR. Configure the transport and secrets through the dashboard or hermina channel:

hermina channel support \
  --transport=whatsapp-cloud \
  --cloud-phone-number-id=PHONE_NUMBER_ID \
  --cloud-access-token=ACCESS_TOKEN \
  --cloud-app-secret=APP_SECRET \
  --cloud-verify-token=VERIFY_TOKEN \
  --cloud-waba-id=WABA_ID

The webhook must be reachable over HTTPS and routed to the published Cloud webhook port. If the port mapping changes after the container was created, recreate the runtime so Docker publishes the new port.

Telegram

Create a bot with BotFather, then add its token from the agent's Channels settings or guided onboarding. After saving, restart the agent and send the bot a direct message.

Control group behavior with:

hermina telegram-groups support on

With mention mode on, the bot responds in a group only when mentioned or when a message replies to it. With it off, it can respond to every group message; use that mode carefully in busy rooms.

Matrix

hermina matrix support \
  --homeserver=https://matrix.example.com \
  --user-id=@support:example.com \
  --access-token=YOUR_ACCESS_TOKEN \
  --allowed-rooms='!roomid:example.com' \
  --require-mention=true \
  --restart=true

Restrict users or rooms before joining public spaces. A Matrix access token grants the permissions of its account.

Direct messages, groups, and allowlists

Channel connectivity and message authorization are separate. A healthy bridge can still ignore a sender because of allowlist, group, or command policy.

Set allowed WhatsApp users:

hermina allowlist support --numbers=5511888888888,5511777777777

Enable or disable WhatsApp group replies:

hermina groups support on
hermina groups support off

When WhatsApp groups are enabled, the generated policy requires a mention by default.

See Access and permissions for slash-command administrators and network security.

Channel troubleshooting order

  1. Confirm the agent runtime is running with hermina list.
  2. Confirm the model responds in dashboard chat.
  3. Check the channel status or bridge health.
  4. Inspect agent logs.
  5. Check allowlist and group policy.
  6. Send /whoami to learn the platform's exact sender ID.
  7. Re-pair or rotate the platform token only after the previous checks pass.