Migrating to OpenClaw from another personal AI assistant
How to import history, contacts and skills when moving to OpenClaw from ChatGPT, Claude, Notion AI, Replika or a previous self-hosted assistant.
Coming from ChatGPT, Claude, Notion AI, Replika or another self-hosted assistant? OpenClaw ships first-party importers for the most common cases. This guide walks through the import path for each, what gets carried over, and what intentionally does not.
Before you start
Have ready:
- An export archive (or live account) from your previous assistant.
- A working OpenClaw install β see Getting Started if you have not done this yet.
- ~30 minutes for a typical personal migration (longer for multi-year histories).
From ChatGPT
ChatGPT lets you export your data from Settings β Data controls β Export data. The archive contains a conversations.json plus uploaded files.
openclaw migrate chatgpt --from ~/Downloads/chatgpt-export.zip
The importer:
- Converts each conversation into an episodic memory session.
- Extracts durable facts into semantic memory (only after you confirm the prompt).
- Indexes file attachments as searchable text.
To skip the confirmation prompt (for scripted migrations):
openclaw migrate chatgpt --from ~/Downloads/chatgpt-export.zip --auto
Custom GPTs do not transfer automatically β you will need to recreate them as OpenClaw skills. The Skills tutorial walks through that.
From Claude
Use the claude.ai data export. You will receive an email with a download link within 24 hours.
openclaw migrate claude --from ~/Downloads/claude-export.zip
Projects and project-scoped knowledge transfer as a single namespace inside OpenClaw memory:
namespace: claude-project/
This keeps work done inside one Claude project isolated from your general memory.
From Notion AI
Notion exports as a zip of HTML and Markdown files. The importer walks the zip, infers which blocks were AI-generated and turns them into memory entries:
openclaw migrate notion --from ~/Downloads/notion-export.zip
By default it asks before importing each top-level page. Pass --auto to import everything.
From Replika or character.AI
These services do not offer a structured export. The community maintains a third-party importer:
openclaw migrate replika --from ./replika-export.json
--review-each for this reason.From another self-hosted assistant
If you are coming from a previous OpenClaw install (for example, you are moving to a new machine), the path is the same as a backup restore:
tar xzf openclaw-memory-2026-09-21.tgz -C ~
openclaw serve
If you are coming from a different self-hosted assistant such as Home Assistant + LLM, Open Interpreter or Aider, the migration scripts repository has maintained recipes for each.
What does not migrate
A few things are intentionally not imported:
| Item | Why |
|---|---|
| Voice / video calls | Recordings are not portable across assistants. |
| Custom personality fine-tunes | Each assistant tunes its own system prompt. |
| Marketplace GPTs | Recreate as OpenClaw skills; the underlying APIs differ. |
| Subscription billing | Cancel the previous service manually to avoid double-charging. |
Validating the migration
After the import, walk through three sanity checks:
- Open the dashboard and search for a fact you know was in the export. Confirm it is in
~/.openclaw/memory.sqlite. - Open one of the old conversations in the dashboard. Confirm the session replay works.
- Ask the assistant something that requires old context:
what did we discuss about the kitchen renovation last March?
If the answer is wrong, fine-tune by deleting the bad fact and re-prompting:
openclaw memory delete
Next steps
- Run memory through what was imported and prune anything you do not want the assistant to retain.
- Add channels so the migrated history is reachable from your chat apps.
- Read the security guide before installing any community skills on a freshly imported install.
Found an issue or have a correction? Get in touch.