Finish NanoClaw v1 → v2 Migration
Walks Claude through the human-judgment half of a NanoClaw v1→v2 upgrade: owner seeding, legacy memory, container config, and fork triage.
Dev & CodingAdvanced★ 30,471⑂ 12,865AI score 8/10Last updated: Aug 9, 2026
What it does
- Reads
logs/setup-migration/handoff.jsonfirst to triage per-step results and follow-ups from the deterministicmigrate-v2.shrun. - Has a hard preflight: if the handoff file is missing, it refuses to simulate or resume and tells the user to run
bash migrate-v2.shin a real terminal. - Phase 0 proves v2 actually routes a real message (non-destructive switchover, v1 only paused). Phase 1 queries
users, confirms the owner ID format (telegram:<id>,whatsapp:<phone>@s.whatsapp.net, …), grants theownerrole idempotently viagetUserRoles/grantRole, then setsunknown_sender_policyand optionally imports known senders from v1'sstore/messages.db. - Phases 2–4: run
/migrate-memoryper group, validateadditionalMountshost paths incontainer.json, and triage fork commits (copy portable skills/docs, stashsrc/*todocs/v1-fork-reference/). - Wraps up with
pnpm exec tsx setup/index.ts --step verifyand an install-slug-derived systemd/launchd restart.
Who it's for
- Operators running NanoClaw v1 who need to move to v2.
- Anyone with a customized v1 fork (extra skills, docs, container mounts).
- Admins tightening bot access policy across Telegram/Discord/WhatsApp/Slack.
Examples
- "Finish migration" → reads handoff.json, fixes only routing blockers, then confirms via a live test message.
- "Make me the owner" → lists the
userstable, confirms which row is you, grants the global owner role without duplicates. - "What about my v1 patches?" → shows
git log upstream/main..HEAD, copies portable items and greps them for v1-only paths like/workspace/group/orregistered_groups.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/nanocoai/nanoclaw/HEAD/.claude/skills/migrate-from-v1/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
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-v1 folder from the GitHub repo nanocoai/nanoclaw into my ~/.claude/skills/migrate-from-v1/. 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 && mkdir -p ~/.claude/skills && cp -r nanoclaw/.claude/skills/migrate-from-v1 ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal.
- Clone the repo:
git clone https://github.com/nanocoai/nanoclaw.git - If you already work inside a NanoClaw v2 checkout, the skill ships at
.claude/skills/migrate-from-v1— nothing to install. - For global availability:
mkdir -p ~/.claude/skills && cp -r nanoclaw/.claude/skills/migrate-from-v1 ~/.claude/skills/ - Important: run
bash migrate-v2.shin your terminal first — it needs interactive prompts, Docker, and a pnpm bootstrap. - When the script hands off, start Claude Code in the project directory and say "finish v1 migration".
- Back up
data/and.envbeforehand, since this skill writes to the v2 database and restarts your service.
View source on GitHub ↗License: MIT