What actually differs between the three hosts?
Most comparisons of these three start in the wrong place. The feature lists look nearly identical, because all three are agent harnesses with tools, skills, and a loop. The differences that decide anything show up in the first week of real use: how the thing installs, where it keeps what it learned, what it does before it touches something irreversible, and which bill arrives at the end of the month.
| Dimension | Hermes | OpenClaw | Claude Code |
|---|---|---|---|
| Install | One shell script; it provisions the runtimes | Official installer or a global npm package | Installer, Homebrew, WinGet, apt, dnf, apk, npm |
| Skill format | SKILL.md with a hermes metadata block | SKILL.md with an openclaw gating block | SKILL.md with optional invocation fields |
| Memory | Built-in store, searchable from the CLI | Plain Markdown: MEMORY.md, daily logs, USER.md | CLAUDE.md you write, auto memory it writes |
| Approval model | Prompts, then mined into allowlist proposals | Five exec modes plus revocable standing grants | Per-tool prompts, rules in a settings file |
| Cost | Open source; you pay the provider you route to | Open source; you pay the model key you bring | Needs a paid Claude plan or API billing |
| Platforms | macOS, Linux, WSL2; native Windows in beta | macOS, Linux, WSL2; native Windows unconfirmed | macOS, Windows, Ubuntu, Debian, Alpine |
| Best for | Recurring operations and scheduled jobs | An assistant in the channels you already use | Repository work with edits and tests |
Read that table by row, not by column. Nobody switches hosts because one has nicer frontmatter. Teams switch because the memory ended up somewhere they could not audit, or because an agent sent something before a human approved it.
The install paths, side by side
Install is where evaluations quietly go wrong. One host provisions its own runtime, one wants a specific Node version, and one ships a signed binary through half a dozen package managers. Run all three on the same machine within the same hour, or your notes end up comparing a clean laptop against a year of accumulated toolchain.
# Hermes (macOS, Linux, WSL2)
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
# OpenClaw (Node 22.22.3+, 24.15+, or 25.9+)
npm install -g openclaw@latest --allow-scripts=openclaw
# Claude Code (macOS, Linux, WSL)
curl -fsSL https://claude.ai/install.sh | bash
# Claude Code (Windows PowerShell)
irm https://claude.ai/install.ps1 | iex- Time each install, then repeat it on a second machine
- Write down every prompt that asked for a key or a login
- Print the version string before you file a bug against anything
Where do skills and memory live?
~/.hermes/skills/<name>/SKILL.md Hermes, one root for everything
<workspace>/skills/<name>/SKILL.md OpenClaw, this agent only
~/.openclaw/skills/<name>/SKILL.md OpenClaw, installed with --global
~/.claude/skills/<name>/SKILL.md Claude Code, all your projects
.claude/skills/<name>/SKILL.md Claude Code, this repository onlySkills are the easy half. Every host reads a directory of folders, each holding a SKILL.md with YAML frontmatter, and each adds its own optional keys on top of the shared standard. Memory is the half that decides whether you can audit the agent six months later. Hermes keeps a built-in store you can search from the terminal. OpenClaw keeps plain Markdown: a curated MEMORY.md, dated daily logs, and a user profile file. Claude Code splits the job between the CLAUDE.md files you write and an auto memory directory it maintains for itself, which you can open and edit.
Approvals: the row that decides your risk
This is the row to read twice. OpenClaw exposes five exec modes, from deny through allowlist, ask, auto, and full, and keeps standing grants you can list and revoke. Claude Code prompts per tool call, keeps allow, ask, and deny rules in a settings file, and offers a plan mode that reads without writing. Hermes prompts, then lets you mine the approval history into allowlist proposals, which is the right shape once the same three commands keep coming back.
- Anything that can send mail or publish to a public channel
- Anything that can spend money or touch a payment method
- Anything that can delete files, records, or history
- Anything that can deploy code or rotate a credential
Which host should you run?
Match the host to where the work already lives. If the deliverable is a commit, run Claude Code, because the whole loop is built around reading a repository, editing files, and running tests. If the deliverable is a reply, a scheduled report, or a record in somebody else's system, run Hermes or OpenClaw, because both keep a durable identity and a scheduler that lives outside any one project folder.
- Repository work and code review: Claude Code
- Recurring operations on a schedule: Hermes
- An assistant reachable from your chat channels: OpenClaw
Run one acceptance test before you commit
Do not pick from a table, including this one. Write one harmless fixture task, something like turning a meeting transcript into a summary saved under a named file, and run it on all three with the same skill installed. Compare four things: how long setup took, whether the approval prompt was legible, whether the output held the same shape twice in a row, and how easily you could stop the run halfway through.
hermes skills list # what Hermes will load this session
openclaw approvals get # the effective exec policy
claude doctor # install health and settings errorsCan the same SKILL.md run on all three hosts?
Mostly. All three read a folder with a SKILL.md and YAML frontmatter, so the body of a well written skill transfers. The frontmatter does not: Hermes reads a hermes metadata block, OpenClaw reads an openclaw block that can gate on binaries and environment variables, and Claude Code adds invocation fields of its own. Install it on each host and run the same task before you promise a client it works there.
Which host is safest for a team that is not technical?
The one whose approval prompt your people will actually read. Claude Code asks per tool call and keeps the rules in a settings file. OpenClaw has five exec modes and standing grants you can list and revoke. Hermes prompts, then turns that history into allowlist proposals. Pick one, leave it on the asking mode for the first month, and review what got approved.
Do we have to standardize on just one?
No, and most shops do not. The common split is Claude Code inside repositories and Hermes or OpenClaw for the recurring operations work that lives outside a codebase. Running two costs you context switching and a second approval policy to maintain, so keep the skill bodies identical across them and let only the frontmatter differ.
Set the host up once, correctly
Agent Ready is the free starter pack: one workspace, one approval policy, and three first workflows you can run this week.
Agent Ready / Free beta