Last updated: 2026-05-16

Hermes Quick Start — Install, Memory Setup & First Long-Running Task

Hermes runs differently from OpenClaw or IronClaw. It's a daemon — a background process that persists between sessions, maintains its own memory database, and can be given tasks that execute hours or days later. This guide walks you from zero to a working Hermes installation with persistent memory and a scheduled task in about 20 minutes.

🔐 Installing on a VPS or running side-by-side with another agent?

For a hardened multi-user setup — Hermes + Kilo Code on one Hetzner Ubuntu VPS with full per-user isolation, no public ports beyond SSH, and OpenRouter as the LLM provider — see our newer, more comprehensive guide: VPS Install — Side-by-Side with Kilo Code. It includes every install gotcha (build-tools sudo prompt, Playwright, the systemd linger dance) with the fix. The companion Discord Gateway guide covers the highest-friction part of the install. The Troubleshooting & FAQ covers everything else.

Install method changed in v0.14.0 — pip replaces npm

As of v0.14.0 (May 16 2026), Hermes ships as a PyPI package. The old npm install -g hermes-agent command no longer receives updates. If you installed via npm, migrate now: pip install hermes-agent then hermes --version should show 0.14.0 or higher. Python 3.11+ required.

Prerequisites

  • Python 3.11+ — check with python --version. (As of v0.14.0, Hermes is a PyPI package — Node.js is no longer required.)
  • A model with a long context window — Hermes works with any provider, but its value shows most with models that can hold large contexts. Recommended: Claude Opus 4.6 (200K context), Claude Sonnet 4.6 (200K), or GPT-4.1 (128K). See the model selection guide below.
  • At least 500 MB disk space for the SQLite memory store. Heavy use over months can grow to several GB — plan accordingly or use the PostgreSQL backend.
  • Linux or macOS recommended. Windows native support (early beta) landed in v0.14.0 — works on cmd.exe and PowerShell without WSL.

Step 1 — Install Hermes

pip install hermes-agent

# Verify
hermes --version
# hermes/0.14.0 linux-x64 python/3.12.3

Hermes also registers in Zed's ACP Registry — Zed users can install it in one click via uvx instead. For all other editors and terminals, pip install hermes-agent is the canonical path.

Unlike OpenClaw and IronClaw, Hermes installs as both a CLI tool (hermes) and a background daemon. The daemon is what maintains persistent memory and scheduled tasks when you're not actively using it.

Step 2 — Run the Setup Wizard

hermes init

The wizard asks seven questions:

QuestionDefaultRecommendation
Model provideranthropic (Claude has the best long-context handling)
API keyPaste key — stored encrypted in OS keychain
Primary modelclaude-sonnet-4-6Accept default, or use claude-opus-4-6 for complex tasks
Memory store typesqliteAccept sqlite for personal use; use postgres for team/production
Memory store path~/.hermes/memory.dbAccept default, or choose a path on a drive with plenty of space
Workspace path~/.hermes/workspace/Accept default
Notification channelnoneSet to telegram if you want task completion alerts on your phone

After the wizard, Hermes creates:

~/.hermes/
  hermes.json          # main config
  memory.db            # SQLite memory store
  workspace/
    PERSONA.md         # who Hermes is (equivalent of OpenClaw's SOUL.md)
    TASKS.md           # scheduled and active tasks
    REFLECTIONS.md     # self-reflection log (written by Hermes)
    MEMORY.md          # manual memory entries (you write these)
  logs/
    daemon.log         # daemon activity log
    tasks.log          # task execution log

Step 3 — Start the Daemon

hermes start

# Output:
# [hermes] daemon v0.14.0 starting
# [hermes] memory store: sqlite (~/.hermes/memory.db) — 0 episodes
# [hermes] indexer: ready
# [hermes] scheduler: ready — 0 tasks queued
# [hermes] daemon running (PID 45821)

# Verify it's running
hermes status
# daemon: running (PID 45821)
# memory: 0 episodes, 0 facts, 0 reflections
# tasks: 0 queued, 0 running, 0 completed

The daemon runs in the background and survives terminal closures. To stop it:

hermes stop

Run as a System Service (recommended)

sudo tee /etc/systemd/system/hermes.service << 'EOF'
[Unit]
Description=Hermes Agent Daemon
After=network.target

[Service]
Type=forking
PIDFile=/home/YOUR_USERNAME/.hermes/daemon.pid
User=YOUR_USERNAME
ExecStart=/usr/local/bin/hermes start
ExecStop=/usr/local/bin/hermes stop
Restart=on-failure
RestartSec=10
EnvironmentFile=/home/YOUR_USERNAME/.hermes/.env

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable hermes
sudo systemctl start hermes

