Transfer your skills, memory, config, and personality from OpenClaw to Hermes in one command.
Hermes is the successor to OpenClaw. If you've spent weeks or months building up skills, memory files, and configuration in OpenClaw, the migration tool brings all of it over automatically.
What transfers:
| What | OpenClaw Location | Hermes Destination |
|---|---|---|
| Personality | workspace/SOUL.md |
~/.hermes/SOUL.md |
| Instructions | workspace/AGENTS.md |
Your specified workspace target |
| Memory | workspace/MEMORY.md + workspace/memory/*.md |
~/.hermes/memories/MEMORY.md (merged, deduped) |
| User profile | workspace/USER.md |
~/.hermes/memories/USER.md |
| Skills | workspace/skills/, ~/.openclaw/skills/ |
~/.hermes/skills/openclaw-imports/ |
| Model config | agents.defaults.model |
config.yaml |
| Provider keys | models.providers.*.apiKey |
~/.hermes/.env (with --migrate-secrets) |
| Custom providers | models.providers.* |
config.yaml → custom_providers |
| Max turns | agents.defaults.timeoutSeconds |
agent.max_turns (timeoutSeconds / 10) |
Note: Session transcripts, cron job definitions, and plugin-specific data do not transfer. Those are OpenClaw-specific and have different formats in Hermes.
# Preview what would happen (no files changed)
hermes claw migrate --dry-run
# Run the full migration (includes API keys)
hermes claw migrate
# Exclude API keys (safer for shared machines)
hermes claw migrate --preset user-dataThe migration reads from ~/.openclaw/ by default. If you have legacy ~/.clawdbot/ or ~/.moldbot/ directories, those are detected automatically.
| Option | What It Does | Default |
|---|---|---|
--dry-run |
Preview without writing anything | off |
--preset full |
Include API keys and secrets | yes |
--preset user-data |
Exclude API keys | no |
--overwrite |
Overwrite existing Hermes files on conflicts | skip |
--migrate-secrets |
Include API keys explicitly | on with --preset full |
--source <path> |
Custom OpenClaw directory | ~/.openclaw/ |
--workspace-target <path> |
Where to place AGENTS.md |
current directory |
--skill-conflict <mode> |
skip, overwrite, or rename |
skip |
--yes |
Skip confirmation prompt | off |
Always preview before committing:
hermes claw migrate --dry-runThis shows you exactly what files would be created, overwritten, or skipped. Review the output carefully.
hermes claw migrateThe tool will:
- Detect your OpenClaw installation
- Map config keys to Hermes equivalents
- Merge memory files (deduplicating entries)
- Copy skills to
~/.hermes/skills/openclaw-imports/ - Migrate API keys (if
--preset full) - Report what was done
If a skill already exists in Hermes with the same name:
--skill-conflict skip(default): Leaves the Hermes version, skips the import--skill-conflict overwrite: Replaces the Hermes version with the OpenClaw version- **--skill-conflict rename
**: Creates a-imported` copy alongside the Hermes version
# Example: rename on conflict so you can compare
hermes claw migrate --skill-conflict rename# Check your personality loaded
cat ~/.hermes/SOUL.md
# Check memory entries merged
cat ~/.hermes/memories/MEMORY.md | head -50
# Check skills imported
ls ~/.hermes/skills/openclaw-imports/
# Test the agent
hermes chat -q "What do you remember about me?"| Item | Why | What to Do |
|---|---|---|
| Session transcripts | Different format | Archive manually if needed |
| Cron job definitions | Different scheduler | Recreate with hermes cron |
| Plugin configs | Plugin system changed | Reconfigure in Hermes |
| OpenClaw-specific features | May not exist yet | Check Hermes docs for equivalents |
For reference, here's how OpenClaw config maps to Hermes:
| OpenClaw Config | Hermes Config | Notes |
|---|---|---|
agents.defaults.model |
model |
String or {primary, fallbacks} |
agents.defaults.timeoutSeconds |
agent.max_turns |
Divided by 10, capped at 200 |
agents.defaults.verboseDefault |
agent.verbose |
off / on / full |
agents.defaults.thinkingDefault |
reasoning.mode |
off / low / high |
models.providers.*.baseUrl |
custom_providers.*.base_url |
Direct mapping |
models.providers.*.apiType |
custom_providers.*.api_type |
openai → chat_completions, anthropic → anthropic_messages |
Make sure your OpenClaw data is at ~/.openclaw/. If it's elsewhere:
hermes claw migrate --source /path/to/your/openclawThe migration deduplicates by content similarity, but if your OpenClaw memory had near-duplicates, they might not merge perfectly. Clean up manually:
# Edit memory directly
nano ~/.hermes/memories/MEMORY.mdOpenClaw skills may reference modules or patterns that don't exist in Hermes. Open the skill file and check the imports:
cat ~/.hermes/skills/openclaw-imports/skill-name/SKILL.mdMost skills work as-is since they're markdown-based instructions. Skills with code that imports OpenClaw-specific modules need manual updating.
- Want smarter memory? → Part 3: LightRAG Setup
- Need mobile access? → Part 4: Telegram Setup
- Want the agent to self-improve? → Part 5: On-the-Fly Skills