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.
All content is encrypted client-side with AES-256-GCM before leaving your machine. The server never sees plaintext.
https://web-production-5cce7.up.railway.app (separate from homepage domain)
0600 permissions
JACKAL_MEMORY_API_KEY=
pip install cryptography
npm 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= 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= to use the same wallet on other machines.
If JACKAL_MEMORY_API_KEY is not set:
```
export JACKAL_MEMORY_API_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-jackal
JACKAL_MEMORY_API_KEY in output
JACKAL_MEMORY_ENCRYPTION_KEY in output
Jackal 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_MNEMONIC
JACKAL_MEMORY_ENCRYPTION_KEY
manifest-export) so you can restore specific keys instead of guessing.
This skill interacts with:
https://web-production-5cce7.up.railway.app
jackal-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)
共 1 个版本