Skill: ibitnoah/unibase-membase (version 1.0.0)

--- name: membase description: Manage agent memory with Membase - a decentralized, encrypted memory backup and restore system. Provides backup, restore, list, diff, status, and cleanup operations for agent memories. license: MIT metadata: author: Unibase version: "1.0.0" category: memory-management tags: [backup, encryption, membase, storage, decentralized, memory] allowed-tools: - bash --- # 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: ```bash node membase.ts <command> [options] ``` Available commands: - `backup` - Backup memories to Membase - `restore` - Restore memories from a backup - `list` - List all available backups - `diff` - Compare two backups - `status` - Show backup status and statistics - `cleanup` - Clean up old backups ## Configuration ### Environment Variables ```bash 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: ```bash 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:** ```bash node membase.ts backup [options] ``` **Options:** - `--password <pwd>` or `-p <pwd>` - Encryption password (required if not in env) - `--incremental` or `-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: 1. Check for MEMBASE_BACKUP_PASSWORD: ```bash echo $MEMBASE_BACKUP_PASSWORD ``` 2. If not set, ask: "Please provide a backup password for encryption (at least 12 characters with uppercase, lowercase, and numbers):" 3. Run backup: ```bash cd skills/membase node membase.ts backup --password "<password>" ``` 4. 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):** ```bash node membase.ts backup --password "<password>" --incremental ``` ### 2. restore - Restore Memories Restores memories from a Membase backup. **Usage:** ```bash 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: 1. Check for password: ```bash echo $MEMBASE_BACKUP_PASSWORD ``` 2. Run restore: ```bash cd skills/membase node membase.ts restore backup-2026-02-02T10-30-45-123Z --password "<password>" ``` 3. 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:** ```bash 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: ```bash 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:** ```bash 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: 1. Get the two most recent backup IDs: ```bash cd skills/membase node membase.ts list ``` 2. Run 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>" ``` 3. 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:** ```bash 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: ```bash 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:** ```bash 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: ```bash 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": ```bash # 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 1. **Always check for password first** before asking user 2. **Show the backup ID** clearly so user can save it 3. **Parse JSON output** if available (between ---JSON_OUTPUT--- and ---END_JSON---) 4. **Be clear about security** - emphasize that password is required for restore 5. **Suggest incremental backups** for speed after first backup 6. **Remember backup IDs** from list command to help user with restore/diff ## Examples ### Complete backup workflow ```bash # 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: ```bash cd skills/membase pwd # Should show .../skills/membase ``` ### Module not found The lib folder needs to be linked to compiled source: ```bash cd skills/membase ln -sf ../../dist/lib lib ``` ### Permission denied Make membase.ts executable: ```bash chmod +x membase.ts ``` ## Learn More - [Membase Documentation](https://github.com/unibaseio/membase) - [AgentSkills Specification](https://agentskills.io) - [OpenClaw Skills Guide](https://docs.openclaw.ai/tools/skills)


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (HIGH)