Updated
Correction, 2026-08-15. The comparison table below carries this article's argument, and its Claude Code column no longer holds. It was accurate on 2026-07-15, when this published. Claude Code has since gained an on-demand Skill system: a large catalog reaches the model as one-line descriptions, and a skill's body loads through a tool call only when a task matches it. That is the same progressive-disclosure shape the article credits to Hermes alone. It has also gained a full lifecycle hook surface, so "Limited" is no longer a fair reading. Two downstream claims fall with those cells. The "~60% context reduction" figure and the chart under it measure on-demand loading against a CLAUDE.md that loads every session, and Claude Code does not work that way now. The Tip calling the skill system "the biggest paradigm shift" coming from Claude Code no longer describes the move either. The rest of the article holds. delegate_task and subagent composition are still accurate, and the multi-provider argument is untouched by any of this. Hermes did not get worse. Claude Code caught up.
How it compares to Claude Code
I have been running Hermes Agent (by Nous Research) alongside Claude Code for several months. Here is what I learned about its strengths, trade-offs, and why it became my primary agent for project work.
Claude Code is excellent at raw coding — fast completions, solid reasoning, tight Anthropic model integration. Hermes is built differently: it is designed as a customizable agent platform rather than a coding-first tool.
| Aspect | Claude Code | Hermes Agent |
|---|---|---|
| Focus | Raw coding speed | Customizable agent workflows |
| Models | Anthropic only | Any OpenAI-compatible provider |
| Hook system | Limited | Full lifecycle hooks |
| Skill system | CLAUDE.md (every session) | YAML frontmatter (on-demand) |
| Context efficiency | Loads everything each session | Loads only relevant skills |
| IDE integration | Tight (VS Code, Cursor) | CLI-first |
The hook system in detail
This is where Hermes pulls ahead. Claude Code has limited hook points for customizing agent behavior. Hermes exposes hooks at every stage of the agent lifecycle:
- Update prompts dynamically: A
user_prompt_hookcan inject project-specific context before each user message. - Run scripts on events:
session_start_hook,stop_hook,drift_notice_hook— each fires at a specific lifecycle point. - Compose agent workflows: The
delegate_tasktool lets you spawn subagents with isolated context, each inheriting your hooks and skills.
# Inject project context before each user message
user_prompt_hook:
script: inject-project-context.sh
# Auto-setup on session start
session_start_hook:
script: setup-dev-env.shToken-friendly skill design
Hermes skills follow a specific structure optimized for token efficiency:
- YAML frontmatter with name, description, and trigger conditions — the agent reads this to decide if the skill is relevant before loading the full body.
- Markdown body with numbered steps, exact commands, pitfalls, and verification steps — no verbose prose, no padding.
- Linked files (references, templates, scripts) load on demand, not upfront.
---
name: tdd-workflow
description: Enforce test-driven development cycle
triggers:
- "implement a feature"
- "fix a bug"
---
# TDD Workflow
## RED — Write a failing test
1. Write the smallest failing test
2. Run: `npm test` — confirm it fails
## GREEN — Make it pass
3. Write the minimum code to make it pass
4. Run: `npm test` — confirm it passes
## REFACTOR
5. Clean up without changing behavior
6. Run: `npm test` — confirm it still passesHermes Agent Documentation — the skill authoring guide is worth reading.
Integration with ai-badger
ai-badger and Hermes were developed in tandem. The .ai-badger/config.json structure maps directly to Hermes concepts: persona routing becomes skill dispatch, invariants become always-loaded context, and task orchestration uses delegate_task for parallel subagents.
The result: you write project knowledge once in ai-badger format, and Hermes executes it natively. No translation layer, no config duplication.
When to use which
| Scenario | Best fit | Why |
|---|---|---|
| Fast one-shot coding | Claude Code | Anthropic model quality, tight IDE integration |
| Customizable workflows | Hermes | Hook system, skill composition |
| Multi-provider flexibility | Hermes | Any OpenAI-compatible provider |
| Project knowledge management | Hermes | Skills, invariants, persona routing |
| Architecture decisions | Claude Code | Opus/Fable for complex reasoning |
| Cost optimization | Hermes | Route cheap models for implementation |
I use both — but Hermes handles the complex, multi-step project work where context management and agent customization matter more than raw completion speed.
Pitfalls
- No IDE integration equivalent to Claude Code VS Code extension
- Terminal rendering bugs in some environments
- Requires more initial setup than Claude Code — the payoff comes at scale
- Anthropic model lock-in is a feature if you want the best models
Hermes loads only relevant skills, reducing context overhead by ~60%.