Migration
Migration from OpenClaw
Section titled “Migration from OpenClaw”Human is a drop-in replacement for OpenClaw (TypeScript, Node.js). It preserves your memory, config structure, and channel integrations while dramatically reducing resource usage.
| Dimension | OpenClaw | Human |
|---|---|---|
| Binary size | ~28 MB (npm dist) | ~528 KB |
| Memory | Node.js heap (100+ MB) | < 5 MB peak RSS |
| Dependencies | 1,200+ npm packages | 0 — libc + optional SQLite |
| Secrets | Plain-text API keys | ChaCha20-Poly1305 encrypted |
1. Install Human
Section titled “1. Install Human”Build from source (recommended):
git clone https://github.com/sethdford/h-uman.gitcd human && mkdir -p build && cd buildcmake .. -DCMAKE_BUILD_TYPE=MinSizeRel -DHU_ENABLE_LTO=ON -DHU_ENABLE_ALL_CHANNELS=ONcmake --build .sudo cp human /usr/local/bin/Or download a release:
curl -Lo human https://github.com/sethdford/h-uman/releases/latest/download/human-$(uname -m)chmod +x human && sudo mv human /usr/local/bin/2. Migrate memory
Section titled “2. Migrate memory”Human imports memories directly from OpenClaw’s SQLite brain database:
human migrate sqlite ~/.openclaw/brain.dbThe migration tool auto-detects common schema variants and maps columns automatically.
3. Migrate config
Section titled “3. Migrate config”Human uses the same config structure as OpenClaw. Most keys map 1:1.
OpenClaw (~/.openclaw/config.json):
{ "default_provider": "openai", "default_model": "gpt-4o", "providers": [{ "name": "openai", "api_key": "sk-proj-xxx" }]}Human (~/.human/config.json):
{ "models": { "providers": { "openai": { "api_key": "sk-proj-xxx" } } }, "agents": { "defaults": { "model": { "primary": "gpt-4o" } } }}4. Verify
Section titled “4. Verify”human doctor # Config, provider, memory OK?human status # Full system statushuman agent -m "What do you remember about me?"Memory Backend Migration
Section titled “Memory Backend Migration”Transfer memory entries between SQLite and Markdown backends when switching storage.
CLI usage
Section titled “CLI usage”human migrate sqlite <source_db_path> [target_path]human migrate markdown <source_directory> [target_path]Examples
Section titled “Examples”SQLite → Markdown:
human migrate sqlite ~/.human/memory.db ./memoriesMarkdown → SQLite:
human migrate markdown ./old-memories ~/.human/new-memory.dbSupported paths
Section titled “Supported paths”| Source | Target | Description |
|---|---|---|
| SQLite | Markdown | Export DB to Markdown files |
| Markdown | SQLite | Import Markdown files into DB |
Migration stats
Section titled “Migration stats”After migration, the CLI prints:
Migration: N from sqlite, M from markdown, K importedfrom_sqlite/from_markdown: Entries read from sourceimported: Successfully written to targetskipped: Entries with missing key or contenterrors: Store failures
SQLite requirement
Section titled “SQLite requirement”When SQLite is disabled (HU_ENABLE_SQLITE off), only Markdown ↔ Markdown migrations are supported.