Problem
The OpenClaw migration currently lives as an optional skill (optional-skills/migration/openclaw-migration/). As a skill, it requires the agent to already be running — which means the user needs working API keys and platform configs set up first. This is a chicken-and-egg problem since the migration is supposed to bring those keys and configs over.
Proposal
Add a hermes migrate --from openclaw CLI subcommand that:
- Runs before agent startup (no API keys needed)
- Auto-detects
~/.openclaw/ and offers to migrate
- Reuses the existing
openclaw_to_hermes.py script directly
- Presents an interactive flow (preset selection, conflict modes, secret migration opt-in)
- Could optionally be offered during
hermes setup if ~/.openclaw/ is detected
Why this matters
With the expanded migration (19 categories now), the script can bring over essentially everything a user needs to get Hermes working: API keys, platform tokens, model selection, TTS config, allowed users, skills, memories, and persona. Running this before first launch means the user gets a fully configured Hermes on day one.
Implementation notes
- Add
migrate subcommand to hermes_cli/main.py argparse
--from flag accepts openclaw (extensible to other agents later)
- Interactive prompts via stdlib
input() (no agent/prompt_toolkit needed)
- The migration script at
optional-skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py already handles everything — just need a CLI wrapper
- Consider auto-detection in
hermes setup: if ~/.openclaw/ exists, ask "Would you like to import your OpenClaw settings?"
- Could also detect other agent configs (
~/.claude/, ~/.codex/) for future migration paths
Current state
The migration script supports: SOUL.md, MEMORY.md, USER.md, AGENTS.md, workspace + shared skills, command allowlists, Telegram/Discord/Slack/WhatsApp/Signal settings, model config, TTS config, provider API keys, TTS asset files, daily memory notes, and archiving unmapped docs. 19 categories total with 24 tests.
Problem
The OpenClaw migration currently lives as an optional skill (
optional-skills/migration/openclaw-migration/). As a skill, it requires the agent to already be running — which means the user needs working API keys and platform configs set up first. This is a chicken-and-egg problem since the migration is supposed to bring those keys and configs over.Proposal
Add a
hermes migrate --from openclawCLI subcommand that:~/.openclaw/and offers to migrateopenclaw_to_hermes.pyscript directlyhermes setupif~/.openclaw/is detectedWhy this matters
With the expanded migration (19 categories now), the script can bring over essentially everything a user needs to get Hermes working: API keys, platform tokens, model selection, TTS config, allowed users, skills, memories, and persona. Running this before first launch means the user gets a fully configured Hermes on day one.
Implementation notes
migratesubcommand tohermes_cli/main.pyargparse--fromflag acceptsopenclaw(extensible to other agents later)input()(no agent/prompt_toolkit needed)optional-skills/migration/openclaw-migration/scripts/openclaw_to_hermes.pyalready handles everything — just need a CLI wrapperhermes setup: if~/.openclaw/exists, ask "Would you like to import your OpenClaw settings?"~/.claude/,~/.codex/) for future migration pathsCurrent state
The migration script supports: SOUL.md, MEMORY.md, USER.md, AGENTS.md, workspace + shared skills, command allowlists, Telegram/Discord/Slack/WhatsApp/Signal settings, model config, TTS config, provider API keys, TTS asset files, daily memory notes, and archiving unmapped docs. 19 categories total with 24 tests.