Skip to content

feat: offer OpenClaw migration during first-time setup wizard#958

Closed
teknium1 wants to merge 2 commits intomainfrom
hermes/hermes-74edaf38
Closed

feat: offer OpenClaw migration during first-time setup wizard#958
teknium1 wants to merge 2 commits intomainfrom
hermes/hermes-74edaf38

Conversation

@teknium1
Copy link
Contributor

Summary

Closes #829. When a new user runs hermes setup for the first time and ~/.openclaw/ exists, the wizard offers to import their OpenClaw data before API/tool configuration begins.

How it works

  1. During first-time setup, after "Press Enter to begin" and before any config sections
  2. Detects ~/.openclaw/ directory
  3. Asks: "Would you like to import from OpenClaw?"
  4. If accepted, dynamically loads the existing migration script from optional-skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py
  5. Runs with full preset, execute=True, overwrite=False
  6. Prints a summary of what was imported
  7. Reloads config so imported values (API keys, etc.) are available for remaining setup steps

Design decisions

  • No new CLI flags or installer changes — the migration is offered naturally within the interactive setup wizard flow
  • Only on first-time setup — returning users already have their config; they can use the openclaw-migration skill directly
  • Reuses existing script — dynamically imports the migration script rather than duplicating logic
  • Graceful failures — if migration fails for any reason, setup continues normally
  • Config bootstrap — creates config.yaml before migration if it doesn't exist yet (migration script reads it)

Changes

File Change
hermes_cli/setup.py Added _offer_openclaw_migration() + call in first-time setup flow
tests/hermes_cli/test_setup_openclaw_migration.py 9 tests covering detection, acceptance, decline, errors, config reload

Testing

  • python -m pytest tests/hermes_cli/test_setup_openclaw_migration.py -v9 passed
  • python -m pytest tests/ -q3255 passed (2 pre-existing failures in unrelated test)

teknium1 and others added 2 commits March 11, 2026 09:09
When a new user runs 'hermes setup' for the first time and ~/.openclaw/
exists, the wizard now asks if they want to import their OpenClaw data
before API/tool configuration begins.

If accepted, the existing migration script from optional-skills/ is
loaded dynamically and run with the 'full' preset — importing settings,
memories, skills, API keys, and platform configs. Config is reloaded
afterward so imported values (like API keys) are available for the
remaining setup steps.

The migration is only offered on first-time setup (not returning users)
and handles errors gracefully without blocking setup completion.

Closes #829
Use _read_manifest() to identify true bundled skills. Non-hub,
non-builtin skills are now labeled 'local' instead of 'builtin'.
Adds --source local filter and updates summary counts.

Cherry-picked from PR #869 by Jah-yee.
Fixes #861

Co-authored-by: OpenClaw <openclaw@sparklab.ai>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: offer agent migration during install.sh and hermes setup

1 participant