Migrate OpenClaw to Hermes Agent, step by step

Move an OpenClaw setup to Hermes Agent with its own importer, hermes claw migrate: preview, import, choose where commands run, check the archive, then retire OpenClaw.

Prerequisites

  • An OpenClaw install whose state lives in ~/.openclaw (legacy ~/.clawdbot and ~/.moltbot are detected too), and shell access as the user that runs it
  • Linux, macOS, WSL2 or native Windows for Hermes Agent
  • If your OpenClaw Control UI ever ran a version older than 2026.1.29: new API keys and bot tokens, since the old ones may have leaked (CVE-2026-25253)

Steps

  1. Install Hermes Agent

    The official script installs Hermes Agent and the hermes command. It also installs a browser tool with its own Chromium unless you pass --skip-browser. On native Windows, use the PowerShell one-liner from the README instead.

    curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
    source ~/.bashrc
    hermes doctor
  2. Preview the migration

    hermes claw migrate reads ~/.openclaw by default (pass --source for another path). --dry-run stops after the preview, which lists what will be imported, skipped and archived. A plan with conflicts is refused unless you pass --overwrite.

    hermes claw migrate --dry-run
  3. Run the migration

    It shows the preview again and asks you to confirm, then writes a restore point under ~/.hermes/backups/pre-migration-*.zip before applying. It imports the persona (SOUL.md), memory files, skills, default model and custom providers, MCP servers, approval mode, command allowlist and the allowed users of your chat channels. API keys come only with --migrate-secrets, and only for a fixed list of providers; AGENTS.md only with --workspace-target.

    hermes claw migrate --preset full --migrate-secrets
  4. Choose where commands run

    If OpenClaw ran tools in a Docker sandbox, the migration sets terminal.backend to docker. If it did not (OpenClaw's sandbox is off by default), Hermes uses its default local backend: commands run on the host, and those matching its dangerous-pattern list need approval. Switch to the Docker backend to run the agent's commands in a container; for untrusted input, Hermes' security policy asks for the whole agent inside its Docker image or NVIDIA OpenShell.

    hermes config get terminal.backend
    hermes config set terminal.backend docker
  5. Review what was archived

    Settings with no direct Hermes equivalent are saved for manual review: cron jobs (recreate them with hermes cron create), plugins, hooks and webhooks, IDENTITY.md (merge it into SOUL.md), multi-agent lists (use Hermes profiles), channel bindings. Idle and daily session resets are not imported.

    ls ~/.hermes/migration/openclaw/*/archive/
  6. Verify keys and channels

    Imported skills and memory load in a new session. hermes status checks provider authentication. Restart the gateway if you migrated platform tokens; WhatsApp uses QR pairing and has to be paired again. Put any key you rotated in ~/.hermes/.env, with permissions that keep it readable by you alone.

    hermes status
    systemctl --user restart hermes-gateway
    hermes whatsapp   # only if you used WhatsApp
    chmod 600 ~/.hermes/.env
  7. Rotate what may have leaked

    If your OpenClaw Control UI ever ran a version older than 2026.1.29, a crafted link could make it send its gateway token to an attacker (CVE-2026-25253). Treat every key the agent could read as exposed: rotate it at the provider and update ~/.hermes/.env.

  8. Retire OpenClaw

    Once Hermes works, stop and remove OpenClaw's gateway service, then let Hermes rename the leftover OpenClaw directories to .pre-migration/ so the two never read the same state. openclaw uninstall removes OpenClaw completely instead, scope by scope. Keep the pre-migration restore point until you are sure.

    openclaw gateway stop
    openclaw gateway uninstall
    hermes claw cleanup

Troubleshooting

"OpenClaw directory not found"
The migration checks ~/.openclaw, then ~/.clawdbot, then ~/.moltbot. Pass --source with the path of your install.
"No provider API keys found"
Keys can sit inline in openclaw.json, in ~/.openclaw/.env, in the env block of openclaw.json or in agents/main/agent/auth-profiles.json; the migration checks all four. Secrets stored as a file or exec SecretRef cannot be resolved: add them with hermes config set.
Skills missing after the migration
They land in ~/.hermes/skills/openclaw-imports/ and load in a new session; /skills lists what is loaded.

Where to go from here

Until October 2026 this page described a manual port of OpenClaw tools into YAML files with sandbox blocks, a Docker image tag that was never published and a hermes vault command: none of them exist in Hermes Agent. Hermes runs commands on the host unless you change the backend, so read its security policy before the agent reads mail, web pages or group chats. hermes update keeps the install current, and PocketClaw lists Hermes Agent's CVEs on its agent page.

Sources

The steps and figures on this page come from these pages, read on 2026-10-18. When a command here and the project's docs disagree, the docs win.