membase
This skill manages agent memories using Membase and exposes CLI operations via node membase.ts for backup, restore, list, diff, status, and cleanup. It instructs executing shell commands like cd skills/membase and node membase.ts backup --password "<password>", reads MEMBASE_ACCOUNT, MEMBASE_SECRET_KEY, MEMBASE_BACKUP_PASSWORD, and communicates with https://testnet.hub.membase.io.
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:
echo $MEMBASE_BACKUP_PASSWORD -
If not set, ask: "Please provide a backup password for encryption (at least 12 characters with uppercase, lowercase, and numbers):"
-
Run backup:
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:
echo $MEMBASE_BACKUP_PASSWORD -
Run restore:
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:
cd skills/membase node membase.ts list -
Run diff with the two IDs:
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