{
  "schemaVersion": "1.0",
  "item": {
    "slug": "claw-store",
    "name": "Claw Store",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/Regan-Milne/claw-store",
    "canonicalUrl": "https://clawhub.ai/Regan-Milne/claw-store",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/claw-store",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=claw-store",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "jackal-memory/client.py",
      "jackal-memory/data/bip39_english.txt",
      "jackal-memory/examples/save.json",
      "jackal-memory/jackal-client.js",
      "jackal-memory/package-lock.json",
      "jackal-memory/package.json"
    ],
    "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-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/claw-store"
    },
    "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/claw-store",
    "agentPageUrl": "https://openagent3.xyz/skills/claw-store/agent",
    "manifestUrl": "https://openagent3.xyz/skills/claw-store/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/claw-store/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": "Claw Store",
        "body": "Persist your memory across sessions and machines. Your data lives on Jackal Protocol decentralized storage — not on any single machine. If the machine dies, your memory survives.\n\nAll content is encrypted client-side with AES-256-GCM before leaving your machine. The server never sees plaintext."
      },
      {
        "title": "Trust & security quick facts",
        "body": "Runtime API host: https://web-production-5cce7.up.railway.app (separate from homepage domain)\n\n\nData leaving your machine: encrypted payloads + key metadata + your Jackal public address for provisioning\n\n\nData not leaving your machine: plaintext memory content, encryption key, wallet mnemonic/private key\n\n\nNo runtime wordlist download: BIP39 English wordlist is vendored locally in this skill package\n\n\nSecret file permissions: locally generated key/mnemonic files are written with 0600 permissions\n\n\nHomepage: https://obsideo.io\n\n\nSource code: https://github.com/Regan-Milne/jackal-memory\n\n\nPublisher: Obsideo (obsideo.io@gmail.com)"
      },
      {
        "title": "Setup",
        "body": "Get an API key: https://web-production-5cce7.up.railway.app/auth/login\nSet environment variable: JACKAL_MEMORY_API_KEY=<your-key>\nInstall Python dependency: pip install cryptography\nInstall Node.js runtime (recommended Node >=20) and install helper deps in the skill folder:\nnpm install\nOn first save, an encryption key and a Jackal wallet are auto-generated locally and saved to\n~/.config/jackal-memory/. These never leave your machine.\n\nBack up your encryption key (run once, store the output safely):\n\npython {baseDir}/jackal-memory/client.py keygen\n\nSet JACKAL_MEMORY_ENCRYPTION_KEY=<your-key> to use the same key on other machines.\n\nBack up your Jackal wallet mnemonic (controls on-chain storage ownership):\n\npython {baseDir}/jackal-memory/client.py wallet\n\nSet JACKAL_MEMORY_WALLET_MNEMONIC=<mnemonic> to use the same wallet on other machines."
      },
      {
        "title": "Onboarding new users",
        "body": "If JACKAL_MEMORY_API_KEY is not set:\n\nTell the user you need their Claw Store API key to get started\nSend them to: https://web-production-5cce7.up.railway.app/auth/login — sign in with Google, the key is shown immediately\nInstruct them to set it directly in their environment — never share or paste an API key into chat:\nexport JACKAL_MEMORY_API_KEY=<their-key>\n\n\nOnce set, confirm you're connected and offer to save something right away as a first test\nAfter the first successful save, remind the user to back up their Jackal wallet mnemonic:\npython {baseDir}/jackal-memory/client.py wallet\n\nThe mnemonic controls their on-chain storage. Losing it means losing sovereign access to stored files.\n\nImportant: Never ask the user to paste their API key, encryption key, or wallet mnemonic into chat. Always direct them to set it as an environment variable on their machine."
      },
      {
        "title": "Base URL",
        "body": "https://web-production-5cce7.up.railway.app\n\nNote: this runtime API host is currently on Railway and is distinct from the project homepage domain (obsideo.io). Verify endpoint trust in your environment before use."
      },
      {
        "title": "Auth",
        "body": "Authorization: Bearer $JACKAL_MEMORY_API_KEY"
      },
      {
        "title": "Usage",
        "body": "On session start — restore memory:\n\npython {baseDir}/jackal-memory/client.py load <key>\n\nOn session end — save memory:\n\npython {baseDir}/jackal-memory/client.py save <key> <content>\n\nCheck storage usage:\n\npython {baseDir}/jackal-memory/client.py usage\n\nList known saved keys (local manifest):\n\npython {baseDir}/jackal-memory/client.py list\npython {baseDir}/jackal-memory/client.py list project-\n\nExport local key manifest for backup/migration:\n\npython {baseDir}/jackal-memory/client.py manifest-export ~/jackal-manifest.json\n\nShow/generate Jackal wallet:\n\npython {baseDir}/jackal-memory/client.py wallet\npython {baseDir}/jackal-memory/client.py wallet --show-mnemonic\npython {baseDir}/jackal-memory/client.py walletgen\n\nOr call the API directly:\n\nGET  /load/{key}\nPOST /save       {\"key\": \"...\", \"content\": \"...\"}\nGET  /usage"
      },
      {
        "title": "Behaviour guidelines",
        "body": "Load your identity/memory blob on startup before doing any work\nWrite locally during the session as normal\nCall save at session end or on significant state changes\nUse descriptive keys: identity, session-2026-02-26, project-jackal\nNever log or expose JACKAL_MEMORY_API_KEY in output\nNever log or expose JACKAL_MEMORY_ENCRYPTION_KEY in output"
      },
      {
        "title": "Network latency & propagation (important)",
        "body": "Jackal is eventually consistent across a provider pool. A successful save means the write was accepted, but read visibility can lag.\n\nAgent protocol:\n\nIf save succeeds, treat it as accepted and continue work (optimistic flow).\nIf immediate load fails, do not assume data loss.\nRetry with patience (recommended: 8 attempts, 15s apart; ~2 minutes total).\nIf still unavailable, report as propagation delay and re-check later.\nEscalate only after extended delay windows continue to fail.\n\nNotes:\n\nProvider-level logs like Error: Can't claim can be non-fatal noise.\nSome providers may temporarily fail while others succeed.\nOperationally: save now, verify later, then finalize once data becomes readable."
      },
      {
        "title": "Proactive memory suggestions",
        "body": "When you encounter something that seems important — a key decision, user preference, project status, significant result, or plan — proactively say:\n\n\"This seems important. Should I back it up to Claw Store?\"\n\nIf the user confirms, save it immediately with a descriptive key. Do not wait until the end of the session for important information — suggest saving it as soon as you recognise its value.\n\nNever proactively suggest storing raw secrets (passwords, API keys, private keys, recovery phrases, tokens).\nOnly store such material if the user explicitly requests it and understands the risk."
      },
      {
        "title": "Wallet sovereignty",
        "body": "Each user gets their own Jackal wallet, generated locally on first save. The private key (mnemonic)\nnever leaves your machine — not even the API server sees it. Your storage is owned by your wallet\naddress on the Jackal blockchain. If Obsideo shuts down, you can access your files directly via any\nJackal client using your mnemonic.\n\nBack up the mnemonic:\n\npython {baseDir}/jackal-memory/client.py wallet\n\nFor selective recovery after hardware loss, keep all three backups:\n\nJACKAL_MEMORY_WALLET_MNEMONIC\nJACKAL_MEMORY_ENCRYPTION_KEY\nlocal key manifest (manifest-export) so you can restore specific keys instead of guessing."
      },
      {
        "title": "Endpoint and storage transparency",
        "body": "This skill interacts with:\n\nObsideo API: https://web-production-5cce7.up.railway.app\nJackal decentralized storage providers (resolved dynamically by Jackal SDK)\nLocal subprocess: jackal-memory/jackal-client.js (Node helper for Jackal upload/download)\n\nLocal files written by this skill:\n\n~/.config/jackal-memory/key (AES encryption key, if not provided via env; written with 0600)\n~/.config/jackal-memory/jackal-mnemonic (wallet mnemonic, if not provided via env; written with 0600)\n.env (read-only): jackal-client.js will load one directory up if present, to populate missing env vars.\n\nOperational note: run in a clean environment when possible to avoid unintentionally inheriting unrelated secrets from .env."
      },
      {
        "title": "Security",
        "body": "All content is encrypted before leaving your machine — the server cannot read your memories\nYour Jackal wallet private key never leaves your machine\nSet API keys and secrets directly in local environment variables; never paste them into chat\nBack up both keys: keygen (encryption) and wallet (Jackal mnemonic)\nTreat memory content as sensitive — it may contain personal or operational data\nDo not proactively store raw secrets unless the user explicitly asks\nBIP39 English wordlist is included locally in the package (no runtime fetch required)."
      }
    ],
    "body": "Claw Store\n\nPersist your memory across sessions and machines. Your data lives on Jackal Protocol decentralized storage — not on any single machine. If the machine dies, your memory survives.\n\nAll content is encrypted client-side with AES-256-GCM before leaving your machine. The server never sees plaintext.\n\nTrust & security quick facts\n\nRuntime API host: https://web-production-5cce7.up.railway.app (separate from homepage domain)\n\nData leaving your machine: encrypted payloads + key metadata + your Jackal public address for provisioning\n\nData not leaving your machine: plaintext memory content, encryption key, wallet mnemonic/private key\n\nNo runtime wordlist download: BIP39 English wordlist is vendored locally in this skill package\n\nSecret file permissions: locally generated key/mnemonic files are written with 0600 permissions\n\nHomepage: https://obsideo.io\n\nSource code: https://github.com/Regan-Milne/jackal-memory\n\nPublisher: Obsideo (obsideo.io@gmail.com)\n\nSetup\nGet an API key: https://web-production-5cce7.up.railway.app/auth/login\nSet environment variable: JACKAL_MEMORY_API_KEY=<your-key>\nInstall Python dependency: pip install cryptography\nInstall Node.js runtime (recommended Node >=20) and install helper deps in the skill folder: npm install\nOn first save, an encryption key and a Jackal wallet are auto-generated locally and saved to ~/.config/jackal-memory/. These never leave your machine.\n\nBack up your encryption key (run once, store the output safely):\n\npython {baseDir}/jackal-memory/client.py keygen\n\n\nSet JACKAL_MEMORY_ENCRYPTION_KEY=<your-key> to use the same key on other machines.\n\nBack up your Jackal wallet mnemonic (controls on-chain storage ownership):\n\npython {baseDir}/jackal-memory/client.py wallet\n\n\nSet JACKAL_MEMORY_WALLET_MNEMONIC=<mnemonic> to use the same wallet on other machines.\n\nOnboarding new users\n\nIf JACKAL_MEMORY_API_KEY is not set:\n\nTell the user you need their Claw Store API key to get started\nSend them to: https://web-production-5cce7.up.railway.app/auth/login — sign in with Google, the key is shown immediately\nInstruct them to set it directly in their environment — never share or paste an API key into chat:\nexport JACKAL_MEMORY_API_KEY=<their-key>\n\nOnce set, confirm you're connected and offer to save something right away as a first test\nAfter the first successful save, remind the user to back up their Jackal wallet mnemonic:\npython {baseDir}/jackal-memory/client.py wallet\n\nThe mnemonic controls their on-chain storage. Losing it means losing sovereign access to stored files.\n\nImportant: Never ask the user to paste their API key, encryption key, or wallet mnemonic into chat. Always direct them to set it as an environment variable on their machine.\n\nBase URL\n\nhttps://web-production-5cce7.up.railway.app\n\nNote: this runtime API host is currently on Railway and is distinct from the project homepage domain (obsideo.io). Verify endpoint trust in your environment before use.\n\nAuth\n\nAuthorization: Bearer $JACKAL_MEMORY_API_KEY\n\nUsage\n\nOn session start — restore memory:\n\npython {baseDir}/jackal-memory/client.py load <key>\n\n\nOn session end — save memory:\n\npython {baseDir}/jackal-memory/client.py save <key> <content>\n\n\nCheck storage usage:\n\npython {baseDir}/jackal-memory/client.py usage\n\n\nList known saved keys (local manifest):\n\npython {baseDir}/jackal-memory/client.py list\npython {baseDir}/jackal-memory/client.py list project-\n\n\nExport local key manifest for backup/migration:\n\npython {baseDir}/jackal-memory/client.py manifest-export ~/jackal-manifest.json\n\n\nShow/generate Jackal wallet:\n\npython {baseDir}/jackal-memory/client.py wallet\npython {baseDir}/jackal-memory/client.py wallet --show-mnemonic\npython {baseDir}/jackal-memory/client.py walletgen\n\n\nOr call the API directly:\n\nGET  /load/{key}\nPOST /save       {\"key\": \"...\", \"content\": \"...\"}\nGET  /usage\n\nBehaviour guidelines\nLoad your identity/memory blob on startup before doing any work\nWrite locally during the session as normal\nCall save at session end or on significant state changes\nUse descriptive keys: identity, session-2026-02-26, project-jackal\nNever log or expose JACKAL_MEMORY_API_KEY in output\nNever log or expose JACKAL_MEMORY_ENCRYPTION_KEY in output\nNetwork latency & propagation (important)\n\nJackal is eventually consistent across a provider pool. A successful save means the write was accepted, but read visibility can lag.\n\nAgent protocol:\n\nIf save succeeds, treat it as accepted and continue work (optimistic flow).\nIf immediate load fails, do not assume data loss.\nRetry with patience (recommended: 8 attempts, 15s apart; ~2 minutes total).\nIf still unavailable, report as propagation delay and re-check later.\nEscalate only after extended delay windows continue to fail.\n\nNotes:\n\nProvider-level logs like Error: Can't claim can be non-fatal noise.\nSome providers may temporarily fail while others succeed.\nOperationally: save now, verify later, then finalize once data becomes readable.\nProactive memory suggestions\n\nWhen you encounter something that seems important — a key decision, user preference, project status, significant result, or plan — proactively say:\n\n\"This seems important. Should I back it up to Claw Store?\"\n\nIf the user confirms, save it immediately with a descriptive key. Do not wait until the end of the session for important information — suggest saving it as soon as you recognise its value.\n\nNever proactively suggest storing raw secrets (passwords, API keys, private keys, recovery phrases, tokens). Only store such material if the user explicitly requests it and understands the risk.\n\nWallet sovereignty\n\nEach user gets their own Jackal wallet, generated locally on first save. The private key (mnemonic) never leaves your machine — not even the API server sees it. Your storage is owned by your wallet address on the Jackal blockchain. If Obsideo shuts down, you can access your files directly via any Jackal client using your mnemonic.\n\nBack up the mnemonic:\n\npython {baseDir}/jackal-memory/client.py wallet\n\n\nFor selective recovery after hardware loss, keep all three backups:\n\nJACKAL_MEMORY_WALLET_MNEMONIC\nJACKAL_MEMORY_ENCRYPTION_KEY\nlocal key manifest (manifest-export) so you can restore specific keys instead of guessing.\nEndpoint and storage transparency\n\nThis skill interacts with:\n\nObsideo API: https://web-production-5cce7.up.railway.app\nJackal decentralized storage providers (resolved dynamically by Jackal SDK)\nLocal subprocess: jackal-memory/jackal-client.js (Node helper for Jackal upload/download)\n\nLocal files written by this skill:\n\n~/.config/jackal-memory/key (AES encryption key, if not provided via env; written with 0600)\n~/.config/jackal-memory/jackal-mnemonic (wallet mnemonic, if not provided via env; written with 0600)\n.env (read-only): jackal-client.js will load one directory up if present, to populate missing env vars.\n\nOperational note: run in a clean environment when possible to avoid unintentionally inheriting unrelated secrets from .env.\n\nSecurity\nAll content is encrypted before leaving your machine — the server cannot read your memories\nYour Jackal wallet private key never leaves your machine\nSet API keys and secrets directly in local environment variables; never paste them into chat\nBack up both keys: keygen (encryption) and wallet (Jackal mnemonic)\nTreat memory content as sensitive — it may contain personal or operational data\nDo not proactively store raw secrets unless the user explicitly asks\nBIP39 English wordlist is included locally in the package (no runtime fetch required)."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Regan-Milne/claw-store",
    "publisherUrl": "https://clawhub.ai/Regan-Milne/claw-store",
    "owner": "Regan-Milne",
    "version": "1.3.7",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/claw-store",
    "downloadUrl": "https://openagent3.xyz/downloads/claw-store",
    "agentUrl": "https://openagent3.xyz/skills/claw-store/agent",
    "manifestUrl": "https://openagent3.xyz/skills/claw-store/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/claw-store/agent.md"
  }
}