The week after CVE-2026-25253 went public, "migrate from OpenClaw" became one of the top search queries in the AI agent space. The question shifted from "is ZeroClaw worth trying?" to "how quickly can I switch?"
The answer: about ten minutes for a basic setup, thirty minutes if you have complex channel configurations and want to verify everything before cutting over. ZeroClaw includes a built-in migration tool that handles the heavy lifting.
This guide walks through the complete process.
Before You Start
Back up everything. OpenClaw stores its data in `~/.openclaw/`. Copy the entire directory:
```bash cp -r ~/.openclaw ~/.openclaw-backup-$(date +%Y%m%d) ```
This preserves your conversation history, memory database, configuration, and installed skills. If anything goes wrong during migration, you can always return to your original OpenClaw setup.
Check your OpenClaw version:
```bash openclaw --version ```
ZeroClaw's migration tool supports OpenClaw 0.1.x through 0.4.x configurations. If you're running an older version, update OpenClaw first (or use the manual migration path described later).
Note your active channels. List which messaging platforms you have connected — Telegram, Discord, Slack, etc. You'll need the API tokens for these during ZeroClaw configuration.
Step 1: Install ZeroClaw
```bash curl -fsSL https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/bootstrap.sh | bash ```
The binary installs in seconds. Verify:
```bash zeroclaw --version zeroclaw doctor ```
At this point, both OpenClaw and ZeroClaw are installed. They don't conflict — different binaries, different config directories, different ports.
Step 2: Dry Run the Migration
Before actually migrating, preview what will happen:
```bash zeroclaw migrate openclaw --dry-run ```
This reads your OpenClaw configuration and reports:
- •What settings will be imported
- •What settings need manual adjustment
- •What skills have no ZeroClaw equivalent
- •What data will be carried over
Read the output carefully. The dry run is your chance to catch issues before they affect your setup.
Step 3: Run the Migration
```bash zeroclaw migrate openclaw ```
The migration tool handles several things automatically:
Configuration mapping. OpenClaw's JSON configuration is translated to ZeroClaw's TOML format. Provider settings (API keys, model selection, base URLs) map directly. Channel configurations (Telegram tokens, Discord bot tokens, Slack app credentials) are carried over.
SOUL.md and IDENTITY.md import. OpenClaw uses these files to define the agent's personality and behavior. ZeroClaw imports them into its equivalent personality configuration, preserving your agent's voice and instructions.
Memory transfer. OpenClaw's conversation history and memory are exported to ZeroClaw's SQLite-based memory system. The migration tool converts OpenClaw's memory format to ZeroClaw's hybrid search format (FTS5 + vector), so your agent retains context from previous conversations.
Tool mapping. Built-in OpenClaw tools (web search, file operations, calculator) have direct ZeroClaw equivalents. The migration maps them automatically.
Step 4: Handle What Doesn't Migrate Automatically
Some things require manual attention:
Custom OpenClaw skills. If you've written custom skills in JavaScript/TypeScript, they need to be rewritten as Rust traits or WASM modules. The migration tool lists these and provides stub implementations as a starting point. For simple skills (API calls, data transformations), the rewrite is straightforward. For complex skills that depend on Node.js libraries, expect more effort.
Third-party ClawHub skills. Skills installed from ClawHub have no ZeroClaw equivalent. Evaluate whether you still need them — given the ClawHub supply chain issues, this is a good opportunity to audit. Many popular ClawHub skills have community-maintained ZeroClaw alternatives.
Custom server configurations. If you've modified OpenClaw's Express.js server, set up reverse proxies, or configured custom middleware, you'll need to adapt these for ZeroClaw's architecture.
Step 5: Configure and Start ZeroClaw
Review the generated configuration:
```bash cat ~/.zeroclaw/config.toml ```
Make any adjustments — perhaps changing the model, adjusting the personality, or configuring the gateway binding address (ZeroClaw defaults to 127.0.0.1, not 0.0.0.0).
Start ZeroClaw:
```bash zeroclaw start ```
Step 6: Verify Channels
Test each messaging channel:
- 1.Send a test message through Telegram
- 2.Send a test message through Discord
- 3.Check that the agent responds with context from previous conversations (proving memory migration worked)
- 4.Verify that tools work (try a web search query or a file operation)
If a channel doesn't connect, check the token in your config.toml. The most common issue is expired tokens that need to be regenerated from the platform's bot management interface.
Step 7: Stop OpenClaw
Once you've verified that ZeroClaw is working correctly:
```bash openclaw stop ```
If you were running OpenClaw as a system service:
```bash sudo systemctl stop openclaw sudo systemctl disable openclaw ```
Step 8: Install ZeroClaw as a Service
```bash sudo zeroclaw service install sudo systemctl enable zeroclaw sudo systemctl start zeroclaw ```
Your AI agent is now running on ZeroClaw. The transition is complete.
Zero-Downtime Strategy
If you can't afford any gap in service — if your agent handles business communications or team interactions — use this approach:
- 1.Install ZeroClaw and run the migration while OpenClaw is still running
- 2.Start ZeroClaw on a different port (configure in config.toml)
- 3.Test ZeroClaw thoroughly using direct connections
- 4.Once verified, update your channel tokens to point to ZeroClaw (each platform lets you update the webhook URL or reconnect the bot)
- 5.Stop OpenClaw after confirming all channels are receiving messages through ZeroClaw
The gap is limited to the time it takes for each platform to switch the bot connection — typically under 5 seconds per channel.
What You Gain
After migration, the differences are immediate:
- •Startup time: OpenClaw takes 8-12 seconds to boot. ZeroClaw boots in under 10 milliseconds.
- •Memory usage: OpenClaw idles at 200-400MB. ZeroClaw idles at under 5MB.
- •Binary size: OpenClaw with node_modules is 200MB+. ZeroClaw is 3.4MB.
- •Security model: OpenClaw skills run with full OS permissions. ZeroClaw skills are sandboxed with deny-by-default allowlists.
- •Dependencies: OpenClaw has 1,200+ npm packages. ZeroClaw has zero runtime dependencies.
The performance differences are most noticeable on resource-constrained hardware — laptops running on battery, VPS instances with limited RAM, Raspberry Pi deployments. But even on high-end hardware, the responsiveness improvement is tangible.
Keeping Your OpenClaw Backup
Don't delete `~/.openclaw-backup` immediately. Keep it for at least a month. If you discover that a specific conversation or configuration detail didn't migrate correctly, you can reference the backup. After a month of running ZeroClaw without issues, it's safe to remove.
The migration is a one-way trip in practice — not because you can't go back, but because once you experience the performance and security differences, you won't want to.