Skip to content
Deployment GuideBeginner

How to Deploy Hermes Agent: Complete Production Guide

Hermes Agent by Nous Research has 33K+ GitHub stars and a self-improving learning loop that gets better the more you use it. This guide walks you through deploying it to production — the manual way, then the fast way.

BG
Brandon Gaucher

April 10, 2026·15 min read

33K+

GitHub stars

v0.7.0

Latest release

$5/mo

Minimum server cost

TL;DR

Hermes Agent runs on a $5 VPS, connects to 7 platforms out of the box, and improves itself over time with a three-tier memory system. Self-hosted setup takes about 30-45 minutes. Or deploy with Rapid Claw in under 2 minutes and skip the server management entirely.

Want to skip the manual setup?

Deploy with Rapid Claw

What Is Hermes Agent?

Hermes Agent is an open-source AI agent framework by Nous Research. Released in February 2026, it has grown to 33K+ GitHub stars and is now at v0.7.0. What sets it apart from other agent frameworks:

  • Self-improving learning loop — Hermes gets better at tasks the more you use it. Skills that work get reinforced; skills that fail get refined automatically.
  • Multi-platform out of the box — Telegram, Discord, Slack, WhatsApp, Signal, Email, and CLI. One agent, seven platforms, same memory across all of them.
  • Runs anywhere — from a $5 VPS to a multi-GPU cluster. No desktop environment or browser required (unlike computer-use agents).

If you are deciding between Hermes and OpenClaw, read our honest tradeoffs comparison first. This guide assumes you have already decided to deploy Hermes.

Prerequisites

Hermes is lighter than most agent frameworks. Here is what you need:

  • A VPS or local machine — minimum 1 CPU core, 1 GB RAM, 20 GB disk. A $5/month Hetzner or DigitalOcean droplet works for single-platform setups.
  • Python 3.11+ — Hermes is a Python project. You will also need pip and virtualenv (or uv if you prefer).
  • An LLM API key — Hermes is model-agnostic. Works with OpenAI, Anthropic, or any OpenAI-compatible endpoint (Ollama, Together, Groq, etc.).
  • Platform bot tokens — if you want Telegram, Discord, or Slack, you will need the relevant bot tokens. We cover this in the multi-platform section.
  • 30-45 minutes — first-time setup. Subsequent deployments are much faster.

No GPU required. Hermes calls LLM APIs over the network by default. You only need a GPU if you plan to run local models via Ollama or vLLM.

Self-Hosted Setup (Step by Step)

This is the manual path. We will go from a fresh server to a running Hermes Agent with the CLI interface. Multi-platform connectors come in the next section.

1. Clone and install

# Clone the Hermes Agent repository
git clone https://github.com/NousResearch/hermes-agent.git
cd hermes-agent

# Create a virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -e ".[all]"

# Verify installation
hermes --version
# hermes-agent v0.7.0

The [all] extra installs every platform connector and memory backend. For a minimal install, use pip install -e . instead — you can add extras later.

2. Initialize configuration

# Generate a default config file
hermes init

# This creates ~/.hermes/config.yaml with sensible defaults
# and ~/.hermes/skills/ for your custom skill definitions

3. Configure your LLM provider

Open ~/.hermes/config.yaml and set your provider:

# ~/.hermes/config.yaml
llm:
  provider: anthropic          # or openai, ollama, together, groq
  model: claude-sonnet-4-6   # any supported model
  api_key: sk-ant-...          # or set ANTHROPIC_API_KEY env var
  temperature: 0.7
  max_tokens: 4096

agent:
  name: "my-hermes-agent"
  persona: "You are a helpful assistant."
  max_iterations: 10           # safety limit per task

Never commit API keys to git. Use environment variables in production: export ANTHROPIC_API_KEY=sk-ant-... and leave the api_key field empty in config.yaml.

4. Run the agent

# Start Hermes in CLI mode
hermes run

# You should see:
# [hermes] Agent "my-hermes-agent" started
# [hermes] Memory: short-term (active), mid-term (sqlite), long-term (disabled)
# [hermes] Platforms: cli
# [hermes] Skills loaded: 12 built-in
# > _

