Skip to main content
The nullclaw migrate command imports data from other AI assistant systems, preserving your memory, conversations, and configuration.

Supported Sources

OpenClaw

Migrate from OpenClaw (TypeScript implementation):

Usage

Options

boolean
Preview migration without making changes
string
Custom source directory (default: ~/.openclaw)

What Gets Migrated

From OpenClaw

1

Configuration

  • Provider credentials (API keys)
  • Model selection
  • Channel configuration
  • Security settings
OpenClaw and NullClaw use the same config structure, so migration is 1:1.
2

Memory

  • All stored memories
  • Conversation history
  • Memory categories (core, daily, conversation)
  • Timestamps and metadata
Converted from OpenClaw’s format to NullClaw’s SQLite or markdown backend.
3

Identity

  • IDENTITY.md (OpenClaw format)
  • Converted to NullClaw’s identity format

Migration Process

Step 1: Dry Run

First, run a dry run to see what will be migrated:
Example output:

Step 2: Backup

Before migrating, back up your existing NullClaw data:

Step 3: Migrate

Run the migration:
Example output:

Step 4: Verify

Verify the migration:

Memory Format Conversion

OpenClaw stores memories in markdown files:
NullClaw converts to SQLite:
With vector embeddings:

Config Merging

If you already have a NullClaw config, the migration:
  1. Preserves your existing providers
  2. Adds new providers from OpenClaw
  3. Merges channel configurations
  4. Does not overwrite existing channels
Example: Existing NullClaw config:
OpenClaw config:
Merged result:

Troubleshooting

Source directory not found

Fix: Specify custom path:

Memory conversion failed

Fix: Check OpenClaw memory files for invalid data:

Config merge conflict

This is expected. The migration preserves your existing channels.

Examples

Full OpenClaw migration

Migrate from custom location

Preview before migrating

See Also