Skip to content
Connect a clientHermes Agent

Hermes Agent

new

Nous Research terminal agent over Chat Completions.

Set up with your own AI
Model protocol

Hermes Agent is the terminal agent from Nous Research. Its documentation puts a single requirement on a third-party address: the server must serve POST /v1/chat/completions. Guard serves that address for all four families, so the setup below is the same everywhere and only the exact model id changes.

bash
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

On Windows the same installer runs from PowerShell: iex (irm https://hermes-agent.nousresearch.com/install.ps1).

Settings live in ~/.hermes/config.yaml, keys in ~/.hermes/.env. The quick path: run hermes model, pick Custom endpoint, then answer the address, key and model name. The same thing by hand:

yaml
# ~/.hermes/config.yaml
model:
  provider: custom
  base_url: https://api.guardrelay.ai/v1
  api_key: gd-your-key-from-bot
  default: claude-sonnet-5
yaml
# ~/.hermes/config.yaml
model:
  provider: custom
  base_url: https://api.guardrelay.ai/v1
  api_key: gd-your-key-from-bot
  default: k3
yaml
# ~/.hermes/config.yaml
model:
  provider: custom
  base_url: https://api.guardrelay.ai/v1
  api_key: gd-your-key-from-bot
  default: cursor-grok-4.6-medium
yaml
# ~/.hermes/config.yaml
model:
  provider: custom
  base_url: https://api.guardrelay.ai/v1
  api_key: gd-your-key-from-bot
  default: composer-2.5

The address is written with /v1 at the end. Hermes does not append the version itself: in its own examples for OpenAI-compatible addresses /v1 sits inside the base_url value.

Several addresses are kept under the providers: section of the same file. An entry takes api (the base address), key_env or api_key, transport, default_model and context_length. For Guard use transport: chat_completions.

yaml
# ~/.hermes/config.yaml
providers:
  guard:
    api: https://api.guardrelay.ai/v1
    key_env: GUARD_API_KEY
    transport: chat_completions

After that the model is switched inside the session: /model custom:guard:<exact id>. With no named providers the short form /model custom:<exact id> works.

Documentation sections

On this page