Skip to main content
Hermes Agent is Nous Research’s multi-provider AI agent framework. It supports OAuth, API key, and custom endpoint authentication, and can deliver to Telegram, Discord, Slack, WhatsApp, Signal, and more. The cleanest way to point Hermes at RuAPI is its “Custom endpoint” flow (OpenAI-compatible).

Prerequisites

1

RuAPI account + API key

Console → Tokens → create a sk-... key.
2

OS

Linux / macOS / WSL2 are well-supported. Native Windows is still early beta — use WSL2 if you hit rough edges.

Install Hermes

One-liner:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Reload your shell:
source ~/.bashrc    # or: source ~/.zshrc
Confirm:
hermes --version

Configure RuAPI

Launch the provider wizard:
hermes model
Follow these steps:
1

Pick 'Custom endpoint'

The wizard lists every built-in provider (Nous Portal / OpenRouter / Anthropic / OpenAI / …). Scroll to the bottom and select Custom endpoint (self-hosted / VLLM / etc.).
2

Base URL

https://www.ruapi.ai/v1
OpenAI-compatible protocol — the URL must end in /v1.
3

API key

Paste your RuAPI token sk-.... Hermes writes it to ~/.hermes/.env.
4

Name the endpoint

For example, RuAPI. Hermes creates a matching credential pool.
5

Choose a model

Common picks:
  • gpt-5 (OpenAI-family)
  • Claude Sonnet (callable via the OpenAI-compatible protocol on RuAPI)
  • deepseek-chat, Kimi, GLM, etc.
Full list at the pricing page.
The wizard writes ~/.hermes/config.yaml:
model:
  provider: "custom"
  default: "gpt-5"
  base_url: "https://www.ruapi.ai/v1"

First call

Start the CLI:
hermes
Inside the prompt:
> In one sentence, introduce yourself.
A normal reply plus a matching RuAPI Console → Logs entry = success.

Switch models

Inside a session:
/model claude-opus-4-8
/model custom:claude-opus-4-8
Or exit and rerun hermes model to change the default.

Wire up Telegram / Discord / etc.

Once the model is configured, set up the gateway:
hermes gateway setup
hermes gateway start
Follow the prompts (Telegram bot token, etc.). Once the gateway is up, messages will route through RuAPI. See the Hermes Messaging Gateway docs for details.

Troubleshooting

  • Confirm the API key line in ~/.hermes/.env is your RuAPI token, copied correctly.
  • Check the key status in RuAPI Console → Tokens.
  • That model ID isn’t on RuAPI — check the pricing page.
  • base_url must end in /v1.
Hermes’s built-in Anthropic flow is built around Claude Max OAuth — overriding the base URL for third-party gateways isn’t reliable. Custom endpoint (OpenAI-compatible) is the cleanest path on RuAPI, and Claude models work over it too.
Hermes supports multiple providers. Run hermes model again to add another, and use /model mid-session to switch.
Function calling passes through the OpenAI-compatible protocol unchanged. If a tool call fails, first verify the model supports tool use (gpt-5 and Claude Sonnet support it for compatible models — check the capability badges on the pricing page).

Advanced

  • Auxiliary models: Hermes uses an auxiliary model for vision / web summarization / MoA, defaulting to your main model. To save money, override it to a cheaper one — see Auxiliary Models.
  • Credential pools: round-robin keys and auto-failover — see Credential Pools.