That is it for a basic deployment. You have a working Hermes Agent running locally with CLI access. The next sections cover what makes Hermes special: the memory system, multi-platform connectors, and the self-improving loop.

Configure the Three-Tier Memory System

Hermes has a three-tier memory system that makes it genuinely different from most agent frameworks. By default, only short-term memory is enabled. Here is how to turn on all three tiers:

Tier 1: Short-Term Memory

Conversation context within the current session. Always active, stored in-memory. Lost when the agent restarts. No configuration needed.

Tier 2: Mid-Term Memory

Session summaries, user preferences, and conversation history. Persisted to SQLite (default) or Postgres for production.

Tier 3: Long-Term Memory

Vector-indexed knowledge. The agent stores and retrieves information semantically. Powered by ChromaDB (local) or Qdrant (production).

Enable all three tiers in your config:

# ~/.hermes/config.yaml — memory section
memory:
  short_term:
    enabled: true              # always on

  mid_term:
    enabled: true
    backend: sqlite            # or "postgres"
    # For SQLite (good for single-instance):
    sqlite_path: ~/.hermes/memory.db
    # For Postgres (recommended for production):
    # postgres_url: postgresql://hermes:password@localhost:5432/hermes

  long_term:
    enabled: true
    backend: chromadb           # or "qdrant"
    # ChromaDB (local, zero-config):
    chroma_persist_dir: ~/.hermes/chroma
    # Qdrant (production, supports clustering):
    # qdrant_url: http://localhost:6333
    # qdrant_collection: hermes-memory
    embedding_model: all-MiniLM-L6-v2

With all three tiers enabled, Hermes automatically promotes important information up through the stack. A conversation insight becomes a session summary, then gets vector-indexed for future retrieval. This is the foundation of the self-improving loop.

Connect Multi-Platform Adapters

One Hermes Agent can serve users across all seven supported platforms simultaneously. Each platform runs as an independent adapter — enable the ones you need:

# ~/.hermes/config.yaml — platforms section
platforms:
  cli:
    enabled: true               # always useful for debugging

  telegram:
    enabled: true
    bot_token: "YOUR_TELEGRAM_BOT_TOKEN"

  discord:
    enabled: true
    bot_token: "YOUR_DISCORD_BOT_TOKEN"
    guild_ids:                  # optional: restrict to specific servers
      - "123456789"

  slack:
    enabled: true
    bot_token: "xoxb-your-slack-bot-token"
    app_token: "xapp-your-app-token"

  whatsapp:
    enabled: false              # requires WhatsApp Business API
    # phone_number_id: "..."
    # access_token: "..."

  signal:
    enabled: false              # requires signal-cli daemon
    # signal_cli_url: "http://localhost:8080"

  email:
    enabled: false
    # imap_host: "imap.gmail.com"
    # smtp_host: "smtp.gmail.com"
    # email: "agent@yourdomain.com"
    # password: "app-specific-password"

Start Hermes with all enabled platforms:

hermes run --all-platforms

# [hermes] Agent "my-hermes-agent" started
# [hermes] Platforms: cli, telegram, discord, slack
# [hermes] Memory shared across all platforms

Memory is shared across platforms by default. If a user talks to your agent on Telegram and later switches to Discord, the agent remembers the full conversation context.

Enable the Self-Improving Learning Loop

This is the headline feature. Hermes tracks which skills succeed and which fail, then refines its approach over time. Think of it as a feedback loop: the agent learns from every interaction.

# ~/.hermes/config.yaml — learning section
learning:
  enabled: true
  feedback_mode: auto           # "auto", "explicit", or "off"
  skill_refinement: true        # auto-refine skills based on outcomes
  reflection_interval: 50       # reflect every N interactions
  min_confidence: 0.7           # minimum confidence to auto-apply a learned skill

With feedback_mode: auto, Hermes evaluates task outcomes automatically. Set it to explicit if you want the agent to ask the user for feedback after each task. In production, auto is the better default — users rarely want to rate every interaction.

You can also define custom skills in ~/.hermes/skills/ that the learning loop will refine:

