Skip to content

Multi-gateway deployment

Hermes supports multiple gateway processes running concurrently — one per profile (default, writer, admin, coder, researcher). Each gateway opens its own connection to platform APIs and delivers messages for its profile's subscribers.

Task subscriptions also cover review feedback. A changes_requested review event is delivered as an actionable review-BLOCK notification. Subscriptions using notify+wake additionally wake the exact originating chat/thread/session so the controller inspects the existing card and current run; notify remains passive-only and wake remains wake-only. Review feedback never creates, unblocks, requeues, or otherwise mutates a task.

Single-dispatcher posture

Only one gateway owns the kanban dispatcher. The owning gateway keeps kanban.dispatch_in_gateway: true (the default); every other gateway sets it to false.

Why this matters: dispatching is single-owner so multiple gateways do not race to spawn the same work. Notification delivery is profile-owned instead: each gateway polls only subscriptions for profiles whose platform adapters it hosts. The atomic event claim prevents duplicate delivery across watcher processes.

Configuration

On the dispatch-owning gateway (typically the default profile), no change is needed. On every other profile gateway, add to ~/.hermes/config.yaml:

yaml
kanban:
  dispatch_in_gateway: false

Or set the env var: HERMES_KANBAN_DISPATCH_IN_GATEWAY=false

What each gateway does

Gateway roledispatch_in_gatewayOpens subscribed board DBs?DispatcherNotifier
default (confirmed dispatch-lock owner)true (default)yesyesowned profiles + legacy unstamped subscriptions
writer, admin, coder, etc.falseyes, when the profile has subscriptionsnothat gateway's owned profiles

Non-dispatch gateways still deliver messages for their own platform adapters (Telegram, Discord, etc.). They do not dispatch tasks, and they skip boards that have no subscriptions owned by their profiles.

Unofficial documentation. Source: hermes-agent.nousresearch.com