{
  "schemaVersion": "1.0",
  "item": {
    "slug": "jasper-recall",
    "name": "Jasper Recall",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/emberDesire/jasper-recall",
    "canonicalUrl": "https://clawhub.ai/emberDesire/jasper-recall",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/jasper-recall",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=jasper-recall",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "README.md",
      "SKILL.md",
      "WORK-QUEUE.md",
      "cli/config.js",
      "cli/doctor.js"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/jasper-recall"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/jasper-recall",
    "agentPageUrl": "https://openagent3.xyz/skills/jasper-recall/agent",
    "manifestUrl": "https://openagent3.xyz/skills/jasper-recall/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/jasper-recall/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Jasper Recall v0.2.3",
        "body": "Local RAG (Retrieval-Augmented Generation) system for AI agent memory. Gives your agent the ability to remember and search past conversations.\n\nNew in v0.2.2: Shared ChromaDB Collections — separate collections for private, shared, and learnings content. Better isolation for multi-agent setups.\n\nNew in v0.2.1: Recall Server — HTTP API for Docker-isolated agents that can't run CLI directly.\n\nNew in v0.2.0: Shared Agent Memory — bidirectional learning between main and sandboxed agents with privacy controls."
      },
      {
        "title": "When to Use",
        "body": "Memory recall: Search past sessions for context before answering\nContinuous learning: Index daily notes and decisions for future reference\nSession continuity: Remember what happened across restarts\nKnowledge base: Build searchable documentation from your agent's experience"
      },
      {
        "title": "Setup",
        "body": "One command installs everything:\n\nnpx jasper-recall setup\n\nThis creates:\n\nPython venv at ~/.openclaw/rag-env\nChromaDB database at ~/.openclaw/chroma-db\nCLI scripts in ~/.local/bin/\nOpenClaw plugin config in openclaw.json"
      },
      {
        "title": "Why Python?",
        "body": "The core search and embedding functionality uses Python libraries:\n\nChromaDB — Vector database for semantic search\nsentence-transformers — Local embedding models (no API needed)\n\nThese are the gold standard for local RAG. There are no good Node.js equivalents that work fully offline."
      },
      {
        "title": "Why a Separate Venv?",
        "body": "The venv at ~/.openclaw/rag-env provides:\n\nBenefitWhy It MattersIsolationWon't conflict with your other Python projectsNo sudoInstalls to your home directory, no root neededClean uninstallDelete the folder and it's goneReproducibilitySame versions everywhere\n\nThe dependencies are heavy (~200MB total with the embedding model), but this is a one-time download that runs entirely locally."
      },
      {
        "title": "Basic Usage",
        "body": "Search your memory:\n\nrecall \"what did we decide about the API design\"\nrecall \"hopeIDS patterns\" --limit 10\nrecall \"meeting notes\" --json\n\nIndex your files:\n\nindex-digests  # Index memory files into ChromaDB\n\nCreate session digests:\n\ndigest-sessions          # Process new sessions\ndigest-sessions --dry-run  # Preview what would be processed"
      },
      {
        "title": "Three Components",
        "body": "digest-sessions — Extracts key info from session logs (topics, tools used)\nindex-digests — Chunks and embeds markdown files into ChromaDB\nrecall — Semantic search across your indexed memory"
      },
      {
        "title": "What Gets Indexed",
        "body": "By default, indexes files from ~/.openclaw/workspace/memory/:\n\n*.md — Daily notes, MEMORY.md\nsession-digests/*.md — Session summaries\nrepos/*.md — Project documentation\nfounder-logs/*.md — Development logs (if present)"
      },
      {
        "title": "Embedding Model",
        "body": "Uses sentence-transformers/all-MiniLM-L6-v2:\n\n384-dimensional embeddings\n~80MB download on first run\nRuns locally, no API needed"
      },
      {
        "title": "Memory-Augmented Responses",
        "body": "# Before answering questions about past work\nresults = exec(\"recall 'project setup decisions' --json\")\n# Include relevant context in your response"
      },
      {
        "title": "Automated Indexing (Heartbeat)",
        "body": "Add to HEARTBEAT.md:\n\n## Memory Maintenance\n- [ ] New session logs? → `digest-sessions`\n- [ ] Memory files updated? → `index-digests`"
      },
      {
        "title": "Cron Job",
        "body": "Schedule regular indexing:\n\n{\n  \"schedule\": { \"kind\": \"cron\", \"expr\": \"0 */6 * * *\" },\n  \"payload\": {\n    \"kind\": \"agentTurn\",\n    \"message\": \"Run index-digests to update the memory index\"\n  },\n  \"sessionTarget\": \"isolated\"\n}"
      },
      {
        "title": "Shared Agent Memory (v0.2.0+)",
        "body": "For multi-agent setups where sandboxed agents need access to some memories:"
      },
      {
        "title": "Memory Tagging",
        "body": "Tag entries in daily notes:\n\n## 2026-02-05 [public] - Feature shipped\nThis is visible to all agents.\n\n## 2026-02-05 [private] - Personal note\nThis is main agent only (default if untagged).\n\n## 2026-02-05 [learning] - Pattern discovered\nLearnings shared bidirectionally between agents."
      },
      {
        "title": "ChromaDB Collections (v0.2.2+)",
        "body": "Memory is stored in separate collections for isolation:\n\nCollectionPurposeWho accessesprivate_memoriesMain agent's private contentMain agent onlyshared_memories[public] tagged contentSandboxed agentsagent_learningsLearnings from any agentAll agentsjasper_memoryLegacy unified (backward compat)Fallback\n\nCollection selection:\n\n# Main agent (default) - searches private_memories\nrecall \"api design\"\n\n# Sandboxed agents - searches shared_memories only\nrecall \"product info\" --public-only\n\n# Search learnings only\nrecall \"patterns\" --learnings\n\n# Search all collections (merged results)\nrecall \"everything\" --all\n\n# Specific collection\nrecall \"something\" --collection private_memories\n\n# Legacy mode (single collection)\nrecall \"old way\" --legacy"
      },
      {
        "title": "Sandboxed Agent Access",
        "body": "# Sandboxed agents use --public-only\nrecall \"product info\" --public-only\n\n# Main agent can see everything\nrecall \"product info\""
      },
      {
        "title": "Moltbook Agent Setup (v0.4.0+)",
        "body": "For the moltbook-scanner (or any sandboxed agent), use the built-in setup:\n\n# Configure sandboxed agent with --public-only restriction\nnpx jasper-recall moltbook-setup\n\n# Verify the setup is correct\nnpx jasper-recall moltbook-verify\n\nThis creates:\n\n~/bin/recall — Wrapper that forces --public-only flag\nshared/ — Symlink to main workspace's shared memory\n\nThe sandboxed agent can then use:\n\n~/bin/recall \"query\"  # Automatically restricted to public memories\n\nPrivacy model:\n\nMain agent tags memories as [public] or [private] in daily notes\nsync-shared extracts [public] content to memory/shared/\nSandboxed agents can ONLY search the shared collection"
      },
      {
        "title": "Privacy Workflow",
        "body": "# Check for sensitive data before sharing\nprivacy-check \"text to scan\"\nprivacy-check --file notes.md\n\n# Extract [public] entries to shared directory\nsync-shared\nsync-shared --dry-run  # Preview first"
      },
      {
        "title": "recall",
        "body": "recall \"query\" [OPTIONS]\n\nOptions:\n  -n, --limit N     Number of results (default: 5)\n  --json            Output as JSON\n  -v, --verbose     Show similarity scores and collection source\n  --public-only     Search shared_memories only (sandboxed agents)\n  --learnings       Search agent_learnings only\n  --all             Search all collections (merged results)\n  --collection X    Search specific collection by name\n  --legacy          Use legacy jasper_memory collection"
      },
      {
        "title": "serve (v0.2.1+)",
        "body": "npx jasper-recall serve [OPTIONS]\n\nOptions:\n  --port, -p N    Port to listen on (default: 3458)\n  --host, -h H    Host to bind (default: 127.0.0.1)\n\nStarts HTTP API server for Docker-isolated agents.\n\nEndpoints:\n  GET /recall?q=query&limit=5    Search memories\n  GET /health                    Health check\n\nSecurity: public_only=true enforced by default.\nSet RECALL_ALLOW_PRIVATE=true to allow private queries.\n\nExample (from Docker container):\n\ncurl \"http://host.docker.internal:3458/recall?q=product+info\""
      },
      {
        "title": "privacy-check (v0.2.0+)",
        "body": "privacy-check \"text\"     # Scan inline text\nprivacy-check --file X   # Scan a file\n\nDetects: emails, API keys, internal IPs, home paths, credentials.\nReturns: CLEAN or list of violations."
      },
      {
        "title": "sync-shared (v0.2.0+)",
        "body": "sync-shared [OPTIONS]\n\nOptions:\n  --dry-run    Preview without writing\n  --all        Process all daily notes\n\nExtracts [public] tagged entries to memory/shared/."
      },
      {
        "title": "index-digests",
        "body": "index-digests\n\nIndexes markdown files from:\n  ~/.openclaw/workspace/memory/*.md\n  ~/.openclaw/workspace/memory/session-digests/*.md\n  ~/.openclaw/workspace/memory/repos/*.md\n  ~/.openclaw/workspace/memory/founder-logs/*.md\n\nSkips files that haven't changed (content hash check)."
      },
      {
        "title": "digest-sessions",
        "body": "digest-sessions [OPTIONS]\n\nOptions:\n  --dry-run    Preview without writing\n  --all        Process all sessions (not just new)\n  --recent N   Process only N most recent sessions"
      },
      {
        "title": "Custom Paths",
        "body": "Set environment variables:\n\nexport RECALL_WORKSPACE=~/.openclaw/workspace\nexport RECALL_CHROMA_DB=~/.openclaw/chroma-db\nexport RECALL_SESSIONS_DIR=~/.openclaw/agents/main/sessions"
      },
      {
        "title": "Chunking",
        "body": "Default settings in index-digests:\n\nChunk size: 500 characters\nOverlap: 100 characters"
      },
      {
        "title": "Security Considerations",
        "body": "⚠️ Review these settings before enabling in production:"
      },
      {
        "title": "Server Binding",
        "body": "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."
      },
      {
        "title": "Private Memory Access",
        "body": "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."
      },
      {
        "title": "autoRecall Plugin",
        "body": "When autoRecall: true in the OpenClaw plugin config, memories are automatically injected before every agent message. Consider:\n\nSet publicOnly: true in plugin config for sandboxed agents\nReview which collections will be searched\nUse minScore to filter low-relevance injections\n\nWhat's automatically skipped (no recall triggered):\n\nHeartbeat polls (HEARTBEAT, Read HEARTBEAT.md, HEARTBEAT_OK)\nMessages containing NO_REPLY\nMessages < 10 characters\nAgent-to-agent messages (cron jobs, workers, spawned agents)\nAutomated reports (📋 PR Review, 🤖 Codex Watch, ANNOUNCE_*)\nMessages from senders starting with agent: or worker-\n\nSafer config for untrusted contexts:\n\n\"jasper-recall\": {\n  \"enabled\": true,\n  \"config\": {\n    \"autoRecall\": true,\n    \"publicOnly\": true,\n    \"minScore\": 0.5\n  }\n}"
      },
      {
        "title": "Environment Variables",
        "body": "The following env vars affect behavior — set them explicitly rather than relying on defaults:\n\nVariableDefaultPurposeRECALL_WORKSPACE~/.openclaw/workspaceMemory files locationRECALL_CHROMA_DB~/.openclaw/chroma-dbVector database pathRECALL_SESSIONS_DIR~/.openclaw/agents/main/sessionsSession logsRECALL_ALLOW_PRIVATEfalseServer private accessRECALL_PORT3458Server portRECALL_HOST127.0.0.1Server bind address"
      },
      {
        "title": "Dry-Run First",
        "body": "Before sharing or syncing, use dry-run options to preview what will be exposed:\n\nprivacy-check --file notes.md     # Scan for sensitive data\nsync-shared --dry-run             # Preview public extraction\ndigest-sessions --dry-run         # Preview session processing"
      },
      {
        "title": "Sandboxed Environments",
        "body": "For maximum isolation, run jasper-recall in a container or dedicated account:\n\nLimits risk of accidental data exposure\nSeparates private memory from shared contexts\nRecommended for multi-agent setups with untrusted agents"
      },
      {
        "title": "Troubleshooting",
        "body": "\"No index found\"\n\nindex-digests  # Create the index first\n\n\"Collection not found\"\n\nrm -rf ~/.openclaw/chroma-db  # Clear and rebuild\nindex-digests\n\nModel download slow\nFirst run downloads ~80MB model. Subsequent runs are instant."
      },
      {
        "title": "Links",
        "body": "GitHub: https://github.com/E-x-O-Entertainment-Studios-Inc/jasper-recall\nnpm: https://www.npmjs.com/package/jasper-recall\nClawHub: https://clawhub.ai/skills/jasper-recall"
      }
    ],
    "body": "Jasper Recall v0.2.3\n\nLocal RAG (Retrieval-Augmented Generation) system for AI agent memory. Gives your agent the ability to remember and search past conversations.\n\nNew in v0.2.2: Shared ChromaDB Collections — separate collections for private, shared, and learnings content. Better isolation for multi-agent setups.\n\nNew in v0.2.1: Recall Server — HTTP API for Docker-isolated agents that can't run CLI directly.\n\nNew in v0.2.0: Shared Agent Memory — bidirectional learning between main and sandboxed agents with privacy controls.\n\nWhen to Use\nMemory recall: Search past sessions for context before answering\nContinuous learning: Index daily notes and decisions for future reference\nSession continuity: Remember what happened across restarts\nKnowledge base: Build searchable documentation from your agent's experience\nQuick Start\nSetup\n\nOne command installs everything:\n\nnpx jasper-recall setup\n\n\nThis creates:\n\nPython venv at ~/.openclaw/rag-env\nChromaDB database at ~/.openclaw/chroma-db\nCLI scripts in ~/.local/bin/\nOpenClaw plugin config in openclaw.json\nWhy Python?\n\nThe core search and embedding functionality uses Python libraries:\n\nChromaDB — Vector database for semantic search\nsentence-transformers — Local embedding models (no API needed)\n\nThese are the gold standard for local RAG. There are no good Node.js equivalents that work fully offline.\n\nWhy a Separate Venv?\n\nThe venv at ~/.openclaw/rag-env provides:\n\nBenefit\tWhy It Matters\nIsolation\tWon't conflict with your other Python projects\nNo sudo\tInstalls to your home directory, no root needed\nClean uninstall\tDelete the folder and it's gone\nReproducibility\tSame versions everywhere\n\nThe dependencies are heavy (~200MB total with the embedding model), but this is a one-time download that runs entirely locally.\n\nBasic Usage\n\nSearch your memory:\n\nrecall \"what did we decide about the API design\"\nrecall \"hopeIDS patterns\" --limit 10\nrecall \"meeting notes\" --json\n\n\nIndex your files:\n\nindex-digests  # Index memory files into ChromaDB\n\n\nCreate session digests:\n\ndigest-sessions          # Process new sessions\ndigest-sessions --dry-run  # Preview what would be processed\n\nHow It Works\nThree Components\ndigest-sessions — Extracts key info from session logs (topics, tools used)\nindex-digests — Chunks and embeds markdown files into ChromaDB\nrecall — Semantic search across your indexed memory\nWhat Gets Indexed\n\nBy default, indexes files from ~/.openclaw/workspace/memory/:\n\n*.md — Daily notes, MEMORY.md\nsession-digests/*.md — Session summaries\nrepos/*.md — Project documentation\nfounder-logs/*.md — Development logs (if present)\nEmbedding Model\n\nUses sentence-transformers/all-MiniLM-L6-v2:\n\n384-dimensional embeddings\n~80MB download on first run\nRuns locally, no API needed\nAgent Integration\nMemory-Augmented Responses\n# Before answering questions about past work\nresults = exec(\"recall 'project setup decisions' --json\")\n# Include relevant context in your response\n\nAutomated Indexing (Heartbeat)\n\nAdd to HEARTBEAT.md:\n\n## Memory Maintenance\n- [ ] New session logs? → `digest-sessions`\n- [ ] Memory files updated? → `index-digests`\n\nCron Job\n\nSchedule regular indexing:\n\n{\n  \"schedule\": { \"kind\": \"cron\", \"expr\": \"0 */6 * * *\" },\n  \"payload\": {\n    \"kind\": \"agentTurn\",\n    \"message\": \"Run index-digests to update the memory index\"\n  },\n  \"sessionTarget\": \"isolated\"\n}\n\nShared Agent Memory (v0.2.0+)\n\nFor multi-agent setups where sandboxed agents need access to some memories:\n\nMemory Tagging\n\nTag entries in daily notes:\n\n## 2026-02-05 [public] - Feature shipped\nThis is visible to all agents.\n\n## 2026-02-05 [private] - Personal note\nThis is main agent only (default if untagged).\n\n## 2026-02-05 [learning] - Pattern discovered\nLearnings shared bidirectionally between agents.\n\nChromaDB Collections (v0.2.2+)\n\nMemory is stored in separate collections for isolation:\n\nCollection\tPurpose\tWho accesses\nprivate_memories\tMain agent's private content\tMain agent only\nshared_memories\t[public] tagged content\tSandboxed agents\nagent_learnings\tLearnings from any agent\tAll agents\njasper_memory\tLegacy unified (backward compat)\tFallback\n\nCollection selection:\n\n# Main agent (default) - searches private_memories\nrecall \"api design\"\n\n# Sandboxed agents - searches shared_memories only\nrecall \"product info\" --public-only\n\n# Search learnings only\nrecall \"patterns\" --learnings\n\n# Search all collections (merged results)\nrecall \"everything\" --all\n\n# Specific collection\nrecall \"something\" --collection private_memories\n\n# Legacy mode (single collection)\nrecall \"old way\" --legacy\n\nSandboxed Agent Access\n# Sandboxed agents use --public-only\nrecall \"product info\" --public-only\n\n# Main agent can see everything\nrecall \"product info\"\n\nMoltbook Agent Setup (v0.4.0+)\n\nFor the moltbook-scanner (or any sandboxed agent), use the built-in setup:\n\n# Configure sandboxed agent with --public-only restriction\nnpx jasper-recall moltbook-setup\n\n# Verify the setup is correct\nnpx jasper-recall moltbook-verify\n\n\nThis creates:\n\n~/bin/recall — Wrapper that forces --public-only flag\nshared/ — Symlink to main workspace's shared memory\n\nThe sandboxed agent can then use:\n\n~/bin/recall \"query\"  # Automatically restricted to public memories\n\n\nPrivacy model:\n\nMain agent tags memories as [public] or [private] in daily notes\nsync-shared extracts [public] content to memory/shared/\nSandboxed agents can ONLY search the shared collection\nPrivacy Workflow\n# Check for sensitive data before sharing\nprivacy-check \"text to scan\"\nprivacy-check --file notes.md\n\n# Extract [public] entries to shared directory\nsync-shared\nsync-shared --dry-run  # Preview first\n\nCLI Reference\nrecall\nrecall \"query\" [OPTIONS]\n\nOptions:\n  -n, --limit N     Number of results (default: 5)\n  --json            Output as JSON\n  -v, --verbose     Show similarity scores and collection source\n  --public-only     Search shared_memories only (sandboxed agents)\n  --learnings       Search agent_learnings only\n  --all             Search all collections (merged results)\n  --collection X    Search specific collection by name\n  --legacy          Use legacy jasper_memory collection\n\nserve (v0.2.1+)\nnpx jasper-recall serve [OPTIONS]\n\nOptions:\n  --port, -p N    Port to listen on (default: 3458)\n  --host, -h H    Host to bind (default: 127.0.0.1)\n\nStarts HTTP API server for Docker-isolated agents.\n\nEndpoints:\n  GET /recall?q=query&limit=5    Search memories\n  GET /health                    Health check\n\nSecurity: public_only=true enforced by default.\nSet RECALL_ALLOW_PRIVATE=true to allow private queries.\n\n\nExample (from Docker container):\n\ncurl \"http://host.docker.internal:3458/recall?q=product+info\"\n\nprivacy-check (v0.2.0+)\nprivacy-check \"text\"     # Scan inline text\nprivacy-check --file X   # Scan a file\n\nDetects: emails, API keys, internal IPs, home paths, credentials.\nReturns: CLEAN or list of violations.\n\nsync-shared (v0.2.0+)\nsync-shared [OPTIONS]\n\nOptions:\n  --dry-run    Preview without writing\n  --all        Process all daily notes\n\nExtracts [public] tagged entries to memory/shared/.\n\nindex-digests\nindex-digests\n\nIndexes markdown files from:\n  ~/.openclaw/workspace/memory/*.md\n  ~/.openclaw/workspace/memory/session-digests/*.md\n  ~/.openclaw/workspace/memory/repos/*.md\n  ~/.openclaw/workspace/memory/founder-logs/*.md\n\nSkips files that haven't changed (content hash check).\n\ndigest-sessions\ndigest-sessions [OPTIONS]\n\nOptions:\n  --dry-run    Preview without writing\n  --all        Process all sessions (not just new)\n  --recent N   Process only N most recent sessions\n\nConfiguration\nCustom Paths\n\nSet environment variables:\n\nexport RECALL_WORKSPACE=~/.openclaw/workspace\nexport RECALL_CHROMA_DB=~/.openclaw/chroma-db\nexport RECALL_SESSIONS_DIR=~/.openclaw/agents/main/sessions\n\nChunking\n\nDefault settings in index-digests:\n\nChunk size: 500 characters\nOverlap: 100 characters\nSecurity Considerations\n\n⚠️ Review these settings before enabling in production:\n\nServer Binding\n\nThe 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.\n\nPrivate Memory Access\n\nThe 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.\n\nautoRecall Plugin\n\nWhen autoRecall: true in the OpenClaw plugin config, memories are automatically injected before every agent message. Consider:\n\nSet publicOnly: true in plugin config for sandboxed agents\nReview which collections will be searched\nUse minScore to filter low-relevance injections\n\nWhat's automatically skipped (no recall triggered):\n\nHeartbeat polls (HEARTBEAT, Read HEARTBEAT.md, HEARTBEAT_OK)\nMessages containing NO_REPLY\nMessages < 10 characters\nAgent-to-agent messages (cron jobs, workers, spawned agents)\nAutomated reports (📋 PR Review, 🤖 Codex Watch, ANNOUNCE_*)\nMessages from senders starting with agent: or worker-\n\nSafer config for untrusted contexts:\n\n\"jasper-recall\": {\n  \"enabled\": true,\n  \"config\": {\n    \"autoRecall\": true,\n    \"publicOnly\": true,\n    \"minScore\": 0.5\n  }\n}\n\nEnvironment Variables\n\nThe following env vars affect behavior — set them explicitly rather than relying on defaults:\n\nVariable\tDefault\tPurpose\nRECALL_WORKSPACE\t~/.openclaw/workspace\tMemory files location\nRECALL_CHROMA_DB\t~/.openclaw/chroma-db\tVector database path\nRECALL_SESSIONS_DIR\t~/.openclaw/agents/main/sessions\tSession logs\nRECALL_ALLOW_PRIVATE\tfalse\tServer private access\nRECALL_PORT\t3458\tServer port\nRECALL_HOST\t127.0.0.1\tServer bind address\nDry-Run First\n\nBefore sharing or syncing, use dry-run options to preview what will be exposed:\n\nprivacy-check --file notes.md     # Scan for sensitive data\nsync-shared --dry-run             # Preview public extraction\ndigest-sessions --dry-run         # Preview session processing\n\nSandboxed Environments\n\nFor maximum isolation, run jasper-recall in a container or dedicated account:\n\nLimits risk of accidental data exposure\nSeparates private memory from shared contexts\nRecommended for multi-agent setups with untrusted agents\nTroubleshooting\n\n\"No index found\"\n\nindex-digests  # Create the index first\n\n\n\"Collection not found\"\n\nrm -rf ~/.openclaw/chroma-db  # Clear and rebuild\nindex-digests\n\n\nModel download slow First run downloads ~80MB model. Subsequent runs are instant.\n\nLinks\nGitHub: https://github.com/E-x-O-Entertainment-Studios-Inc/jasper-recall\nnpm: https://www.npmjs.com/package/jasper-recall\nClawHub: https://clawhub.ai/skills/jasper-recall"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/emberDesire/jasper-recall",
    "publisherUrl": "https://clawhub.ai/emberDesire/jasper-recall",
    "owner": "emberDesire",
    "version": "0.4.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/jasper-recall",
    "downloadUrl": "https://openagent3.xyz/downloads/jasper-recall",
    "agentUrl": "https://openagent3.xyz/skills/jasper-recall/agent",
    "manifestUrl": "https://openagent3.xyz/skills/jasper-recall/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/jasper-recall/agent.md"
  }
}