Hermes Agent vs Claude Code: A Colleague With a Shell vs a Tool in Your Repo
Hermes Agent and Claude Code both get called an agent, so people search them against each other. They are not competing for the same job: one runs on a server and keeps working after you stop, the other lives in your repo while you watch.
People search “Hermes Agent vs Claude Code” expecting a winner. There is not one. Claude Code is where I build, inside a repo, while I watch every edit land. Hermes is a developer’s assistant that keeps working after I close the laptop: it reads the company’s channels through MCP, writes me a briefing, and answers me on Telegram. Comparing them on features is comparing a company car to a company.
Hermes Agent vs Claude Code: two different jobs wearing the same word
Hermes Agent is a self-hosted runtime you leave running: on a VPS, through a messaging gateway, answering when something happens whether or not you are at a keyboard. Claude Code is Anthropic’s coding agent: a terminal, an IDE extension, a desktop app, or the web, all pointed at your repo, doing work you are watching unfold in real time. Anthropic’s own description of what you can do with it is build features, fix bugs, write tests, resolve merge conflicts, and open pull requests, each one a task with a clear start and a clear end.
Hermes has no equivalent start and end. It has a cron schedule, a memory file, and a Telegram bot. I run it on my own VPS, a Docker Swarm set up by bento, with the Telegram gateway on. That instance is my personal assistant. It is not where I write code, and it was never meant to be.
The confusion is understandable. Both tools act through a shell. Both read files, call tools, and produce diffs if you ask them to. The difference is what triggers the work and who is watching when it runs. Claude Code’s session starts because you typed claude or opened a tab. Hermes’ day starts because a cron fired at an hour you were asleep.
What a developer actually asks Hermes to do
The job list matters more than any architecture diagram, so here is mine, not a hypothetical.
What my Hermes does that a coding agent never gets asked to do
- Required:Write me a daily briefingA cron job on Hermes reads my day job's MCP servers for Slack, Google Workspace, Git and Confluence/Jira, and writes me a newsletter of what happened, organized by the six senses: self, them, trend, frontier, community, client.
- Required:Be the thing I talk to on my phoneA separate Hermes with the Telegram gateway on is my personal assistant. I talk to it by voice. It has the Paperclip board wired in as an MCP server, so saying a task into Telegram opens an issue on the board without me touching a keyboard.
- Required:Run research and content tasks on a scheduleThe agents in my Paperclip org run on Hermes and read real data through their own MCP servers between heartbeats, not inside a session I am driving.
- Required:Hold memory across weeks, not one sessionMEMORY.md and USER.md under HERMES_HOME persist across every wake. A coding session ends when the task does; Hermes' day does not.
None of this competes with what I use Claude Code, OpenCode and pi for. My daily driver for writing code is not Hermes. It is Claude Code, OpenCode with its idea, plan, build, review, fix profiles, and pi for the loop I want to see in full. I built the skills for that harness first. The autonomous side, Hermes and the Paperclip org on top of it, came later, for the tasks that should not need me present.
Hermes Agent vs OpenCode: not a rematch, a different weight class
Hermes Agent vs OpenCode shows up in search because OpenCode is the other open-source agent in the room, and people assume open-source plus “agent” means comparable. OpenCode is a coding harness: it drives edits in your repo through modes, idea, plan, build, review, fix, each with its own model and permissions. Hermes has no repo-mode concept at all. It has a working directory, a memory file, and a gateway list.
Run the same prompt through both and the gap is obvious fast. OpenCode’s build mode will open your files, write the diff, and wait for the next instruction, because that is the whole contract: a session, driven by you, over your code. Hermes’ default posture is closer to “wake up, check what changed, decide if anything needs doing,” because its contract is a schedule and a memory file, not a terminal you are sitting in front of.
The honest comparison is not which one writes better code. It is which one should be running when you are not there. OpenCode has no answer to that question, because it was never asked to have one. Hermes does: a cron scheduler for jobs that fire on a timer, a background review every ten turns that decides what is worth saving to memory, and more than 25 messaging gateways so the answer reaches you wherever you are. Each cron run starts as a fresh session with no memory of the run before it; continuity comes from explicitly chaining one job’s output into the next, not from the agent remembering on its own.
Hermes Agent vs Claude Code, by design
| Dimension | Hermes Agent | Claude Code |
|---|---|---|
| Design center | Runs on a server, without you watching | Runs in your repo, while you watch |
| What starts a run | A cron schedule, or a message arriving | You, typing claude or opening a session |
| Surfaces | CLI, desktop, web dashboard, API, 25+ messaging platforms | Terminal, VS Code, JetBrains, desktop app, web, Slack |
| Memory | MEMORY.md, USER.md, full-text search across every session | CLAUDE.md read every session, plus auto memory |
| Project context file | .hermes.md, then AGENTS.md, then CLAUDE.md, then .cursorrules | CLAUDE.md, and AGENTS.md read on its own or alongside it |
| Can it write code? | Yes, across 7 execution backends. Not its design center. | Yes. This is exactly what it is for. |
Where they actually connect
They are not strangers. Three seams let the two worlds talk, and all three are worth wiring if you run both.
ACP bridges Hermes into an editor. Hermes speaks the Agent Client Protocol, which lets ACP-compatible hosts such as Zed talk to it over stdio and render its chat, diffs, and terminal activity inside the editor’s own UI. You keep Hermes’ identity, memory, skills and provider setup; the editor just owns the conversation surface.
hermes mcp serve runs Hermes as an MCP server in the other direction. It exposes ten tools, listing conversations, reading message history, sending a message, polling live events, and managing approvals, over stdio, so Claude Code, Cursor or Codex can read what Hermes has been doing without you switching windows.
Register Hermes as an MCP server in Claude Code
Add it
claude mcp add hermes -- hermes mcp serveConfirm it connected
claude mcp get hermes
Pull Hermes' memory into a coding session
- 01
Ask Claude Code to read the conversation instead of retyping it.
The assistant already has the context: what you asked Hermes on Telegram, what it found, what it decided. Retyping it loses detail and wastes the one thing a coding session should spend on the actual code.
Type this
Use the hermes MCP server to read my last conversation about the billing export, then pick up the fix from there.
Both read the same project files. Claude Code reads CLAUDE.md at the start of every session and can read a repo’s AGENTS.md on its own or alongside it. Hermes walks a longer chain, .hermes.md or HERMES.md first, then AGENTS.md from the git root down, then CLAUDE.md, then .cursorrules, and loads only the first one it finds. Write your instructions once in AGENTS.md and both tools pick them up without translation.
Skills travel as plain markdown on both sides. Claude Code’s skills and Hermes’ SKILL.md folders are the same shape: a frontmatter header, a body, progressive disclosure of anything heavier. I wrote up the shape of that file in skill-md-structure-frontmatter, and the portability is not theoretical. A markdown skill I wrote for one runtime has worked, unmodified, in another.
Can Hermes write code? Yes. Should it be your coding agent? No.
Hermes is not shy about execution. It can run commands in seven backends: local, Docker, SSH, Singularity, Modal, Daytona or Vercel Sandbox, and it can have the model write a Python script that calls its tools over RPC instead of making one call at a time, with the output capped and the overflow spilled to disk. The default backend is local: commands run on the same host as the agent itself, not inside an isolated sandbox, unless you point a specific task at one of the other six. That is a real engineering investment in making code execution cheap and disposable, and it is also why giving Hermes its own machine or its own container matters more than the backend list makes it sound.
None of it is aimed at the loop Claude Code is built around: a repo open in front of you, a diff you review line by line, a commit you write together, a pull request Claude Code opens for you with GitHub Actions or GitLab CI/CD wired in on the other end. Claude Code’s surfaces, like the inline diffs in its IDE extensions, exist because the product assumes you are present and deciding. Hermes’ surfaces, a Telegram message, a dashboard you check once a day, exist because the product assumes you are not.
Hermes can write code. I would not hand it a feature branch. The gap is not capability. It is that nobody tuned Hermes’ defaults, its approval prompts, its context loading, its review loop, for the rhythm of a human sitting there watching every tool call. Claude Code’s defaults are tuned for exactly that, because that is the only thing it was built to do.
OpenClaw vs Claude Code: the same mismatch, a different runtime
The same confusion happens one level over, with OpenClaw vs Claude Code. OpenClaw is a personal-assistant runtime too, not a coding agent: native apps on your phone and laptop, a wake word, a heartbeat that checks in on its own every thirty minutes by default. It competes with Hermes, not with Claude Code, for exactly the same reason Hermes does not compete with Claude Code. Presence and schedule are the job; a repo you are watching is a different job.
I picked Hermes over OpenClaw for my own fleet after reading both codebases, and the reasoning is in Hermes Agent vs OpenClaw. None of that reasoning touches Claude Code, because the OpenClaw-vs-Hermes decision and the coding-agent decision are orthogonal. You can run OpenClaw as your assistant and Claude Code as your coding agent with zero conflict, the same way I run Hermes and Claude Code side by side.
Which one for which job
Reach for Claude Code, OpenCode or pi
- 01You are opening a repo and want to watch the diff land
- 02The task has a clear start and a clear end
- 03You want IDE-native review: inline diffs, plan mode, PR creation
- 04You want the harness tuned for someone sitting there deciding
Reach for Hermes Agent
- 01The work should happen on a schedule, not a session
- 02You want an answer on Telegram, not a diff in an editor
- 03The job is reading sensors through MCP and reporting back
- 04You will not be at the keyboard when it runs
My own split is exactly this table. Claude Code, OpenCode and pi are where I build. Hermes writes my briefing, runs on Telegram as my assistant, and does the research and content work that reads real data through MCP between heartbeats. Harness engineering is the frame underneath both halves: the model is a commodity either way, and the harness is the part that decides whether the agent fits the job you actually have.
Hermes Agent vs Claude Code, quick answers
Is Hermes Agent a replacement for Claude Code?
No. Hermes is a self-hosted runtime built to run on a server without you watching: scheduled briefings, a messaging assistant, research tasks. Claude Code is a coding agent built for a repo you are actively working in. They solve different problems and most people who run one eventually run both.
Can Hermes Agent write code like Claude Code?
Hermes can execute commands across seven backends and have the model script its own tool calls, so yes, it can write and run code. It was not tuned for the rhythm of a developer reviewing every diff in real time the way Claude Code was, and its defaults reflect that.
What is the real difference between Hermes Agent and OpenCode?
OpenCode is a coding harness with modes for exploring, planning, building, reviewing and fixing, driven from a terminal session you start. Hermes has no equivalent repo-mode concept. It runs on a cron schedule and a messaging gateway, and its job is the work that happens between your sessions, not inside one.
Does OpenClaw replace Claude Code?
No, for the same reason Hermes does not. OpenClaw is a personal-assistant runtime with native apps and a heartbeat that checks in on its own. It competes with Hermes for the assistant job, not with Claude Code for the coding-agent job.
Can Claude Code and Hermes Agent work together?
Yes. Hermes speaks ACP so editors such as Zed can host its conversation, and hermes mcp serve exposes Hermes' conversations as MCP tools that Claude Code, Cursor or Codex can call directly. Both also read AGENTS.md, so one instructions file covers both tools.
The newsletter
Don’t Code, Specify. A weekly dispatch from where AI agents meet real production. No hype, just what shipped and what broke.
Subscribe on Substack (opens in a new tab)