🧪 Skills

Claw Store

--- name: claw_store description: "Sovereign, recoverable memory for AI agents backed by Jackal decentralized storage." user-invocable: true metadata: openclaw: emoji: "🧠" requires

v1.3.3
❤️ 0
⬇️ 322
👁 1
Share

Description


name: claw_store description: "Sovereign, recoverable memory for AI agents backed by Jackal decentralized storage." user-invocable: true metadata: openclaw: emoji: "🧠" requires: env: - "JACKAL_MEMORY_API_KEY" - "JACKAL_MEMORY_ENCRYPTION_KEY" - "JACKAL_MEMORY_WALLET_MNEMONIC" homepage: "https://obsideo.io" repository: "https://github.com/Regan-Milne/jackal-memory"

Claw Store

Persistent memory across sessions, machines, and restarts — backed by Jackal decentralized storage. All content is encrypted client-side before leaving your machine.

Setup (first time only)

cd {baseDir}/jackal-memory
npm install
pip install cryptography

Env vars

Variable Required Purpose
JACKAL_MEMORY_ENCRYPTION_KEY ✅ Yes AES-256 key for client-side encryption. Auto-generated on first save if not set — back it up.
JACKAL_MEMORY_WALLET_MNEMONIC ✅ Yes Jackal wallet mnemonic (controls on-chain storage ownership). Auto-generated on first save if not set — back it up.
JACKAL_MEMORY_API_KEY ⚠️ Provisioning only Obsideo API key — only needed to provision a new Jackal wallet via the Obsideo service. Not required if you already have a funded wallet and mnemonic.

Note: client.py derives JACKAL_MNEMONIC and JACKAL_ADDRESS from JACKAL_MEMORY_WALLET_MNEMONIC internally — you do not need to set these separately.

Commands

python {baseDir}/jackal-memory/client.py save <key> "<content>"
python {baseDir}/jackal-memory/client.py load <key>
python {baseDir}/jackal-memory/client.py list
python {baseDir}/jackal-memory/client.py usage

Operational protocol

  • Session start: load your memory blob before doing any work
  • Session end: save your memory blob (or on any significant state change)
  • Keys: use descriptive names — identity, session-2026-03-14, project-obsideo

Network lag — critical

Jackal is eventually consistent. A successful save does not guarantee immediate read availability.

Do not retry in a loop — it burns context and blocks you.

Instead, use this protocol:

  1. Save succeeded → treat as accepted, continue work
  2. Load fails → do not assume data loss
  3. Tell the user: "Propagation delay — data is saved but not yet visible on providers. I'll retry shortly."
  4. Write a retry task to HEARTBEAT.md:
    - Retry claw-store load: <key> — notify user on success
    
  5. Move on. The heartbeat will retry. Propagation can take minutes to hours — do not escalate unless it fails across multiple heartbeat cycles.
  6. Provider errors like Can't claim are non-fatal noise — ignore them

Proactive saving

When you encounter a key decision, user preference, important result, or plan — say:

"This seems important. Should I back it up to Claw Store?"

Save immediately if confirmed. Don't wait until session end for critical information. Never proactively store raw secrets (passwords, API keys, mnemonics).

Rules

  • Never log or expose JACKAL_MEMORY_API_KEY in output
  • Never log or expose JACKAL_MEMORY_ENCRYPTION_KEY in output
  • Never log or expose JACKAL_MEMORY_WALLET_MNEMONIC in output

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs