Skip to content

Migration

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.

DimensionOpenClawHuman
Binary size~28 MB (npm dist)~528 KB
MemoryNode.js heap (100+ MB)< 5 MB peak RSS
Dependencies1,200+ npm packages0 — libc + optional SQLite
SecretsPlain-text API keysChaCha20-Poly1305 encrypted

Build from source (recommended):

Terminal window
git clone https://github.com/sethdford/h-uman.git
cd human && mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPE=MinSizeRel -DHU_ENABLE_LTO=ON -DHU_ENABLE_ALL_CHANNELS=ON
cmake --build .
sudo cp human /usr/local/bin/

Or download a release:

Terminal window
curl -Lo human https://github.com/sethdford/h-uman/releases/latest/download/human-$(uname -m)
chmod +x human && sudo mv human /usr/local/bin/

Human imports memories directly from OpenClaw’s SQLite brain database:

Terminal window
human migrate sqlite ~/.openclaw/brain.db

The migration tool auto-detects common schema variants and maps columns automatically.

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" } }
}
}
Terminal window
human doctor # Config, provider, memory OK?
human status # Full system status
human agent -m "What do you remember about me?"

Transfer memory entries between SQLite and Markdown backends when switching storage.

Terminal window
human migrate sqlite <source_db_path> [target_path]
human migrate markdown <source_directory> [target_path]

SQLite → Markdown:

Terminal window
human migrate sqlite ~/.human/memory.db ./memories

Markdown → SQLite:

Terminal window
human migrate markdown ./old-memories ~/.human/new-memory.db
SourceTargetDescription
SQLiteMarkdownExport DB to Markdown files
MarkdownSQLiteImport Markdown files into DB

After migration, the CLI prints:

Migration: N from sqlite, M from markdown, K imported
  • from_sqlite / from_markdown: Entries read from source
  • imported: Successfully written to target
  • skipped: Entries with missing key or content
  • errors: Store failures

When SQLite is disabled (HU_ENABLE_SQLITE off), only Markdown ↔ Markdown migrations are supported.