One-click migration from OpenClaw to Hermes.
Stop OpenClaw, migrate everything, start Hermes — your channels keep working.
pip install hermes-migrateOr with pipx:
pipx install hermes-migrateFor locked-down systems (Debian/Ubuntu with externally-managed Python):
git clone https://github.com/raulvidis/hermes-migrate.git
cd hermes-migrate
./install.sh
hermes-migrate --dry-run -v # preview
hermes-migrate -v # full migrationOnly requires Python 3.9+ and PyYAML (usually pre-installed).
# Full end-to-end migration
hermes-migrate
# Preview what would happen (no changes)
hermes-migrate --dry-run
# Migrate a specific agent from a multi-agent setup
hermes-migrate --agent cleo
# Verbose output
hermes-migrate -vThat's it. The tool will:
- Stop OpenClaw processes
- Auto-install Hermes if not present
- Migrate your persona, memories, and workspace files
- Write working credentials to
~/.hermes/.env - Generate
config.yamlwith model and channel settings - Start Hermes in the background
After it finishes, your existing channels (Telegram, Slack, Discord, WhatsApp) should just work.
| OpenClaw | Hermes |
|---|---|
workspace/SOUL.md |
~/.hermes/SOUL.md |
workspace/MEMORY.md |
~/.hermes/memories/MEMORY.md |
workspace/USER.md |
~/.hermes/memories/USER.md |
workspace/HEARTBEAT.md |
~/.hermes/memories/HEARTBEAT.md |
workspace/IDENTITY.md |
~/.hermes/memories/identity.md |
workspace/AGENTS.md |
~/.hermes/memories/agents_config.md |
workspace/TOOLS.md |
~/.hermes/memories/tools_config.md |
workspace/memory/*.md |
~/.hermes/memories/openclaw_archive/ |
| OpenClaw | Hermes |
|---|---|
| Agent model (primary + fallbacks) | config.yaml model settings |
| Channel bindings | config.yaml platform_toolsets |
| Compaction mode | compression settings |
| maxConcurrent | code_execution.max_tool_calls |
| subagents.maxConcurrent | delegation.max_iterations |
| Session retention / cron | session_reset settings |
Bot tokens, API keys, and auth tokens are copied to ~/.hermes/.env (chmod 600):
- Telegram bot tokens (per-agent in multi-agent setups)
- Slack bot/app tokens
- Discord bot tokens
- WhatsApp config
- Embedding/memory search API keys (e.g., Gemini)
- Gateway auth tokens
- Custom model provider API keys and base URLs
- Allowed user lists (Telegram, Slack)
The tool also generates reference docs in ~/.hermes/memories/:
openclaw_agents.md— multi-agent setup documentationopenclaw_channels.md— per-channel account details (tokens redacted)openclaw_infrastructure.md— gateway, hooks, plugins, custom providers
OpenClaw supports multiple agents with different models and channel bindings. When you run the migration:
- The tool lists all agents with their models and channels
- You pick which one to migrate to this Hermes instance
- Only that agent's config, channels, and credentials are migrated
Available OpenClaw agents:
[1] nora
Model: openai/gpt-5
Channels: slack:nora
[2] cleo
Model: anthropic/claude-haiku-4-5
Channels: telegram:cleo
[3] hank
Model: zai/glm-5
Channels: telegram:hank
Select agent to migrate [1-3]:
To migrate multiple agents, use separate Hermes instances:
hermes-migrate --agent cleo
HERMES_HOME=~/.hermes-hank hermes-migrate --agent hankusage: hermes-migrate [-h] [--dry-run] [-v] [-a AGENT_ID] [--no-install]
[--no-start] [--version]
options:
--dry-run Preview changes without writing files
-v, --verbose Enable verbose output
-a, --agent ID Specify agent to migrate (skips interactive prompt)
--no-install Skip automatic Hermes installation
--no-start Don't start Hermes after migration
--version Show version
If everything went smoothly, Hermes is already running and your channels are live. To verify:
- Send a message through your old channel (Telegram, Slack, etc.)
- Check
~/.hermes/.envhas the right credentials - Check
~/.hermes/config.yamlfor model and channel settings - Review
~/.hermes/SOUL.mdto adjust your persona - Browse
~/.hermes/memories/for migrated memories and reference docs
If Hermes didn't auto-start (e.g., CLI not in PATH after fresh install):
source ~/.bashrc
hermesgit clone https://github.com/raulvidis/hermes-migrate
cd hermes-migrate
pip install -e ".[dev]"
# Run tests
pytest
# Run tests with verbose output
pytest -v
# Format
black hermes_migrate/ tests/
# Lint
ruff check .hermes_migrate/
__init__.py # Package version
cli.py # CLI entry point
migrate.py # All migration logic
tests/
conftest.py # Shared fixtures
test_cli.py # CLI argument parsing tests
test_migrate.py # Migration logic tests (90+ tests)
test_security.py # Redaction and security tests
- Python 3.9+
- PyYAML (installed automatically)
- Works on Linux, macOS, and Windows
MIT