Membase Memory Management
Membase provides secure, decentralized memory storage for AI agents with end-to-end encryption.
When to Use This Skill
Activate this skill when the user:
Asks to backup their memories, conversations, or workspace
Wants to restore previous memories or conversations
Wants to see available backups
Asks to compare different backup versions
Wants to check backup status
Mentions "membase" or "backup memories"
Overview
All Membase operations go through a single command:
node membase.ts <command> [options]
Available commands:
backup- Backup memories to Membaserestore- Restore memories from a backuplist- List all available backupsdiff- Compare two backupsstatus- Show backup status and statisticscleanup- Clean up old backups
Configuration
Environment Variables
export MEMBASE_ACCOUNT=your-account-address
export MEMBASE_SECRET_KEY=your-secret-key
export MEMBASE_BACKUP_PASSWORD=your-backup-password
export MEMBASE_ENDPOINT=https://testnet.hub.membase.io
Check if configured:
echo $MEMBASE_ACCOUNT
echo $MEMBASE_SECRET_KEY
echo $MEMBASE_BACKUP_PASSWORD
Commands
1. backup - Backup Memories
Backs up agent memory files (MEMORY.md, memory/*/.md) to Membase with AES-256-GCM encryption.
Usage:
node membase.ts backup [options]
Options:
--password <pwd>or-p <pwd>- Encryption password (required if not in env)--incrementalor-i- Only backup changed files since last backup--workspace <path>- Custom workspace directory--no-validate- Skip password strength validation--no-json- Don't output JSON for agent parsing
Example conversation:
User: "Please backup my memories"
You should:
Check for MEMBASE_BACKUP_PASSWORD:
bash echo $MEMBASE_BACKUP_PASSWORDIf not set, ask: "Please provide a backup password for encryption (at least 12 characters with uppercase, lowercase, and numbers):"
Run backup:
bash cd skills/membase node membase.ts backup --password "<password>"Show result to user: ``` [OK] Backup completed Backup ID: backup-2026-02-02T10-30-45-123Z Files: 15 Size: 234 KB
[WARNING] Save your backup ID and password securely! ```
Incremental backup (faster):
node membase.ts backup --password "<password>" --incremental
2. restore - Restore Memories
Restores memories from a Membase backup.
Usage:
node membase.ts restore <backup-id> [options]
Options:
<backup-id>- The backup ID to restore (required)--password <pwd>or-p <pwd>- Decryption password (required if not in env)--no-json- Don't output JSON for agent parsing
Example conversation:
User: "Restore my memories from backup-2026-02-02T10-30-45-123Z"
You should:
Check for password:
bash echo $MEMBASE_BACKUP_PASSWORDRun restore:
bash cd skills/membase node membase.ts restore backup-2026-02-02T10-30-45-123Z --password "<password>"Show result:
[OK] Restore completed Files restored: 15 Total size: 234 KB Location: ~/.openclaw/workspace/
3. list - List Backups
Lists all available backups for this agent.
Usage:
node membase.ts list [options]
Options:
--no-json- Don't output JSON for agent parsing
Example conversation:
User: "Show me my backups" or "List my backups"
You should:
cd skills/membase
node membase.ts list
Output will show:
Available backups:
ID Timestamp Files Size
──────────────────────────────────────────────────────────────────
backup-2026-02-02T10-30-45-123Z 2026-02-02 10:30:45 15 234 KB
backup-2026-02-01T15-20-10-456Z 2026-02-01 15:20:10 12 198 KB
4. diff - Compare Backups
Compares two backups to see what changed.
Usage:
node membase.ts diff <backup-id-1> <backup-id-2> [options]
Options:
<backup-id-1>- First backup ID (required)<backup-id-2>- Second backup ID (required)--password <pwd>or-p <pwd>- Decryption password (required if not in env)--no-json- Don't output JSON for agent parsing
Example conversation:
User: "What changed between my last two backups?"
You should:
Get the two most recent backup IDs:
bash cd skills/membase node membase.ts listRun diff with the two IDs:
bash node membase.ts diff backup-2026-02-02T10-30-45-123Z backup-2026-02-01T15-20-10-456Z --password "<password>"Show result: ``` Added files (2): + memory/conversation-new.md + memory/notes.md
Modified files (1): ~ MEMORY.md ```
5. status - Show Status
Shows backup status and statistics.
Usage:
node membase.ts status [options]
Options:
--no-json- Don't output JSON for agent parsing
Example conversation:
User: "What's my backup status?" or "Check backup status"
You should:
cd skills/membase
node membase.ts status
Output shows:
[STATS] Backup Status
Local:
Files: 15
Size: 234 KB
Remote:
Backups: 10
Configuration:
Endpoint: https://testnet.hub.membase.io
Agent: my-agent
Workspace: ~/.openclaw/workspace
6. cleanup - Clean Up Old Backups
Lists old backups that could be deleted (Membase doesn't support delete API yet).
Usage:
node membase.ts cleanup [options]
Options:
--keep-last <n>- Keep last N backups (default: 10)--dry-run- Show what would be deleted without deleting--no-json- Don't output JSON for agent parsing
Example conversation:
User: "Clean up old backups, keep the last 5"
You should:
cd skills/membase
node membase.ts cleanup --keep-last 5
Note: Will show which backups should be deleted, but user needs to delete manually via Membase Hub UI.
Security Notes
All data is encrypted client-side with AES-256-GCM
Password is derived using PBKDF2 with 100,000 iterations
Your password never leaves the local machine
Membase storage is decentralized and zero-knowledge
Only you can decrypt your backups
Password Requirements
At least 12 characters
Must contain uppercase letters
Must contain lowercase letters
Must contain numbers
Recommended: Use a password manager
Error Handling
Missing credentials
If you see "Membase credentials not configured":
# User needs to set environment variables:
export MEMBASE_ACCOUNT=your-account
export MEMBASE_SECRET_KEY=your-key
Missing password
If you see "Backup password is required":
Ask user for password
Or suggest setting MEMBASE_BACKUP_PASSWORD env var
Invalid password
If you see "Invalid password" or "Decryption failed":
User provided wrong password
Ask for correct password
No backups found
If list shows "No backups found":
No backups exist yet
Suggest creating first backup
Network error
If connection fails:
Check internet connection
Verify MEMBASE_ENDPOINT is correct
Try again later
Tips for Agents
Always check for password first before asking user
Show the backup ID clearly so user can save it
Parse JSON output if available (between ---JSON_OUTPUT--- and ---END_JSON---)
Be clear about security - emphasize that password is required for restore
Suggest incremental backups for speed after first backup
Remember backup IDs from list command to help user with restore/diff
Examples
Complete backup workflow
# 1. Check status
node membase.ts status
# 2. First backup (full)
node membase.ts backup --password "MySecure123Pass"
# 3. Later: incremental backup
node membase.ts backup --password "MySecure123Pass" --incremental
# 4. List all backups
node membase.ts list
# 5. Compare recent backups
node membase.ts diff backup-id-1 backup-id-2 --password "MySecure123Pass"
# 6. Restore if needed
node membase.ts restore backup-id-1 --password "MySecure123Pass"
Troubleshooting
Command not found
Make sure you're in the skills/membase directory:
cd skills/membase
pwd # Should show .../skills/membase
Module not found
The lib folder needs to be linked to compiled source:
cd skills/membase
ln -sf ../../dist/lib lib
Permission denied
Make membase.ts executable:
chmod +x membase.ts