Jasper Recall
Local retrieval-augmented generation system for AI agents using ChromaDB and sentence-transformers, supporting multi-agent shared memory and privacy controls.
Local retrieval-augmented generation system for AI agents using ChromaDB and sentence-transformers, supporting multi-agent shared memory and privacy controls.
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Local RAG (Retrieval-Augmented Generation) system for AI agent memory. Gives your agent the ability to remember and search past conversations.
New in v0.2.2: Shared ChromaDB Collections — separate collections for private, shared, and learnings content. Better isolation for multi-agent setups.
New in v0.2.1: Recall Server — HTTP API for Docker-isolated agents that can't run CLI directly.
New in v0.2.0: Shared Agent Memory — bidirectional learning between main and sandboxed agents with privacy controls.
One command installs everything:
npx jasper-recall setup
This creates:
~/.openclaw/rag-env~/.openclaw/chroma-db~/.local/bin/openclaw.jsonThe core search and embedding functionality uses Python libraries:
These are the gold standard for local RAG. There are no good Node.js equivalents that work fully offline.
The venv at
~/.openclaw/rag-env provides:
| Benefit | Why It Matters |
|---|---|
| Isolation | Won't conflict with your other Python projects |
| No sudo | Installs to your home directory, no root needed |
| Clean uninstall | Delete the folder and it's gone |
| Reproducibility | Same versions everywhere |
The dependencies are heavy (~200MB total with the embedding model), but this is a one-time download that runs entirely locally.
Search your memory:
recall "what did we decide about the API design" recall "hopeIDS patterns" --limit 10 recall "meeting notes" --json
Index your files:
index-digests # Index memory files into ChromaDB
Create session digests:
digest-sessions # Process new sessions digest-sessions --dry-run # Preview what would be processed
By default, indexes files from
~/.openclaw/workspace/memory/:
*.md — Daily notes, MEMORY.mdsession-digests/*.md — Session summariesrepos/*.md — Project documentationfounder-logs/*.md — Development logs (if present)Uses
sentence-transformers/all-MiniLM-L6-v2:
# Before answering questions about past work results = exec("recall 'project setup decisions' --json") # Include relevant context in your response
Add to HEARTBEAT.md:
## Memory Maintenance - [ ] New session logs? → `digest-sessions` - [ ] Memory files updated? → `index-digests`
Schedule regular indexing:
{ "schedule": { "kind": "cron", "expr": "0 */6 * * *" }, "payload": { "kind": "agentTurn", "message": "Run index-digests to update the memory index" }, "sessionTarget": "isolated" }
For multi-agent setups where sandboxed agents need access to some memories:
Tag entries in daily notes:
## 2026-02-05 [public] - Feature shipped This is visible to all agents.2026-02-05 [private] - Personal note
This is main agent only (default if untagged).
2026-02-05 [learning] - Pattern discovered
Learnings shared bidirectionally between agents.
Memory is stored in separate collections for isolation:
| Collection | Purpose | Who accesses |
|---|---|---|
| Main agent's private content | Main agent only |
| [public] tagged content | Sandboxed agents |
| Learnings from any agent | All agents |
| Legacy unified (backward compat) | Fallback |
Collection selection:
# Main agent (default) - searches private_memories recall "api design"Sandboxed agents - searches shared_memories only
recall "product info" --public-only
Search learnings only
recall "patterns" --learnings
Search all collections (merged results)
recall "everything" --all
Specific collection
recall "something" --collection private_memories
Legacy mode (single collection)
recall "old way" --legacy
# Sandboxed agents use --public-only recall "product info" --public-onlyMain agent can see everything
recall "product info"
For the moltbook-scanner (or any sandboxed agent), use the built-in setup:
# Configure sandboxed agent with --public-only restriction npx jasper-recall moltbook-setupVerify the setup is correct
npx jasper-recall moltbook-verify
This creates:
~/bin/recall — Wrapper that forces --public-only flagshared/ — Symlink to main workspace's shared memoryThe sandboxed agent can then use:
~/bin/recall "query" # Automatically restricted to public memories
Privacy model:
[public] or [private] in daily notessync-shared extracts [public] content to memory/shared/shared collection# Check for sensitive data before sharing privacy-check "text to scan" privacy-check --file notes.mdExtract [public] entries to shared directory
sync-shared sync-shared --dry-run # Preview first
recall "query" [OPTIONS]Options: -n, --limit N Number of results (default: 5) --json Output as JSON -v, --verbose Show similarity scores and collection source --public-only Search shared_memories only (sandboxed agents) --learnings Search agent_learnings only --all Search all collections (merged results) --collection X Search specific collection by name --legacy Use legacy jasper_memory collection
npx jasper-recall serve [OPTIONS]Options: --port, -p N Port to listen on (default: 3458) --host, -h H Host to bind (default: 127.0.0.1)
Starts HTTP API server for Docker-isolated agents.
Endpoints: GET /recall?q=query&limit=5 Search memories GET /health Health check
Security: public_only=true enforced by default. Set RECALL_ALLOW_PRIVATE=true to allow private queries.
Example (from Docker container):
curl "http://host.docker.internal:3458/recall?q=product+info"
privacy-check "text" # Scan inline text privacy-check --file X # Scan a fileDetects: emails, API keys, internal IPs, home paths, credentials. Returns: CLEAN or list of violations.
sync-shared [OPTIONS]Options: --dry-run Preview without writing --all Process all daily notes
Extracts [public] tagged entries to memory/shared/.
index-digestsIndexes markdown files from: ~/.openclaw/workspace/memory/.md ~/.openclaw/workspace/memory/session-digests/.md ~/.openclaw/workspace/memory/repos/.md ~/.openclaw/workspace/memory/founder-logs/.md
Skips files that haven't changed (content hash check).
digest-sessions [OPTIONS]Options: --dry-run Preview without writing --all Process all sessions (not just new) --recent N Process only N most recent sessions
Set environment variables:
export RECALL_WORKSPACE=~/.openclaw/workspace export RECALL_CHROMA_DB=~/.openclaw/chroma-db export RECALL_SESSIONS_DIR=~/.openclaw/agents/main/sessions
Default settings in index-digests:
⚠️ Review these settings before enabling in production:
The
serve command defaults to 127.0.0.1 (localhost only). Do not use --host 0.0.0.0 unless you explicitly intend to expose the API externally and have secured it appropriately.
The server enforces
public_only=true by default. The env var RECALL_ALLOW_PRIVATE=true bypasses this restriction. Never set this on public/shared hosts — it exposes your private memories to any client.
When
autoRecall: true in the OpenClaw plugin config, memories are automatically injected before every agent message. Consider:
publicOnly: true in plugin config for sandboxed agentsminScore to filter low-relevance injectionsWhat's automatically skipped (no recall triggered):
HEARTBEAT, Read HEARTBEAT.md, HEARTBEAT_OK)NO_REPLY📋 PR Review, 🤖 Codex Watch, ANNOUNCE_*)agent: or worker-Safer config for untrusted contexts:
"jasper-recall": { "enabled": true, "config": { "autoRecall": true, "publicOnly": true, "minScore": 0.5 } }
The following env vars affect behavior — set them explicitly rather than relying on defaults:
| Variable | Default | Purpose |
|---|---|---|
| | Memory files location |
| | Vector database path |
| | Session logs |
| | Server private access |
| | Server port |
| | Server bind address |
Before sharing or syncing, use dry-run options to preview what will be exposed:
privacy-check --file notes.md # Scan for sensitive data sync-shared --dry-run # Preview public extraction digest-sessions --dry-run # Preview session processing
For maximum isolation, run jasper-recall in a container or dedicated account:
"No index found"
index-digests # Create the index first
"Collection not found"
rm -rf ~/.openclaw/chroma-db # Clear and rebuild index-digests
Model download slow First run downloads ~80MB model. Subsequent runs are instant.
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.