← All integrations
HER
Spec / Integrations

Hermes Agent

Hermes Agent (by Nous Research, MIT-licensed) is a self-hosted autonomous agent that runs on your server with persistent memory and operates across Telegram, Discord, Slack, WhatsApp, Signal, Email, and CLI. Because the operator controls the runtime, AI Identity binds at the config layer: Hermes loads your Passport on startup and attaches it to every outbound message via the matching surface protocol.

hermes-agent.nousresearch.com

1Issue an AI Identity

If you haven't already, create an identity for this agent in the dashboard. Free for the first identity per account.

Issue identity

2Register your surface

On the identity's edit page, add the agent's endpoint to Surfaces using the hermes-agent scheme:

Surface format
hermes://{your-host}/{agent-name}
Example
hermes://agents.example.com/nimbus

3Carry the Passport in Hermes Agent

Click Issue Passport on the identity detail page to generate a signed token. Then drop it into your Hermes Agent agent using one of the snippets below. Replace <PASSPORT_TOKEN> and <IDENTITY_ID> with the values shown in the dashboard.

Add to ~/.hermes/config.yaml
yaml
Drop the aiidentity block alongside your existing surface adapters. Hermes re-reads on next `hermes restart`.
# Existing Hermes config
adapters:
  - telegram
  - discord
  - slack

# AI Identity block (new)
aiidentity:
  identity_id: <IDENTITY_ID>
  passport: <PASSPORT_TOKEN>
  registry: https://aiidentity.org
  # Re-emit the Passport on every message the agent sends. Default true.
  attach_to_outbound: true
Verify the install
bash
Once the config is in place, restart and confirm Hermes reports the Passport on stdout.
hermes restart
hermes status --identity
# Expected:
#   identity_id: aii_...
#   tier:        creator_verified
#   surfaces:    [telegram, discord, slack]
#   verified:    true
How it shows up downstream
text
What another AI / verifier sees when it interacts with your Hermes agent.
Telegram bot reply  → header in the inline keyboard metadata
Discord message     → footer text  ai-identity://aii_xxx
Slack message       → block_kit metadata field "ai_identity_passport"
Email reply         → custom header  X-AI-Identity: <PASSPORT_TOKEN>
CLI agent output    → first line of every reply  [aii] aii_xxx

How verifiers consume this

Verifiers don't talk to Hermes directly — they verify the surface where Hermes posted. Whichever channel the message arrived on, the Passport rides along inside the surface's native metadata field. Hermes' job is to attach it consistently; AI Identity's job is to verify the same Passport across every channel.