logo
icon

Hermes Agent

Hermes Agent by NousResearch — an autonomous AI agent with persistent memory, tool use, cron scheduling, and 14+ messaging platforms (Telegram, Discord, Slack, WhatsApp, Signal, Matrix, WeChat, WeCom, Feishu, DingTalk, Email, and more). Includes an OpenAI-compatible API server.

template cover
Deployed1135 times
PublisherzeaburZeabur
Created2026-04-12
Minimum2 Cores4 GB
Recommended4 Cores8 GB
Tags
AIAgentChatbot

Hermes Agent

Hermes Agent is an autonomous AI agent built by Nous Research. It features persistent memory, 40+ built-in tools, cron scheduling, and multi-platform messaging support.

Quick Start

  1. Deploy this template — generate a Zeabur AI Hub key and pick a dashboard domain (e.g. my-hermes). That's it; the agent and dashboard work out of the box.
  2. Open the dashboard — go to your domain (auto-bound to the dashboard). Add a custom domain later in the Networking tab if you like.
  3. Log in — username admin, password = your service PASSWORD (shown in the service instructions). Start chatting in the browser — no Telegram needed.

Want OpenRouter, another provider (Minimax, Kimi, …), or Telegram instead? Add the relevant environment variables after deploy — see Models & Providers and Messaging Platforms below.

Ports & Domains

This service exposes two HTTP ports:

PortIdPurposeDomain
9119webWeb dashboard (on by default, login-protected)The service's main domain — open it and log in
5000apiOpenAI-compatible API serverBind a domain only if you need external API access

Messaging platforms (Telegram, Discord, Slack, etc.) use outbound connections — they do not require any public URL or open port.

Using the Web Dashboard

The dashboard is enabled by default and protected by login. Open your service's domain (the web port) and log in:

  • Username: admin
  • Password: your service PASSWORD value (shown in the service instructions)

To disable it, set HERMES_DASHBOARD=false in the Variables tab. To change the credentials, set HERMES_DASHBOARD_BASIC_AUTH_USERNAME / HERMES_DASHBOARD_BASIC_AUTH_PASSWORD.

Security note: Basic auth login is best for a backend behind a trusted network; for hardened public exposure use OAuth (HERMES_DASHBOARD_OAUTH_CLIENT_ID) or self-hosted OIDC (HERMES_DASHBOARD_OIDC_*) — see the environment variables reference.

Using the OpenAI-compatible API

Bind a domain to the api port (5000) in the Networking tab, then send requests with your auto-generated API key (shown in the service instructions):

curl https://YOUR_API_DOMAIN/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_SERVER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "default", "messages": [{"role": "user", "content": "Hello!"}]}'

Models & Providers

Out of the box this template uses Zeabur AI Hub (key from the Zeabur AI Hub Key variable), model claude-sonnet-4-5, region sfo1. To change things, add these in the Variables tab and restart:

  • Model — set LLM_MODEL to any AI Hub model.
  • Region — set LLM_BASE_URL to https://hnd1.aihub.zeabur.ai/v1 for Tokyo (default is sfo1).
  • OpenRouter instead — set OPENROUTER_API_KEY (leave the AI Hub key empty); Hermes auto-detects it.
  • Another provider (Minimax, Kimi, GLM/Zhipu, Gemini, NVIDIA, xAI, …) — add that provider's API key env var (e.g. KIMI_API_KEY, MINIMAX_API_KEY) and pick the model with hermes model in the Exec tab. See the Configuration guide and Environment Variables reference.

LLM_MODEL / LLM_BASE_URL + the AI Hub key are applied to the model block of /opt/data/config.yaml on every start. Leave them unset to manage config.yaml by hand instead.

Messaging Platforms

Messaging is optional — by default you interact through the web dashboard (no platform needed). To connect Telegram, add TELEGRAM_BOT_TOKEN (from @BotFather) and TELEGRAM_ALLOWED_USERS (your Telegram user ID from @userinfobot) in the Variables tab, then restart. Hermes supports 14+ platforms (Discord, Slack, WhatsApp, Signal, Matrix, Email, WeChat, WeCom, Feishu, DingTalk, QQ Bot, Mattermost, BlueBubbles/iMessage, SMS, Home Assistant, generic webhooks) — each is enabled by setting its environment variables after deployment.

See the official Messaging Gateway guide for per-platform setup.

Configuration

  • LLM providers, tools, and all other settings — refer to the official Configuration guide and Environment Variables reference.
  • Edit config files via the Zeabur Files tab at /opt/data/:
    • config.yaml — model selection, terminal backend, platform settings
    • SOUL.md — agent personality and system prompt
    • .env — all environment variables
  • After editing, restart the service to apply changes.

CLI Access

You can use the Hermes CLI directly via the Zeabur Exec tab (or zeabur service exec). The hermes command is available out of the box:

CommandDescription
hermesInteractive chat (REPL)
hermes --tuiModern terminal UI
hermes -z "prompt"One-shot query (for scripting)
hermes statusShow status of all components
hermes modelSwitch model / provider
hermes configView or edit configuration
hermes sessions listList past conversations
hermes -cResume last conversation
hermes cronManage scheduled jobs
hermes skillsBrowse and install skills

Run hermes --help for the full command list.

Notes

  • The Docker image is ~1.3 GB (download). First deployment usually pulls within a minute; later deploys reuse the cached image.
  • First boot may take 30–60 seconds as the agent initializes config files and syncs skills.
  • Using browser tools may cause high memory usage — if you encounter OOM (out of memory) errors, consider upgrading to a larger instance (recommended 4 vCPU / 8 GB RAM).

License

Hermes Agent is licensed under the MIT License by Nous Research.