Migrate from OpenClaw
Detects an existing OpenClaw install and interactively migrates identity, channel credentials, scheduled tasks, and config into NanoClaw v2.
UtilitiesAdvanced★ 30,471⑂ 12,865AI score 8/10Last updated: Aug 9, 2026
What it does
This skill locates an existing OpenClaw (or clawdbot) installation and walks you through nine phases (Phase 0–8) of moving its state into NanoClaw v2's different entity model.
- Phase 0 – Discovery: scans
~/.openclaw/~/.clawdbotand summarizes channels, workspace files, daily memory files, skills, cron jobs, MCP servers, and agent count - Phase 1 – Architecture mapping: an OpenClaw "agent" becomes a v2 agent group (its own container); a chat becomes a messaging group; you choose shared vs. fully separate identity
- Phase 2 – Settings: timezone into
.env TZ, container timeout, andallowFrom/dmPolicytranslated into v2 roles, members, andunknown_sender_policy - Phase 3 – Identity & memory: splits IDENTITY/SOUL/USER/MEMORY into standing behavior (
instructions.prepend.md) versus durable concepts undermemory/ - Phase 4 – Credentials: channel tokens go to
.env; container-facing API keys go to the OneCLI vault, always shown masked (first 4 +...+ last 4) - Phase 5–8: cron → v2 recurrence mapping, MCP server wiring, welcome/first run, then a shipped vitest test plus a written summary
It also maintains a migration-state.md progress file, so a lost conversation context can be recovered without redoing decisions.
Who it's for
- Operators running a bot on OpenClaw/clawdbot who are moving to NanoClaw v2
- Anyone with several channels (Telegram/Discord/Slack), scheduled tasks, and custom skills where a hand migration would be error-prone
- Users who want API keys routed to a vault instead of leaking into container env vars
Examples
- "migrate from openclaw" → the discovery script scans the standard state dirs, prints the assistant name, channels, and groups, then asks whether to begin.
- Moving a Telegram + Slack bot → Slack's bot and app tokens are previewed masked, written to
.envonly after you approve, while the Anthropic key is registered in the OneCLI vault instead. - Migrating 12 cron jobs → reads
cron/jobs.json, maps each job to a v2messages_in(kind='task')row with a cron recurrence, shows the mapping table, then creates them via the agent'sschedule_tasktool.
· · · Install guide · · ·
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the .claude/skills/migrate-from-openclaw folder from the GitHub repo nanocoai/nanoclaw into my ~/.claude/skills/migrate-from-openclaw/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/nanocoai/nanoclaw.git /tmp/nanoclaw && mkdir -p ~/.claude/skills && cp -r /tmp/nanoclaw/.claude/skills/migrate-from-openclaw ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal and move to where you keep source checkouts.
- Clone the repo:
git clone https://github.com/nanocoai/nanoclaw.git - Copy the skill into your Claude skills directory:
mkdir -p ~/.claude/skills && cp -r nanoclaw/.claude/skills/migrate-from-openclaw ~/.claude/skills/ - This skill only makes sense when run inside a NanoClaw v2 project.
cdinto that project and runpnpm install. - Start the NanoClaw service — Phase 1's
init-first-agentneeds the running CLI socket. - Important: back up
~/.openclaw(or~/.clawdbot) and your current.envbefore starting. - Open Claude Code and say "migrate from openclaw" to trigger the skill.
- Review and approve every proposed change, especially where each credential is stored (
.envvs. the OneCLI vault).
View source on GitHub ↗License: MIT