# ~/.hermes/skills/summarize_email.yaml
name: summarize_email
description: "Summarize incoming emails into 3-bullet action items"
trigger: "when the user forwards an email"
steps:
  - extract: subject, sender, body
  - summarize: body into 3 bullet points
  - identify: action items with deadlines
  - respond: formatted summary with action items

As users provide feedback on summaries, Hermes adjusts how it extracts and prioritizes information. Over weeks of use, the agent builds a personalized model of what each user considers a good summary.

Production Hardening

A working Hermes Agent is not the same as a production-ready one. Here is what to add before you rely on it:

Run with systemd

# /etc/systemd/system/hermes-agent.service
[Unit]
Description=Hermes Agent
After=network.target

[Service]
Type=simple
User=deploy
WorkingDirectory=/opt/hermes-agent
Environment="PATH=/opt/hermes-agent/.venv/bin:/usr/bin"
EnvironmentFile=/opt/hermes-agent/.env
ExecStart=/opt/hermes-agent/.venv/bin/hermes run --all-platforms
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable hermes-agent
sudo systemctl start hermes-agent

# Check status
sudo systemctl status hermes-agent

Set up log rotation

# ~/.hermes/config.yaml — logging section
logging:
  level: info                   # debug, info, warning, error
  file: /var/log/hermes/agent.log
  max_size_mb: 100
  backup_count: 5

Firewall and reverse proxy

Hermes itself does not expose an HTTP port unless you enable the optional web dashboard. For platform connectors, outbound traffic only — the bots connect to platform APIs, not the other way around. The main exception is Slack (Socket Mode) and webhooks for WhatsApp.

# If using the web dashboard
sudo ufw allow 22/tcp    # SSH
sudo ufw allow 443/tcp   # HTTPS (for dashboard behind Nginx)
sudo ufw enable

Back up memory

The memory database is the most valuable part of your Hermes deployment. Back it up:

# Cron job: backup memory daily at 3 AM
0 3 * * * sqlite3 /home/deploy/.hermes/memory.db ".backup /backups/hermes-memory-$(date +\%Y\%m\%d).db"

# For ChromaDB, tar the persist directory
0 3 * * * tar -czf /backups/hermes-chroma-$(date +\%Y\%m\%d).tar.gz /home/deploy/.hermes/chroma/

This is where self-hosting gets tedious. Backups, log rotation, systemd restarts, security patches, dependency updates — it adds up. If you would rather spend your time building skills than managing infrastructure, keep reading.

The Easier Path: Managed Deployment with Rapid Claw

Everything above works. We wrote it because we believe in self-hosting as a viable option. But we also built Rapid Claw specifically so you do not have to do any of it.

Self-Hosted (This Guide)

Setup Time

30-45 minutes

Monthly Cost

$5-20/mo server + API costs

Updates

Manual git pull + restart

Multi-Platform

You configure each connector

Memory Persistence

You manage DB + backups

Rapid Claw

Setup Time

Under 2 minutes

Monthly Cost

$29/mo all-in (BYOK for API)

Updates

Auto-updates, zero downtime

Multi-Platform

Toggle connectors in dashboard

Memory Persistence

Managed DB with auto-backups

With Rapid Claw, deploying Hermes Agent takes three clicks:

  1. Pick Hermes Agent as your agent framework (or run it alongside OpenClaw)
  2. Add your API key (BYOK — we never touch your LLM credentials)
  3. Toggle your platforms — Telegram, Discord, Slack, all from the dashboard

Memory, backups, SSL, log rotation, auto-updates, and uptime monitoring are all handled for you. The self-improving learning loop runs out of the box with persistent storage that survives restarts and redeploys.

Deploy Hermes Agent in Under 2 Minutes

No server setup. No Docker. No systemd configs. Just your agent, running in production.

Start Free on Rapid Claw

Builder Sandbox and White-Glove plans. BYOK for LLM API costs.

Related Articles

Frequently Asked Questions

Ready to Deploy

Get Hermes Agent running in 60 seconds

Managed Hermes hosting with persistent memory, auto-updates, and multi-platform connectors pre-configured. No DevOps required — we handle the infrastructure so you can focus on building skills.

AES-256 encryption · Auto-updates · Managed memory backups · No standing staff access