Lesson 2 of 6
Installing Hermes Locally
Estimated time: 10 minutes
Installing Hermes Locally
This lesson walks through a clean Hermes install on macOS or Linux. You'll install uv, clone the repo, run the setup wizard, pick an LLM provider, and verify the runtime with a one-shot task.
If you already have ~/.openclaw on disk, the setup wizard will detect it and offer a one-click migration. We'll cover that path at the end of the lesson.
Prerequisites
- Python 3.11+ (Hermes is 93%+ Python)
uvfor dependency management — the recommended installer- An LLM provider: Nous Portal, OpenRouter (200+ models), Anthropic, OpenAI, or a local runtime like Ollama / vLLM
- ~500 MB disk space for the runtime and initial memory indexes
Step 1 — Install uv
uv is the fast, reproducible Python package manager Hermes depends on. One line:
curl -LsSf https://astral.sh/uv/install.sh | sh
Verify:
uv --version
Step 2 — Clone and Install Hermes
git clone https://github.com/nousresearch/hermes-agent.git
cd hermes-agent
uv sync
uv sync reads the lockfile and installs an isolated, deterministic environment. It takes around 60-90 seconds on a clean machine.
Step 3 — Run the Setup Wizard
uv run hermes setup
The wizard asks three questions:
- Where should Hermes store its home directory? Default
~/.hermes/— keep it. - Which LLM provider do you want to use? The wizard lists:
- Nous Portal (recommended for getting started)
- OpenRouter (access to 200+ models via a single API key)
- Anthropic (Claude Opus / Sonnet / Haiku)
- OpenAI (GPT-5 family)
- Ollama (local, zero variable cost)
- vLLM / custom endpoint
- Do you want to enable Docker sandboxing by default? Choose yes if Docker Desktop is running. This is the safest default.
After the wizard, ~/.hermes/ contains:
~/.hermes/
├── config.toml # provider, sandbox, keybindings
├── MEMORY.md # long-term facts (starts empty)
├── USER.md # user profile (starts empty)
├── sessions.db # FTS5 session store
└── skills/ # your self-authored + installed skills
Step 4 — Set Your API Key
If you picked a cloud provider, Hermes prompts for the key. Paste it once — it's saved to ~/.hermes/config.toml with mode 0600 (owner-read-only).
To check:
ls -la ~/.hermes/config.toml
# -rw------- 1 you staff ... config.toml
Never commit ~/.hermes/config.toml to git. It contains your provider API keys in plaintext.
Step 5 — Verify the Install
Run a one-shot task without entering the TUI:
uv run hermes run "print hello from hermes and exit"
You should see streaming output ending with hello from hermes. If this works, your provider is configured, sandbox mode is happy, and Hermes can round-trip to the model.
Then check the doctor:
uv run hermes doctor
This validates:
- Python +
uvversions ~/.hermes/permissions- Provider connectivity
- Docker (if sandbox is enabled)
- Writable skills and memory directories
Any red check needs to be fixed before moving on.
Migrating From OpenClaw
If you already run OpenClaw, the setup wizard detects ~/.openclaw/ and offers:
uv run hermes claw migrate
This command:
- Copies your OpenClaw skill directories into
~/.hermes/skills/ - Translates the skill manifest to the agentskills.io spec
- Imports your local SQLite RAG index into the Hermes FTS5 session store (as a one-time bulk summarization)
- Leaves your original
~/.openclaw/untouched — the migration is additive
Run hermes doctor again after migration to confirm the imported skills pass validation.
Common Install Problems
| Symptom | Cause | Fix |
|---|---|---|
uv: command not found after install | Shell didn't pick up PATH | Restart shell or source ~/.zshrc |
hermes doctor fails on sandbox | Docker Desktop not running | Start Docker or disable sandbox in config.toml |
| Provider returns 401 | Bad / rotated API key | Re-run hermes setup and re-enter the key |
sessions.db permission errors | ~/.hermes/ owned by root | sudo chown -R $(whoami) ~/.hermes |
What's Next
You now have a working Hermes runtime. The next lesson walks you through your first full interactive session in the Terminal UI — multiline editing, slash commands, interrupt-and-redirect, and how to watch streaming tool output.
Complete Hermes Install: uv, setup wizard, and migration from OpenClaw
# Installing Hermes Agent — Practical Guide Hermes is a Python-based AI agent runtime that uses `uv` for dependency management and stores everything in `~/.hermes/`. Here's the complete install flow....