Skip to main content

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.

ConcernSame as OpenClaw?
Pairing (AP mode, captive portal)yes
config.json schema (LLM key, channel tokens)yes
Telegram / Slack / Discord channel adaptersyes
Supermemory allocationno — Supermemory is an OpenClaw plugin and is not wired into Hermes
WhatsApp adapterno — not supported on Hermes; setup endpoint rejects WhatsApp creds when active_agent=hermes
OTA + bootstrapyes — both managed by bootstrap-server

What's different

AspectOpenClawHermes
LanguageNode.jsPython (uv-managed)
Active systemd unitopenclaw.servicehermes-gateway.service
Config file/root/.openclaw/openclaw.json (JSON)/root/.hermes/config.yaml (YAML)
Channel credsembedded in openclaw.json plugin entries/root/.hermes/.env (env vars)
Persona / system promptAGENTS.mdSOUL.md
Skill loading~/.openclaw/skills/ registry~/.hermes/skills/ directory
WhatsAppsupportednot supported
Install sizealready 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

  1. Manual Install over SSH — SSH into a Dev-Edition Intern and run the install steps intern-server runs internally: install the binary, register the gateway unit, write config.yaml + .env, start the gateway, persist active_agent.
  2. 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.