Hermes Overview
Hermes is an alternate agent runtime for Intern. By default an Intern runs OpenClaw (Node.js gateway, plugin-based skills); switching to Hermes replaces that runtime with Hermes Agent (Python-based, persona-driven, MCP-style tooling). One runtime is active at a time — they don't run side by side.
The choice is persisted as active_agent in /root/config/config.json ("openclaw" or "hermes"). You can swap back and forth without re-pairing the device.
Where it runs
┌─ Intern device ──────────────────────────────────┐
│ │
│ intern-server │
│ └─ persists active_agent in config.json │
│ └─ syncs model list every 30 min │
│ │
│ One of (never both): │
│ ┌───────────────────────┐ ┌────────────────┐ │
│ │ openclaw.service │ │ hermes-gateway │ │
│ │ Node + plugins │ ↔ │ Python + uv │ │
│ │ ~/.openclaw/ │ │ ~/.hermes/ │ │
│ └───────────────────────┘ └────────────────┘ │
└───────────────────────────────────────────────────┘
What stays the same
The setup payload, channels, and LLM provider all come from config.json. Pairing, Wi-Fi, and the captive-portal flow don't change.
| Concern | Same as OpenClaw? |
|---|---|
| Pairing (AP mode, captive portal) | yes |
config.json schema (LLM key, channel tokens) | yes |
| Telegram / Slack / Discord channel adapters | yes |
| Supermemory allocation | no — Supermemory is an OpenClaw plugin and is not wired into Hermes |
| WhatsApp adapter | no — not supported on Hermes; setup endpoint rejects WhatsApp creds when active_agent=hermes |
| OTA + bootstrap | yes — both managed by bootstrap-server |
What's different
| Aspect | OpenClaw | Hermes |
|---|---|---|
| Language | Node.js | Python (uv-managed) |
| Active systemd unit | openclaw.service | hermes-gateway.service |
| Config file | /root/.openclaw/openclaw.json (JSON) | /root/.hermes/config.yaml (YAML) |
| Channel creds | embedded in openclaw.json plugin entries | /root/.hermes/.env (env vars) |
| Persona / system prompt | AGENTS.md | SOUL.md |
| Skill loading | ~/.openclaw/skills/ registry | ~/.hermes/skills/ directory |
| supported | not supported | |
| Install size | already on the image | ~5–10 min one-time install (or pre-installed in golden image) |
When you should switch
You probably want Hermes if any of:
- You want the MCP-native tooling Hermes ships with (browser automation, ffmpeg, headless chromium).
- You're testing a persona-driven (
SOUL.md) agent style instead of OpenClaw's plugin-based skills. - The Autonomous web console explicitly asks you to enroll in the Hermes program.
You probably want to stay on OpenClaw if any of:
- You rely on WhatsApp as a channel.
- You depend on Supermemory or other OpenClaw plugins.
- You want the lowest-latency cold start — OpenClaw stays in memory; Hermes has Python + node bootstrap on first run.
Where to go next
- Manual Install over SSH — SSH into a Dev-Edition Intern and run the install steps
intern-serverruns internally: install the binary, register the gateway unit, writeconfig.yaml+.env, start the gateway, persistactive_agent. - Configuration — files on disk (
config.yaml,.env,SOUL.md,skills/), the live-model sync, how to edit them safely, and how to switch back to OpenClaw.
Prerequisite: the SSH walkthrough assumes you already have shell access to the device. If you don't, see Developer Edition → SSH Access first.