{
  "schemaVersion": "1.0",
  "item": {
    "slug": "unibase-membase",
    "name": "The first official Unibase Membase skill: decentralized persistent memory, purpose-built for OpenClaw Bot.",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/ibitnoah/unibase-membase",
    "canonicalUrl": "https://clawhub.ai/ibitnoah/unibase-membase",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/unibase-membase",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=unibase-membase",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "membase.ts",
      "SKILL.md",
      "commands/status.ts",
      "commands/restore.ts",
      "commands/diff.ts",
      "commands/utils.ts"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/unibase-membase"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/unibase-membase",
    "agentPageUrl": "https://openagent3.xyz/skills/unibase-membase/agent",
    "manifestUrl": "https://openagent3.xyz/skills/unibase-membase/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/unibase-membase/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Membase Memory Management",
        "body": "Membase provides secure, decentralized memory storage for AI agents with end-to-end encryption."
      },
      {
        "title": "When to Use This Skill",
        "body": "Activate this skill when the user:\n\nAsks to backup their memories, conversations, or workspace\nWants to restore previous memories or conversations\nWants to see available backups\nAsks to compare different backup versions\nWants to check backup status\nMentions \"membase\" or \"backup memories\""
      },
      {
        "title": "Overview",
        "body": "All Membase operations go through a single command:\n\nnode membase.ts <command> [options]\n\nAvailable commands:\n\nbackup - Backup memories to Membase\nrestore - Restore memories from a backup\nlist - List all available backups\ndiff - Compare two backups\nstatus - Show backup status and statistics\ncleanup - Clean up old backups"
      },
      {
        "title": "Environment Variables",
        "body": "export MEMBASE_ACCOUNT=your-account-address\nexport MEMBASE_SECRET_KEY=your-secret-key\nexport MEMBASE_BACKUP_PASSWORD=your-backup-password\nexport MEMBASE_ENDPOINT=https://testnet.hub.membase.io\n\nCheck if configured:\n\necho $MEMBASE_ACCOUNT\necho $MEMBASE_SECRET_KEY\necho $MEMBASE_BACKUP_PASSWORD"
      },
      {
        "title": "1. backup - Backup Memories",
        "body": "Backs up agent memory files (MEMORY.md, memory/**/*.md) to Membase with AES-256-GCM encryption.\n\nUsage:\n\nnode membase.ts backup [options]\n\nOptions:\n\n--password <pwd> or -p <pwd> - Encryption password (required if not in env)\n--incremental or -i - Only backup changed files since last backup\n--workspace <path> - Custom workspace directory\n--no-validate - Skip password strength validation\n--no-json - Don't output JSON for agent parsing\n\nExample conversation:\n\nUser: \"Please backup my memories\"\n\nYou should:\n\nCheck for MEMBASE_BACKUP_PASSWORD:\necho $MEMBASE_BACKUP_PASSWORD\n\n\n\nIf not set, ask: \"Please provide a backup password for encryption (at least 12 characters with uppercase, lowercase, and numbers):\"\n\n\nRun backup:\ncd skills/membase\nnode membase.ts backup --password \"<password>\"\n\n\n\nShow result to user:\n[OK] Backup completed\nBackup ID: backup-2026-02-02T10-30-45-123Z\nFiles: 15\nSize: 234 KB\n\n[WARNING]  Save your backup ID and password securely!\n\nIncremental backup (faster):\n\nnode membase.ts backup --password \"<password>\" --incremental"
      },
      {
        "title": "2. restore - Restore Memories",
        "body": "Restores memories from a Membase backup.\n\nUsage:\n\nnode membase.ts restore <backup-id> [options]\n\nOptions:\n\n<backup-id> - The backup ID to restore (required)\n--password <pwd> or -p <pwd> - Decryption password (required if not in env)\n--no-json - Don't output JSON for agent parsing\n\nExample conversation:\n\nUser: \"Restore my memories from backup-2026-02-02T10-30-45-123Z\"\n\nYou should:\n\nCheck for password:\necho $MEMBASE_BACKUP_PASSWORD\n\n\n\nRun restore:\ncd skills/membase\nnode membase.ts restore backup-2026-02-02T10-30-45-123Z --password \"<password>\"\n\n\n\nShow result:\n[OK] Restore completed\nFiles restored: 15\nTotal size: 234 KB\nLocation: ~/.openclaw/workspace/"
      },
      {
        "title": "3. list - List Backups",
        "body": "Lists all available backups for this agent.\n\nUsage:\n\nnode membase.ts list [options]\n\nOptions:\n\n--no-json - Don't output JSON for agent parsing\n\nExample conversation:\n\nUser: \"Show me my backups\" or \"List my backups\"\n\nYou should:\n\ncd skills/membase\nnode membase.ts list\n\nOutput will show:\n\nAvailable backups:\n\nID                            Timestamp              Files  Size\n──────────────────────────────────────────────────────────────────\nbackup-2026-02-02T10-30-45-123Z 2026-02-02 10:30:45    15     234 KB\nbackup-2026-02-01T15-20-10-456Z 2026-02-01 15:20:10    12     198 KB"
      },
      {
        "title": "4. diff - Compare Backups",
        "body": "Compares two backups to see what changed.\n\nUsage:\n\nnode membase.ts diff <backup-id-1> <backup-id-2> [options]\n\nOptions:\n\n<backup-id-1> - First backup ID (required)\n<backup-id-2> - Second backup ID (required)\n--password <pwd> or -p <pwd> - Decryption password (required if not in env)\n--no-json - Don't output JSON for agent parsing\n\nExample conversation:\n\nUser: \"What changed between my last two backups?\"\n\nYou should:\n\nGet the two most recent backup IDs:\ncd skills/membase\nnode membase.ts list\n\n\n\nRun diff with the two IDs:\nnode membase.ts diff backup-2026-02-02T10-30-45-123Z backup-2026-02-01T15-20-10-456Z --password \"<password>\"\n\n\n\nShow result:\nAdded files (2):\n  + memory/conversation-new.md\n  + memory/notes.md\n\nModified files (1):\n  ~ MEMORY.md"
      },
      {
        "title": "5. status - Show Status",
        "body": "Shows backup status and statistics.\n\nUsage:\n\nnode membase.ts status [options]\n\nOptions:\n\n--no-json - Don't output JSON for agent parsing\n\nExample conversation:\n\nUser: \"What's my backup status?\" or \"Check backup status\"\n\nYou should:\n\ncd skills/membase\nnode membase.ts status\n\nOutput shows:\n\n[STATS] Backup Status\n\nLocal:\n  Files: 15\n  Size: 234 KB\n\nRemote:\n  Backups: 10\n\nConfiguration:\n  Endpoint: https://testnet.hub.membase.io\n  Agent: my-agent\n  Workspace: ~/.openclaw/workspace"
      },
      {
        "title": "6. cleanup - Clean Up Old Backups",
        "body": "Lists old backups that could be deleted (Membase doesn't support delete API yet).\n\nUsage:\n\nnode membase.ts cleanup [options]\n\nOptions:\n\n--keep-last <n> - Keep last N backups (default: 10)\n--dry-run - Show what would be deleted without deleting\n--no-json - Don't output JSON for agent parsing\n\nExample conversation:\n\nUser: \"Clean up old backups, keep the last 5\"\n\nYou should:\n\ncd skills/membase\nnode membase.ts cleanup --keep-last 5\n\nNote: Will show which backups should be deleted, but user needs to delete manually via Membase Hub UI."
      },
      {
        "title": "Security Notes",
        "body": "All data is encrypted client-side with AES-256-GCM\nPassword is derived using PBKDF2 with 100,000 iterations\nYour password never leaves the local machine\nMembase storage is decentralized and zero-knowledge\nOnly you can decrypt your backups"
      },
      {
        "title": "Password Requirements",
        "body": "At least 12 characters\nMust contain uppercase letters\nMust contain lowercase letters\nMust contain numbers\nRecommended: Use a password manager"
      },
      {
        "title": "Missing credentials",
        "body": "If you see \"Membase credentials not configured\":\n\n# User needs to set environment variables:\nexport MEMBASE_ACCOUNT=your-account\nexport MEMBASE_SECRET_KEY=your-key"
      },
      {
        "title": "Missing password",
        "body": "If you see \"Backup password is required\":\n\nAsk user for password\nOr suggest setting MEMBASE_BACKUP_PASSWORD env var"
      },
      {
        "title": "Invalid password",
        "body": "If you see \"Invalid password\" or \"Decryption failed\":\n\nUser provided wrong password\nAsk for correct password"
      },
      {
        "title": "No backups found",
        "body": "If list shows \"No backups found\":\n\nNo backups exist yet\nSuggest creating first backup"
      },
      {
        "title": "Network error",
        "body": "If connection fails:\n\nCheck internet connection\nVerify MEMBASE_ENDPOINT is correct\nTry again later"
      },
      {
        "title": "Tips for Agents",
        "body": "Always check for password first before asking user\nShow the backup ID clearly so user can save it\nParse JSON output if available (between ---JSON_OUTPUT--- and ---END_JSON---)\nBe clear about security - emphasize that password is required for restore\nSuggest incremental backups for speed after first backup\nRemember backup IDs from list command to help user with restore/diff"
      },
      {
        "title": "Complete backup workflow",
        "body": "# 1. Check status\nnode membase.ts status\n\n# 2. First backup (full)\nnode membase.ts backup --password \"MySecure123Pass\"\n\n# 3. Later: incremental backup\nnode membase.ts backup --password \"MySecure123Pass\" --incremental\n\n# 4. List all backups\nnode membase.ts list\n\n# 5. Compare recent backups\nnode membase.ts diff backup-id-1 backup-id-2 --password \"MySecure123Pass\"\n\n# 6. Restore if needed\nnode membase.ts restore backup-id-1 --password \"MySecure123Pass\""
      },
      {
        "title": "Command not found",
        "body": "Make sure you're in the skills/membase directory:\n\ncd skills/membase\npwd  # Should show .../skills/membase"
      },
      {
        "title": "Module not found",
        "body": "The lib folder needs to be linked to compiled source:\n\ncd skills/membase\nln -sf ../../dist/lib lib"
      },
      {
        "title": "Permission denied",
        "body": "Make membase.ts executable:\n\nchmod +x membase.ts"
      },
      {
        "title": "Learn More",
        "body": "Membase Documentation\nAgentSkills Specification\nOpenClaw Skills Guide"
      }
    ],
    "body": "Membase Memory Management\n\nMembase provides secure, decentralized memory storage for AI agents with end-to-end encryption.\n\nWhen to Use This Skill\n\nActivate this skill when the user:\n\nAsks to backup their memories, conversations, or workspace\nWants to restore previous memories or conversations\nWants to see available backups\nAsks to compare different backup versions\nWants to check backup status\nMentions \"membase\" or \"backup memories\"\nOverview\n\nAll Membase operations go through a single command:\n\nnode membase.ts <command> [options]\n\n\nAvailable commands:\n\nbackup - Backup memories to Membase\nrestore - Restore memories from a backup\nlist - List all available backups\ndiff - Compare two backups\nstatus - Show backup status and statistics\ncleanup - Clean up old backups\nConfiguration\nEnvironment Variables\nexport MEMBASE_ACCOUNT=your-account-address\nexport MEMBASE_SECRET_KEY=your-secret-key\nexport MEMBASE_BACKUP_PASSWORD=your-backup-password\nexport MEMBASE_ENDPOINT=https://testnet.hub.membase.io\n\n\nCheck if configured:\n\necho $MEMBASE_ACCOUNT\necho $MEMBASE_SECRET_KEY\necho $MEMBASE_BACKUP_PASSWORD\n\nCommands\n1. backup - Backup Memories\n\nBacks up agent memory files (MEMORY.md, memory/**/*.md) to Membase with AES-256-GCM encryption.\n\nUsage:\n\nnode membase.ts backup [options]\n\n\nOptions:\n\n--password <pwd> or -p <pwd> - Encryption password (required if not in env)\n--incremental or -i - Only backup changed files since last backup\n--workspace <path> - Custom workspace directory\n--no-validate - Skip password strength validation\n--no-json - Don't output JSON for agent parsing\n\nExample conversation:\n\nUser: \"Please backup my memories\"\n\nYou should:\n\nCheck for MEMBASE_BACKUP_PASSWORD:\n\necho $MEMBASE_BACKUP_PASSWORD\n\n\nIf not set, ask: \"Please provide a backup password for encryption (at least 12 characters with uppercase, lowercase, and numbers):\"\n\nRun backup:\n\ncd skills/membase\nnode membase.ts backup --password \"<password>\"\n\n\nShow result to user:\n\n[OK] Backup completed\nBackup ID: backup-2026-02-02T10-30-45-123Z\nFiles: 15\nSize: 234 KB\n\n[WARNING]  Save your backup ID and password securely!\n\n\nIncremental backup (faster):\n\nnode membase.ts backup --password \"<password>\" --incremental\n\n2. restore - Restore Memories\n\nRestores memories from a Membase backup.\n\nUsage:\n\nnode membase.ts restore <backup-id> [options]\n\n\nOptions:\n\n<backup-id> - The backup ID to restore (required)\n--password <pwd> or -p <pwd> - Decryption password (required if not in env)\n--no-json - Don't output JSON for agent parsing\n\nExample conversation:\n\nUser: \"Restore my memories from backup-2026-02-02T10-30-45-123Z\"\n\nYou should:\n\nCheck for password:\n\necho $MEMBASE_BACKUP_PASSWORD\n\n\nRun restore:\n\ncd skills/membase\nnode membase.ts restore backup-2026-02-02T10-30-45-123Z --password \"<password>\"\n\n\nShow result:\n\n[OK] Restore completed\nFiles restored: 15\nTotal size: 234 KB\nLocation: ~/.openclaw/workspace/\n\n3. list - List Backups\n\nLists all available backups for this agent.\n\nUsage:\n\nnode membase.ts list [options]\n\n\nOptions:\n\n--no-json - Don't output JSON for agent parsing\n\nExample conversation:\n\nUser: \"Show me my backups\" or \"List my backups\"\n\nYou should:\n\ncd skills/membase\nnode membase.ts list\n\n\nOutput will show:\n\nAvailable backups:\n\nID                            Timestamp              Files  Size\n──────────────────────────────────────────────────────────────────\nbackup-2026-02-02T10-30-45-123Z 2026-02-02 10:30:45    15     234 KB\nbackup-2026-02-01T15-20-10-456Z 2026-02-01 15:20:10    12     198 KB\n\n4. diff - Compare Backups\n\nCompares two backups to see what changed.\n\nUsage:\n\nnode membase.ts diff <backup-id-1> <backup-id-2> [options]\n\n\nOptions:\n\n<backup-id-1> - First backup ID (required)\n<backup-id-2> - Second backup ID (required)\n--password <pwd> or -p <pwd> - Decryption password (required if not in env)\n--no-json - Don't output JSON for agent parsing\n\nExample conversation:\n\nUser: \"What changed between my last two backups?\"\n\nYou should:\n\nGet the two most recent backup IDs:\n\ncd skills/membase\nnode membase.ts list\n\n\nRun diff with the two IDs:\n\nnode membase.ts diff backup-2026-02-02T10-30-45-123Z backup-2026-02-01T15-20-10-456Z --password \"<password>\"\n\n\nShow result:\n\nAdded files (2):\n  + memory/conversation-new.md\n  + memory/notes.md\n\nModified files (1):\n  ~ MEMORY.md\n\n5. status - Show Status\n\nShows backup status and statistics.\n\nUsage:\n\nnode membase.ts status [options]\n\n\nOptions:\n\n--no-json - Don't output JSON for agent parsing\n\nExample conversation:\n\nUser: \"What's my backup status?\" or \"Check backup status\"\n\nYou should:\n\ncd skills/membase\nnode membase.ts status\n\n\nOutput shows:\n\n[STATS] Backup Status\n\nLocal:\n  Files: 15\n  Size: 234 KB\n\nRemote:\n  Backups: 10\n\nConfiguration:\n  Endpoint: https://testnet.hub.membase.io\n  Agent: my-agent\n  Workspace: ~/.openclaw/workspace\n\n6. cleanup - Clean Up Old Backups\n\nLists old backups that could be deleted (Membase doesn't support delete API yet).\n\nUsage:\n\nnode membase.ts cleanup [options]\n\n\nOptions:\n\n--keep-last <n> - Keep last N backups (default: 10)\n--dry-run - Show what would be deleted without deleting\n--no-json - Don't output JSON for agent parsing\n\nExample conversation:\n\nUser: \"Clean up old backups, keep the last 5\"\n\nYou should:\n\ncd skills/membase\nnode membase.ts cleanup --keep-last 5\n\n\nNote: Will show which backups should be deleted, but user needs to delete manually via Membase Hub UI.\n\nSecurity Notes\nAll data is encrypted client-side with AES-256-GCM\nPassword is derived using PBKDF2 with 100,000 iterations\nYour password never leaves the local machine\nMembase storage is decentralized and zero-knowledge\nOnly you can decrypt your backups\nPassword Requirements\nAt least 12 characters\nMust contain uppercase letters\nMust contain lowercase letters\nMust contain numbers\nRecommended: Use a password manager\nError Handling\nMissing credentials\n\nIf you see \"Membase credentials not configured\":\n\n# User needs to set environment variables:\nexport MEMBASE_ACCOUNT=your-account\nexport MEMBASE_SECRET_KEY=your-key\n\nMissing password\n\nIf you see \"Backup password is required\":\n\nAsk user for password\nOr suggest setting MEMBASE_BACKUP_PASSWORD env var\nInvalid password\n\nIf you see \"Invalid password\" or \"Decryption failed\":\n\nUser provided wrong password\nAsk for correct password\nNo backups found\n\nIf list shows \"No backups found\":\n\nNo backups exist yet\nSuggest creating first backup\nNetwork error\n\nIf connection fails:\n\nCheck internet connection\nVerify MEMBASE_ENDPOINT is correct\nTry again later\nTips for Agents\nAlways check for password first before asking user\nShow the backup ID clearly so user can save it\nParse JSON output if available (between ---JSON_OUTPUT--- and ---END_JSON---)\nBe clear about security - emphasize that password is required for restore\nSuggest incremental backups for speed after first backup\nRemember backup IDs from list command to help user with restore/diff\nExamples\nComplete backup workflow\n# 1. Check status\nnode membase.ts status\n\n# 2. First backup (full)\nnode membase.ts backup --password \"MySecure123Pass\"\n\n# 3. Later: incremental backup\nnode membase.ts backup --password \"MySecure123Pass\" --incremental\n\n# 4. List all backups\nnode membase.ts list\n\n# 5. Compare recent backups\nnode membase.ts diff backup-id-1 backup-id-2 --password \"MySecure123Pass\"\n\n# 6. Restore if needed\nnode membase.ts restore backup-id-1 --password \"MySecure123Pass\"\n\nTroubleshooting\nCommand not found\n\nMake sure you're in the skills/membase directory:\n\ncd skills/membase\npwd  # Should show .../skills/membase\n\nModule not found\n\nThe lib folder needs to be linked to compiled source:\n\ncd skills/membase\nln -sf ../../dist/lib lib\n\nPermission denied\n\nMake membase.ts executable:\n\nchmod +x membase.ts\n\nLearn More\nMembase Documentation\nAgentSkills Specification\nOpenClaw Skills Guide"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ibitnoah/unibase-membase",
    "publisherUrl": "https://clawhub.ai/ibitnoah/unibase-membase",
    "owner": "ibitnoah",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/unibase-membase",
    "downloadUrl": "https://openagent3.xyz/downloads/unibase-membase",
    "agentUrl": "https://openagent3.xyz/skills/unibase-membase/agent",
    "manifestUrl": "https://openagent3.xyz/skills/unibase-membase/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/unibase-membase/agent.md"
  }
}