Moving from Claude Code to OpenClaw
What the migration imports, what stays archive-only, and the dry-run first rule
If your instructions, MCP servers and skills live in Claude Code or Claude Desktop, OpenClaw can import them through a bundled migration provider. The docs describe a cautious tool: it previews every item before changing state, redacts secrets in plans and reports, creates a verified backup on the standalone path, and on the onboarding path stages the import and publishes it only after verification succeeds. Here is how to run it, what it imports, what it deliberately leaves in the archive, and the flow the docs recommend.
Two entry points
- The onboarding wizard offers Claude when it detects local state, through the import flow or an explicit source path; onboarding imports require a fresh OpenClaw setup, so an existing install has to reset config, credentials, sessions and workspace first.
- The CLI migrate command is for scripted or repeatable runs: a dry run, then an apply with the yes flag, optionally from a specific Claude Code home or project root.
- Instructions and memory: project CLAUDE.md content is copied or appended into the workspace AGENTS.md, and the user-level file into USER.md.
- MCP servers come from the project MCP file, the Claude Code state file and the Claude Desktop config when present; skills with a SKILL.md are copied into the workspace skills directory, and command Markdown files become skills with model invocation disabled, because Claude commands are user-triggered.
OpenClaw refuses to execute hooks, trust permission allowlists, or decode opaque OAuth and Desktop credential state automatically.
What stays archive-only
Hooks, permissions and broad tool allowlists, environment defaults, the local instructions file, the rules directory, Claude subagents, caches, plans and project history, and Claude Desktop extensions and OS-stored credentials are all copied into the migration report for manual review and never loaded into live config. The reason is the quote above: OpenClaw will not run someone else’s hooks, inherit a permission allowlist or decode credential state on its own, so what you need from that list you move by hand after reading the archive.
Sources and the flow
- Without a path, OpenClaw inspects the default Claude Code home, the sampled state file and the Desktop MCP config on macOS; pointed at a project root, it imports only that project’s files and does not read the global home.
- The recommended flow: preview the plan, which lists every change, conflicts, skipped items and redacted values in nested MCP env or header fields; apply with the yes flag, which creates and verifies a backup first; run the doctor; restart the Gateway and check status to confirm the imported instructions, MCP servers and skills loaded.
- Apply refuses to continue when the plan reports conflicts, a file or config value already at the target; the overwrite flag is for when replacing it is intentional, and before overwriting a skill generated from a command, its whole directory is backed up and the path recorded in the report.
OpenClaw and Claude Code is the other way these two tools meet, Claude Code as a runtime OpenClaw drives, and Migrating from Hermes to OpenClaw is the sibling import from the other agent.
Automation and troubleshooting
Both commands take a JSON flag, and the yes flag is required outside an interactive terminal, so scripts preview with dry-run JSON and apply with JSON and yes. When Claude state lives elsewhere, pass the path; when onboarding refuses on an existing setup, reset or use the CLI apply; when Desktop MCP servers did not import, point at that config file’s directory; and the commands-became-skills behavior is by design, with each skill’s frontmatter editable if you want automatic invocation. OpenClaw and MCP and OpenClaw skills explained explain where the imported servers and skills land.
On Diali
On Diali the pieces this import moves are the same pieces the dashboard manages for an assistant: the persona and instructions from onboarding, MCP servers from the MCP page, skills from the catalog. Hosted OpenClaw on Diali is the assistant.
- Preview, back up, apply, doctor.
- Instructions, MCP servers and skills move; hooks and permissions do not.
- Commands become skills the model cannot call on its own.
Stop reading about it, build one
Set up an agent, pick a channel, and have it working inside the app you already keep open.
