Claw Store
--- name: claw_store description: "Sovereign, recoverable memory for AI agents backed by Jackal decentralized storage." user-invocable: true metadata: openclaw: emoji: "🧠" requires
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:
- Save succeeded → treat as accepted, continue work
- Load fails → do not assume data loss
- Tell the user: "Propagation delay — data is saved but not yet visible on providers. I'll retry shortly."
- Write a retry task to
HEARTBEAT.md:- Retry claw-store load: <key> — notify user on success - Move on. The heartbeat will retry. Propagation can take minutes to hours — do not escalate unless it fails across multiple heartbeat cycles.
- Provider errors like
Can't claimare 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_KEYin output - Never log or expose
JACKAL_MEMORY_ENCRYPTION_KEYin output - Never log or expose
JACKAL_MEMORY_WALLET_MNEMONICin output
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!