Install
openclaw skills install claw-storeSovereign, recoverable memory for AI agents backed by Jackal decentralized storage.
openclaw skills install claw-storePersist 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.
All content is encrypted client-side with AES-256-GCM before leaving your machine. The server never sees plaintext.
Runtime API host: https://web-production-5cce7.up.railway.app (separate from homepage domain)
Data leaving your machine: encrypted payloads + key metadata + your Jackal public address for provisioning
Data not leaving your machine: plaintext memory content, encryption key, wallet mnemonic/private key
No runtime wordlist download: BIP39 English wordlist is vendored locally in this skill package
Secret file permissions: locally generated key/mnemonic files are written with 0600 permissions
Homepage: https://obsideo.io
Source code: https://github.com/Regan-Milne/jackal-memory
Publisher: Obsideo (obsideo.io@gmail.com)
JACKAL_MEMORY_API_KEY=<your-key>pip install cryptographynpm install~/.config/jackal-memory/. These never leave your machine.Back up your encryption key (run once, store the output safely):
python {baseDir}/jackal-memory/client.py keygen
Set JACKAL_MEMORY_ENCRYPTION_KEY=<your-key> to use the same key on other machines.
Back up your Jackal wallet mnemonic (controls on-chain storage ownership):
python {baseDir}/jackal-memory/client.py wallet
Set JACKAL_MEMORY_WALLET_MNEMONIC=<mnemonic> to use the same wallet on other machines.
If JACKAL_MEMORY_API_KEY is not set:
export JACKAL_MEMORY_API_KEY=<their-key>
python {baseDir}/jackal-memory/client.py wallet
The mnemonic controls their on-chain storage. Losing it means losing sovereign access to stored files.Important: 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.
https://web-production-5cce7.up.railway.app
Note: 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.
Authorization: Bearer $JACKAL_MEMORY_API_KEY
On session start — restore memory:
python {baseDir}/jackal-memory/client.py load <key>
On session end — save memory:
python {baseDir}/jackal-memory/client.py save <key> <content>
Check storage usage:
python {baseDir}/jackal-memory/client.py usage
List known saved keys (local manifest):
python {baseDir}/jackal-memory/client.py list
python {baseDir}/jackal-memory/client.py list project-
Export local key manifest for backup/migration:
python {baseDir}/jackal-memory/client.py manifest-export ~/jackal-manifest.json
Show/generate Jackal wallet:
python {baseDir}/jackal-memory/client.py wallet
python {baseDir}/jackal-memory/client.py wallet --show-mnemonic
python {baseDir}/jackal-memory/client.py walletgen
Or call the API directly:
GET /load/{key}
POST /save {"key": "...", "content": "..."}
GET /usage
identity, session-2026-02-26, project-jackalJACKAL_MEMORY_API_KEY in outputJACKAL_MEMORY_ENCRYPTION_KEY in outputJackal is eventually consistent across a provider pool. A successful save means the write was accepted, but read visibility can lag.
Agent protocol:
propagation delay and re-check later.Notes:
Error: Can't claim can be non-fatal noise.When you encounter something that seems important — a key decision, user preference, project status, significant result, or plan — proactively say:
"This seems important. Should I back it up to Claw Store?"
If 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.
Never 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.
Each 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.
Back up the mnemonic:
python {baseDir}/jackal-memory/client.py wallet
For selective recovery after hardware loss, keep all three backups:
JACKAL_MEMORY_WALLET_MNEMONICJACKAL_MEMORY_ENCRYPTION_KEYmanifest-export) so you can restore specific keys instead of guessing.This skill interacts with:
https://web-production-5cce7.up.railway.appjackal-memory/jackal-client.js (Node helper for Jackal upload/download)Local files written by this skill:
~/.config/jackal-memory/key (AES encryption key, if not provided via env; written with 0600)~/.config/jackal-memory/jackal-mnemonic (wallet mnemonic, if not provided via env; written with 0600).env (read-only): jackal-client.js will load one directory up if present, to populate missing env vars.Operational note: run in a clean environment when possible to avoid unintentionally inheriting unrelated secrets from .env.
keygen (encryption) and wallet (Jackal mnemonic)