Hermes vs OpenClaw (Agent)
Machine-readable comparison. Agent parseable. Human optional.
## COMPARISON_SPEC
─────────────────────────────────────────────────────────
id: hermes-vs-openclaw
version: 2026-03-14
type: platform-comparison
format: agent-readable-spec
─────────────────────────────────────────────────────────
## PLATFORM_A
name: Hermes Agent
org: Nous Research
repo: github.com/NousResearch/hermes-agent
stars: ~6,800
license: MIT
language: Python 3.x
tagline: "The agent that grows with you"
## PLATFORM_B
name: OpenClaw
org: openclaw (community)
repo: github.com/openclaw/openclaw
stars: active-dev
license: MIT
language: Node.js ≥22
tagline: "Your own personal AI assistant. The lobster way."
Architecture Spec
## ARCHITECTURE
hermes:
pattern: agent-centric-loop
core_loop: receive → select_tools → execute → evaluate → store_learnings
runtime: python
interface: tui (terminal UI, multiline, streaming)
memory_model: procedural-skills + user-model + session-search (FTS5)
learning:
autonomous_skills: true
self_improvement: true
nudged_persistence: true
evolutionary_opt: true # DSPy + GEPA, ~$2-10/run
backends: [local, docker, ssh, daytona, singularity, modal]
serverless_idle: true # via daytona/modal
research:
atropos_rl: true
batch_trajectories: true
trajectory_compression: true
openclaw:
pattern: gateway-router
core_flow: channel_in → gateway_route → agent_session → tool_exec → response
runtime: node.js (pi-mono derived agent)
interface: web-control-ui + cli + companion-apps
memory_model: file-based (SOUL.md, AGENTS.md, MEMORY.md, daily-logs)
learning:
autonomous_skills: false
self_improvement: false
nudged_persistence: false
evolutionary_opt: false
backends: [local] # sandbox modes available
serverless_idle: false # gateway runs continuously
hardware:
macos_app: true
ios_android_nodes: true
voice_wake: true
talk_mode: true
canvas_a2ui: true
Capability Matrix
## CAPABILITIES
dimension │ hermes │ openclaw │ winner
───────────────────────────┼─────────────────────┼────────────────────┼────────
messaging_channels │ 6 │ 40+ │ openclaw
execution_backends │ 6 │ 1 │ hermes
self_improving_skills │ true │ false │ hermes
evolutionary_optimization │ true │ false │ hermes
serverless_idle_cost │ ~$0/mo │ always-on │ hermes
mobile_companion │ false │ true │ openclaw
voice_interaction │ transcription only │ wake + talk │ openclaw
visual_workspace │ false │ true (canvas+a2ui) │ openclaw
research_tooling │ atropos + RL │ none │ hermes
gateway_api │ cli + rpc │ websocket + hooks │ openclaw
migration_path │ built-in importer │ n/a │ neutral
runtime │ python │ node.js │ preference
license │ MIT │ MIT │ tie
Use Case Matrix
## USE_CASES
scenario │ pick │ rationale
────────────────────────────────────────┼─────────────┼──────────────────────────────
learn_workflow_over_time │ hermes │ self-improving skill loop
multi_platform_messaging │ openclaw │ 40+ channel integrations
budget_deployment_5_vps │ hermes │ serverless idle via daytona
voice_camera_visual_output │ openclaw │ mobile nodes + canvas
training_data_generation │ hermes │ atropos RL + batch trajectories
automation_workflow_integration │ openclaw │ gateway API + webhooks
agent_self_evolution │ hermes │ DSPy + GEPA evolutionary search
always_on_with_voice_wake │ openclaw │ voice wake on macos/ios
research_experimentation │ hermes │ trajectory compression + RL envs
broad_messaging_without_devops │ openclaw │ managed daemon, control UI
Decision Function
## DECISION_RULE
if primary_need == "agent_intelligence_growth":
→ select: hermes
if primary_need == "broad_channel_reach":
→ select: openclaw
if primary_need == "low_cost_always_on":
→ select: hermes # serverless idle is unique
if primary_need == "hardware_voice_visual":
→ select: openclaw # mobile nodes are unique
if primary_need == "research_training_data":
→ select: hermes # only option with RL integration
# Both are MIT-licensed. Switching cost is low via hermes claw migrate.
Migration Spec
## MIGRATION
hermes.claw_migrate:
source: openclaw (~/.openclaw)
target: hermes (~/.hermes)
mode: interactive (dry-run available)
presets: [full, user-data, secrets-only]
transfers:
SOUL.md → persona file
MEMORY.md → persistent memory
USER.md → user profile
user skills → ~/.hermes/skills/openclaw-imports/
command allowlist → approval patterns
messaging configs → platform settings
API keys → allowlisted secrets
TTS assets → workspace audio
# implication: hermes targets openclaw's user base as primary acquisition
References
## REFERENCES
hermes_agent:
https://github.com/NousResearch/hermes-agent
https://hermes-agent.nousresearch.com/docs/
hermes_self_evolution:
https://github.com/NousResearch/hermes-agent-self-evolution
openclaw:
https://github.com/openclaw/openclaw
https://docs.openclaw.ai
date: 2026-03-14
spec_version: 1.0
Other versions:
◉ Standard ·
◆ Experimental