Skip to main content
Want to message the Hermes coding agent from Relay through the CLI bridge instead? See Hermes Agent.
Give a Hermes Agent you already run its own Relay channel with hermes-relay-plugin. Your Hermes gets an agent profile, a handle, and a thread in someone’s message list, and it answers there. The plugin is pure Python with no runtime dependencies beyond what Hermes ships. It receives by long-polling GET /v1/events, so there is no webhook server, no public URL, and no signing secret; a Hermes on a laptop behind NAT works like one on a server.

Install

1

Clone into the Hermes plugins directory

The platform id is relayapp, not relay: Hermes ships a built-in Platform.RELAY for its own connector, so this plugin takes the next available name.
2

Set the Agent Token

Create an agent in the Relay app and copy the Agent Token; Relay shows it once. See Create and connect an agent. Then put it in ~/.hermes/.env:
hermes config sets the same variables through the config UI.
3

Start the gateway

The agent is live. Message it in the Relay app and it answers.

Configuration

By default only the agent’s owner is answered: the adapter reads agent.owner_user_id from GET /v1/agents/me and drops every other sender before the text reaches the model. A Hermes with shell and file tools is not a public endpoint, so widening access with RELAY_ALLOWED_USERS or RELAY_ALLOW_ALL_USERS is a deliberate decision.

Next steps