Model Selection for Hermes

Hermes's memory compression means it can work with shorter context windows than you'd expect — the compression layer summarises old episodes before injecting them. But the model's reasoning quality matters more for long-horizon tasks than for quick Q&A. Choose based on task complexity:

ModelContextBest forApprox cost/month (typical Hermes use)
Claude Haiku 4.5200KSimple automation: reminders, summaries, light research$2–6
Claude Sonnet 4.6200KMost Hermes tasks — good reasoning at a reasonable price$8–20
Claude Opus 4.6200KComplex multi-week projects requiring deep reasoning$30–80
GPT-4.1128KGood alternative to Sonnet; slightly cheaper per token$7–18
Grok 4.3 (via SuperGrok OAuth)1MHuge single-context tasks — no API key needed if you have a SuperGrok subscriptionIncluded in SuperGrok plan
Gemini 1.5 Pro1MTasks requiring very large single-context windows (unusual)$5–15
Local Ollama (Qwen 2.5 14B+)32KLow-stakes background tasks where privacy matters more than quality$0 (electricity)

The recommended setup: use Sonnet as the default with Opus as an escalation for tasks Hermes explicitly flags as high-complexity. Configure this in the config:

{
  "model": {
    "primary":   "anthropic/claude-sonnet-4-6",
    "heavy":     "anthropic/claude-opus-4-6",
    "light":     "anthropic/claude-haiku-4-5",
    "autoEscalate": {
      "enabled":      true,
      "triggerTokens": 50000,  // escalate to heavy model when task exceeds this
      "triggerScore":  0.8     // or when complexity score exceeds this threshold
    }
  }
}

Step 4 — Your First Task

Give Hermes a task through the CLI:

# A simple immediate task
hermes run "Summarise the top 5 AI news stories from this week and save to workspace/weekly-brief.md"

# A scheduled task
hermes run --at "tomorrow 8am" "Check my GitHub notifications and send me a Telegram summary"

# A recurring task
hermes run --every "monday 9am" "Run a weekly project status check and update TASKS.md with blockers"

# A long-horizon task (Hermes breaks it into steps autonomously)
hermes run "Over the next week, research the current state of AI agent frameworks, compare them on 10 dimensions, and produce a 2000-word report. Check in with me at the halfway point."

Monitor task progress:

hermes tasks list
# ID       STATUS    SCHEDULED     DESCRIPTION
# t-001    running   now           Summarise AI news...
# t-002    queued    2026-04-07    Check GitHub notifications...
# t-003    queued    2026-04-13    Weekly status check (recurring)

hermes tasks log t-001   # see execution log for a task
hermes tasks cancel t-002  # cancel a queued task

Step 5 — Verify Memory Is Working

After your first task completes, Hermes automatically stores an episode in its memory database. Check it:

hermes memory status
# Episodes:    1
# Facts:       4
# Reflections: 1
# DB size:     128 KB

hermes memory search "AI news"
# [episode:001] 2026-04-06 — Summarised top 5 AI stories...
# [fact:003] Claude Opus 4.6 released April 2026 with 200K context

If memory shows 0 episodes after a completed task, your version is likely below v0.9.3. Upgrade immediately.

CLI Quick Reference

CommandWhat it does
hermes initFirst-time setup wizard
hermes startStart the background daemon
hermes stopStop the daemon gracefully
hermes statusShow daemon status, memory counts, task queue
hermes run "..."Submit a task for immediate or scheduled execution
hermes run --at "8am tomorrow" "..."Schedule a one-time task
hermes run --every "monday 9am" "..."Schedule a recurring task
hermes tasks listShow all tasks (queued, running, completed)
hermes tasks log <id>Show execution log for a task
hermes tasks cancel <id>Cancel a queued task
hermes memory statusShow memory store counts and size
hermes memory search "query"Search memory episodes and facts
hermes memory compactRun manual memory compression (usually automatic)
hermes logsStream daemon log live
hermes config get <key>Read a config value
hermes config set <key> <value>Update config and reload daemon
hermes proxyStart a local OpenAI-compatible proxy backed by your OAuth provider (Claude Pro, ChatGPT Pro, SuperGrok) — lets Codex, Aider, Cline hit your subscription without an API key
hermes updateUpdate Hermes to the latest version

← Back to Hermes hub · Next: Persistent Memory Architecture →

📬 Weekly Digest — In Your Inbox

One email a week: top news, releases, and our deepest new guide. No spam. Same content via RSS if you prefer.