Hermes vs. Claude Code
Claude Code is Anthropic's official agentic CLI, now spanning terminal, IDE plugin, desktop app, and browser. Strong for focused coding. Here's what's actually different.
Complementary, not competing. Claude Code excels at intensive coding sessions. Hermes is a persistent server agent with cross-session memory, self-hosted scheduling, and multi-surface reach. Hermes can spawn Claude Code as a sub-agent.
Deep dive
Hermes and Claude Code solve different problems, and the most interesting insight from this comparison is how well they work together. Understanding where each tool fits makes the decision straightforward.
Two different tools with an important relationship
Claude Code is Anthropic's official agentic coding tool. It started as a terminal CLI, and has since expanded to an IDE plugin (VS Code, JetBrains), a desktop app, and a browser-accessible interface. Its core design is session-oriented: you launch Claude Code, describe a coding task, and it works through the codebase, executes tests, and iterates — with impressive depth and context about your specific project. When the session ends, that context is largely gone (with some memory features emerging as of v2.1.59+).
Hermes is a persistent server agent — a daemon that runs continuously on your hardware, accumulating memory across all your projects and interactions over time. It handles cron-scheduled jobs, receives messages across 15+ platforms, and builds a growing skill library that represents how you specifically work. The two tools are complementary: Hermes manages orchestration, scheduling, and persistent context; Claude Code handles intensive coding sessions when called.
The clearest sign of this relationship is that Hermes can spawn Claude Code as a sub-agent. You can instruct Hermes to kick off a complex refactor, and it will delegate the heavy coding work to Claude Code, then fold the results and what it learned back into its own memory. This is the recommended pattern for users who work heavily with code.
/loop, ralph-wiggum, and scheduling explained
Claude Code ships with a native /loop command that enables session-scoped polling. It's built into the core product, requires no plugin, and works in any session type — terminal, IDE, desktop app. /loop lets the model iterate repeatedly toward a goal within a single session, checking its own output and continuing until a condition is met or it decides it's done. This is a genuinely useful feature for long coding tasks that need iterative refinement.
The ralph-wiggum plugin (/ralph-loop) is Anthropic's official goal-driven iteration plugin, installable from the Claude Code plugin marketplace. It extends the loop concept to goal-driven completion — you specify what "done" looks like, and ralph-wiggum keeps running until it reaches that state or hits a configured limit. It's more structured than the bare /loop and designed for longer, more complex tasks.
For scheduling, Claude Code offers two distinct modes: desktop app scheduled tasks run locally on your machine while the app is open, with a minimum interval of 1 minute. They're convenient for recurring coding tasks but stop when you close the app. Cloud scheduled tasks run on Anthropic's infrastructure 24/7 with a minimum interval of 1 hour — they work even when your laptop is shut, but your task data leaves your hardware and runs on Anthropic's servers. Neither mode is equivalent to a headless server daemon. Hermes cron runs on your own hardware, continuously, with no minimum interval restriction, no data leaving your environment, and no dependency on an open app or a cloud subscription.
Memory model differences
Claude Code's memory is file-based at the project level. CLAUDE.md and MEMORY.md files in your project directories store context that Claude Code reads at session start. As of version 2.1.59+, an auto-memory feature can create and update these files automatically during sessions. This is a meaningful improvement, but the fundamental model remains per-project: what Claude Code learns in one project does not automatically propagate to others. Each project starts from its own memory baseline.
Hermes uses a unified memory model that compounds across all projects over time. When you have Hermes help you solve a problem in one codebase, it may surface relevant context from a different project six months later — because both interactions are in the same memory store. Skills written from one experience are reusable in others. Over weeks and months, the behavioral profile Hermes builds of your preferences, patterns, and workflows becomes a significant accumulated asset that no per-project file can replicate.
Hermes memory is also stored as plain markdown files on your filesystem — directly readable, editable, and version-controllable. Claude Code's auto-generated memory files are also readable, but the scope remains per-project rather than spanning your entire workflow history.
The provider lock-in question
Claude Code supports Anthropic's API, AWS Bedrock, Google Vertex AI, and Anthropic Foundry. These are meaningful options for enterprise deployment, but they share one constraint: every inference uses a Claude model. If Claude pricing changes, if a competitor releases a model significantly better for a specific task, or if you simply want to use a local open-source model for cost or privacy reasons, you cannot do that within Claude Code. The tool is by design Claude-native.
Hermes is provider-agnostic. You configure which provider and model to use, and can change it at any time — or route different tasks to different providers. GPT-5.4 for one thing, Claude Opus 4.6 for another, a local Ollama model for private data. This flexibility is especially valuable when the model landscape is moving as fast as it currently is: you're not locked into today's best option when something better ships.
For most users evaluating these two tools for coding work, provider flexibility is a secondary concern — Claude is genuinely excellent at coding tasks, and Claude Code's tight integration is an advantage. But for users with strong privacy requirements, cost sensitivity, or a preference to hedge model risk, Hermes's open provider model is a concrete benefit.
Using them together
The most powerful configuration for heavy coding users is to run both. The workflow: Hermes serves as the always-on orchestrator — it receives your requests via messaging, manages your scheduled jobs, and maintains your accumulated context. When a task requires serious coding work, Hermes delegates to Claude Code as a sub-agent, passing in the relevant context and specifying the goal. Claude Code executes the coding session with its full depth of project understanding and tool use. When it completes, the results and any new context fold back into Hermes's memory store.
This architecture gives you the best of both: Claude Code's quality and depth on coding tasks, plus Hermes's persistence, cross-project memory, multi-platform messaging, and self-hosted scheduling. You're not choosing between a coding tool and an agent — you're combining them into a workflow that's more capable than either alone. See the Hermes documentation for the sub-agent configuration guide.
Full feature comparison
| Feature | Claude Code | Hermes |
|---|---|---|
| Memory model | Per-project (CLAUDE.md / MEMORY.md; auto-memory v2.1.59+) | Cross-project, unified, compounds over time |
| Self-improving skills | No | Yes, automatic |
| /loop (session polling) | Yes, native built-in | N/A — persistent daemon, not session-based |
| Scheduled jobs (self-hosted) | No — desktop app (app must be open) or cloud (1 hr min, data leaves hardware) | Yes, headless cron on your hardware |
| Messaging (production) | Preview — Telegram, Discord, iMessage only | Yes, 15+ platforms including Slack |
| Provider-agnostic | No — Anthropic, Bedrock, Vertex, Foundry only | Yes, any LLM provider |
| Open source | No (minified TypeScript) | Yes, MIT |
| Hooks system | Yes, 26-event system for deterministic control | N/A |
| Plugin marketplace | Yes, installable (incl. ralph-wiggum) | N/A — skills are auto-written |
| Web UI | Yes (desktop app + browser) | Yes, self-hosted |
| Desktop app scheduled tasks | Yes (1 min min, app must be open) | N/A — daemon runs headless |
| Memory inspectability | Partial — CLAUDE.md files, per-project | Yes, plain markdown files, full history |
| Runs as Hermes sub-agent | Yes — recommended for heavy coding tasks | N/A (is the orchestrator) |
Who should choose what
- Cross-project persistent memory is important — context that builds across all your work over time
- Self-hosted cron without an open app — headless scheduled jobs that run even when your laptop is off
- Production messaging today — Slack, Telegram, WhatsApp, and 12+ others in production, not preview
- Provider flexibility — you want to swap models without switching tools
- Open source, MIT licensed — you need to inspect, modify, or self-host the full codebase
- Intensive coding sessions are your primary use case — Claude Code's IDE integration and depth are best-in-class
- 26-event hooks for deterministic, auditable control over every step of the agent loop
- Plugin marketplace — immediate access to ralph-wiggum and other installable extensions
- Claude model quality — you specifically want to use Claude and Anthropic's tooling ecosystem
- Use both: run Hermes as orchestrator and persistent memory layer, Claude Code as the coding sub-agent for heavy tasks
Try Hermes alongside Claude Code
Self-hosted, open source, and designed to work with the tools you already use. Get Hermes running in minutes.