OpenClaw to Hermes Migration (11/13) — Migration Checklist: Every hermes claw migrate Option
Official --dry-run / --preset / --skill-conflict / --workspace-target verbatim + pre-backup and post-verify
핵심 요약
- Audience: OpenClaw user considering Hermes Agent. Or you're comparing both to decide.
- What you'll get: All 8 official
hermes claw migrateflags verbatim, what migrates vs what doesn't, a 5-step safe procedure (backup → dry-run → partial → full → verify), post-migration verification, rollback strategies. - Prerequisite: OpenClaw running, Hermes installed (#12), command basics (#13).
1. Why this command exists
Hermes ships an official migration command for OpenClaw users to switch cleanly:
hermes claw migrate [options]
Pairs with ~/.hermes/skills/openclaw-imports/ in the official repo — migrated skills land there.
Key note: migration is a copy, not a move. Success leaves OpenClaw data untouched. You can roll back, but disk usage doubles.
2. hermes claw migrate options — all (verbatim)
| Flag | Effect |
|---|---|
--dry-run |
Preview only — no writes |
--preset <name> |
full (includes secrets) or user-data (no secrets) |
--overwrite |
Overwrite existing Hermes files |
--migrate-secrets |
Include API keys |
--source <path> |
Custom OpenClaw directory |
--workspace-target <path> |
Target path for AGENTS.md |
--skill-conflict <mode> |
skip / overwrite / rename |
--yes |
Skip confirmation prompts |
2.1 --preset distinction
full— everything: config, memory, skills, secrets (API keys / tokens).user-data— no secrets. User memory, skills, AGENTS.md only.
On shared servers or team contexts: user-data. On a personal single machine: full is convenient.
2.2 --skill-conflict distinction
When an OpenClaw skill's name collides with a Hermes default or a previously migrated skill.
| Mode | Effect |
|---|---|
skip |
Keep existing; drop new |
overwrite |
Replace existing with new |
rename |
Suffix the new one; keep both |
First-pass migration: use rename — compare afterward, then delete.
2.3 --source / --workspace-target
For non-standard paths:
--source /custom/openclaw/path: if OpenClaw lives outside~/.openclaw/.--workspace-target ~/projects/my-app: merge OpenClaw workspace contents into the project's AGENTS.md.
3. What migrates and what doesn't
Not fully enumerated officially — inferred from the command's design + observation.
3.1 Migrates (confirmed)
- User memory — OpenClaw MEMORY.md / USER.md → Hermes
~/.hermes/memories/. - Skills —
~/.openclaw/workspace/skills/→~/.hermes/skills/openclaw-imports/. - AGENTS.md — if
--workspace-targetis set, merged there. Otherwise at workspace root. - (Optional) Secrets — with
--preset fullor--migrate-secrets, API keys and tokens.
3.2 Does NOT migrate (watch)
- OpenClaw gateway state — stop the OpenClaw daemon separately; Hermes has its own gateway.
- Channel pairing state — bot tokens come over, but paired user lists may need reconfirmation.
- SQLite session DB — OpenClaw and Hermes use different session schemas. Past conversation logs are read-only reference, not migrated automatically.
- Pairing approvals — must be re-approved in Hermes.
- Cron / hooks — OpenClaw cron / hooks must be manually re-created with
hermes cron/hermes webhook.
4. 5-step safe migration
4.1 Step 1: snapshot OpenClaw
In OpenClaw:
openclaw doctor
openclaw channels status --probe
cp -r ~/.openclaw ~/.openclaw.bak-$(date +%Y%m%d)
Full copy of the OpenClaw directory. Recoverable if hermes claw migrate fails.
4.2 Step 2: preserve current Hermes state
If you already used Hermes:
hermes backup -o ~/hermes-pre-migrate-$(date +%Y%m%d).zip
Restore with hermes import if conflicts go wrong.
4.3 Step 3: preview with --dry-run
hermes claw migrate --dry-run
No writes — just a plan. Confirm: - How many skills will migrate - Where AGENTS.md lands - Memory conflicts
Read the output carefully.
4.4 Step 4: partial migration (user-data + rename)
No secrets; collisions get rename:
hermes claw migrate \
--preset user-data \
--skill-conflict rename
Post-migration checks:
ls ~/.hermes/skills/openclaw-imports/
cat ~/.hermes/memories/MEMORY.md
cat ~/.hermes/memories/USER.md
hermes skills list
hermes status --deep
4.5 Step 5: secrets migration (personal machines only)
On a personal laptop / home server:
hermes claw migrate \
--preset full \
--migrate-secrets \
--overwrite \
--yes
--overwrite replaces the user-data step with a secrets-inclusive version. Assumes backups done.
Never on a shared server. --migrate-secrets writes API keys to files under ~/.hermes/ — other users reading them = token leak.
5. Post-migration verification checklist
hermes doctor
hermes status --all
hermes skills list
ls ~/.hermes/skills/openclaw-imports/
cat ~/.hermes/memories/MEMORY.md
cat ~/.hermes/memories/USER.md
hermes auth list
hermes gateway setup
hermes pairing list
hermes chat -q "Post-migration test. Do you remember my name?"
If USER.md had your name, the agent should answer naturally. "I don't know" means MEMORY/USER migration failed.
6. Skill conflict in practice
6.1 Inventory after rename
If OpenClaw has a skill memory-guardian and Hermes has a default with a similar name, after rename:
~/.hermes/skills/
├── memory-guardian/ # Hermes default
└── openclaw-imports/
└── memory-guardian-openclaw/ # migrated, with suffix
Compare:
hermes skills inspect memory-guardian
hermes skills inspect memory-guardian-openclaw
inspect previews without installing. Keep the better one, remove the other:
hermes skills uninstall memory-guardian-openclaw
6.2 When to use --overwrite
Only if you heavily tuned an OpenClaw custom skill and want it verbatim:
hermes claw migrate --preset user-data --skill-conflict overwrite
Hermes defaults get replaced. Future Hermes upgrades to those defaults won't apply. Use this deliberately.
7. Memory merge — watch these
7.1 Token caps
Hermes active memory, per #14, caps at MEMORY.md 2,200 chars / USER.md 1,375 chars. If OpenClaw's was larger, it gets truncated.
After migration:
wc -c ~/.hermes/memories/MEMORY.md
wc -c ~/.hermes/memories/USER.md
If near the cap, curate. Long historical notes should move to the session DB (prompt the agent explicitly to store them so they enter FTS5 meaningfully).
7.2 Deduplication
OpenClaw and Hermes may have learned the same facts. Review and deduplicate manually.
8. AGENTS.md migration
OpenClaw's ~/.openclaw/workspace/skills/<skill>/AGENTS.md is per-skill. Hermes's AGENTS.md is per-project (git root).
Merge via --workspace-target:
hermes claw migrate \
--workspace-target ~/projects/my-app \
--preset user-data
OpenClaw workspace instructions merge into ~/projects/my-app/AGENTS.md. Existing AGENTS.md gets concatenated.
9. Channel reconnect — manual steps
Not auto:
9.1 Discord / Slack / Telegram bots
hermes gateway setup
Per channel:
1. Reuse the OpenClaw bot token (or hermes auth add referencing an env var)
2. Re-pair (Hermes gateway running → user DMs → pending)
3. hermes pairing list → hermes pairing approve <CODE>
The Discord / Slack bots themselves persist — you don't need to recreate apps in Discord Developer Portal. Only the runtime moves from OpenClaw to Hermes.
9.2 Stop the OpenClaw bot
If both agents run with the same token, both reply — confusing. Stop OpenClaw first:
launchctl unload ~/Library/LaunchAgents/com.openclaw.gateway.plist
systemctl --user stop openclaw
9.3 Re-create cron / hooks
OpenClaw cron/hook entries need manual port:
cat ~/.openclaw/openclaw.json | jq .cron
cat ~/.openclaw/openclaw.json | jq .hooks
hermes cron create ...
hermes webhook subscribe ...
10. Rollback strategies
If something serious breaks:
10.1 Roll back Hermes only
hermes import ~/hermes-pre-migrate-$(date +%Y%m%d).zip
hermes backup / hermes import round-trips cleanly.
10.2 Back to OpenClaw
OpenClaw wasn't touched — just start it up.
hermes gateway stop
launchctl load ~/Library/LaunchAgents/com.openclaw.gateway.plist
systemctl --user start openclaw
Remove Hermes entirely:
hermes uninstall --full --yes
10.3 Hybrid
Keep both, but split across different channels: - OpenClaw: Telegram (long archive) - Hermes: Discord + Slack (new workflows)
Coexist as long as they don't attach to the same channel simultaneously. Memory / skills don't sync between them.
11. Decision guide — should you move
| Condition | Pick |
|---|---|
| You value self-improving skills + FTS5 memory | Hermes |
| You need all 22+ messenger channels | OpenClaw |
| Rust-native speed | Neither — Codex |
| Native Windows required | OpenClaw (Hermes needs WSL2) |
| 40+ built-in tools + SOUL.md persona wanted | Hermes |
| SOC2 / enterprise audit required | Both are early-stage — be cautious |
12. Counter-scenarios — when NOT to migrate
- Production bot stable → prove Hermes ROI first on a separate channel before moving.
- Heavy investment in OpenClaw custom skills → risk of
overwrite. Userenameand compare over time. - Team operation → don't migrate until all teammates are ready. Coordinate timelines.
- Native Windows environment → Hermes lacks official support; WSL2 is mandatory.
13. Printable checklist
Before
- [ ] openclaw doctor green
- [ ] ~/.openclaw backed up (cp -r)
- [ ] Hermes backup (hermes backup -o ...)
- [ ] Documented OpenClaw's channels / skills / crons
During
- [ ] hermes claw migrate --dry-run to review plan
- [ ] hermes claw migrate --preset user-data --skill-conflict rename
- [ ] No errors in output
After
- [ ] hermes doctor
- [ ] hermes skills list shows OpenClaw imports
- [ ] MEMORY.md / USER.md look right
- [ ] OpenClaw daemon stopped
- [ ] hermes gateway setup → channels reconnected
- [ ] Pairings re-approved
- [ ] First test message succeeds
- [ ] Cron / hooks manually ported
- [ ] After 1 week stable: decide to uninstall OpenClaw
14. Series recap
This closes the 15-post "AI Coding CLI Entry Guide."
Claude Code (#1–#5)
Codex (#6–#8)
OpenClaw (#9–#11)
Hermes Agent (#12–#15)
- Install + SOUL.md
- Command cheatsheet
- Persistent memory FTS5
- (this post) migration checklist
References
This is post 15/15 and the final entry in the "AI Coding CLI Entry Guide" series.
last verified: 2026-04-25 (per hermes-agent.nousresearch.com official docs).
댓글
댓글 쓰기