{"skill":{"slug":"claw-recall","displayName":"Claw Recall","summary":"Searchable conversation memory that survives context compaction. Indexes session transcripts into SQLite with full-text and semantic search so your agent can...","description":"---\nname: claw-recall\ndescription: \"Searchable conversation memory that survives context compaction. Indexes session transcripts into SQLite with full-text and semantic search so your agent can recover context after compaction, search past conversations, and find what other agents discussed. Works across multiple agents (OpenClaw + Claude Code). Also indexes Gmail, Google Drive, and Slack. Self-hosted, open source, no cloud dependency. Use when: recovering lost context, searching conversation history, cross-agent knowledge sharing. NOT for: replacing MEMORY.md or storing secrets.\"\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🧠\",\n        \"requires\": { \"bins\": [\"python3\", \"pip3\"] },\n        \"env\": [\n          { \"key\": \"OPENAI_API_KEY\", \"description\": \"OpenAI API key for semantic search (optional, keyword search works without it)\", \"required\": false },\n          { \"key\": \"PYTHONPATH\", \"description\": \"Path to claw-recall installation directory\", \"required\": true }\n        ],\n        \"tags\": [\"memory\", \"search\", \"recall\", \"conversation\", \"context\", \"compaction\", \"multi-agent\"],\n        \"homepage\": \"https://github.com/rodbland2021/claw-recall\",\n        \"community\": \"https://discord.gg/4wGTVa9Bt6\"\n      }\n  }\n---\n\n# Claw Recall — Searchable Conversation Memory for AI Agents\n\nYour agent just lost context mid-task. The decision you made an hour ago? Gone. What your other agent figured out yesterday? Unreachable. Claw Recall fixes this by indexing every conversation into a searchable database your agents can query anytime.\n\n## The Problem\n\nContext compaction drops critical decisions. Cross-session knowledge vanishes. Long conversations push early context out of the window. If you run multiple agents, they can't access each other's conversations at all. MEMORY.md helps with preferences, but it can't answer \"what exactly did we discuss about the API last Tuesday?\"\n\n## What Claw Recall Does\n\n- **Post-compaction recovery**: Get the full transcript from before compaction wiped your context\n- **Cross-agent search**: Any agent can search any other agent's conversations\n- **Unified search**: Conversations, captured thoughts, Gmail, Google Drive, and Slack in one query\n- **Hybrid search**: Keyword (FTS5) + semantic (OpenAI embeddings) with automatic detection\n- **Self-hosted**: Your data stays on your machine. No cloud, no subscription, no vendor lock-in.\n\n## Installation\n\nClaw Recall is an MCP server. Install the Python package, then connect it to your agent.\n\n```bash\ngit clone https://github.com/rodbland2021/claw-recall.git\ncd claw-recall\npip install -r requirements.txt\npython3 -m claw_recall.indexing.indexer --source ~/.openclaw/agents-archive/ --incremental\n```\n\nFull setup guide: https://github.com/rodbland2021/claw-recall#quick-start\n\n### Connect via MCP (OpenClaw)\n\nAdd to your OpenClaw config (`~/.openclaw/openclaw.json` or agent config):\n\n```json\n{\n  \"mcpServers\": {\n    \"claw-recall\": {\n      \"command\": \"python3\",\n      \"args\": [\"-m\", \"claw_recall.api.mcp_stdio\"],\n      \"env\": { \"PYTHONPATH\": \"/path/to/claw-recall\" }\n    }\n  }\n}\n```\n\n### Connect via MCP (Claude Code)\n\nAdd to `~/.claude.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"claw-recall\": {\n      \"command\": \"python3\",\n      \"args\": [\"-m\", \"claw_recall.api.mcp_stdio\"],\n      \"env\": { \"PYTHONPATH\": \"/path/to/claw-recall\" }\n    }\n  }\n}\n```\n\n### Remote agents (SSE)\n\nStart the SSE server on the Claw Recall machine, then connect from anywhere:\n\n```bash\npython3 -m claw_recall.api.mcp_sse\n```\n\n```bash\nclaude mcp add --transport sse -s user claw-recall \"http://your-server:8766/sse\"\n```\n\n## MCP Tools Reference\n\n### Primary Tools (use these most)\n\n**`search_memory`** — The main search tool. Searches ALL sources in one call: conversations, captured thoughts (Gmail, Drive, Slack), and markdown files.\n\n```\nsearch_memory query=\"what did we decide about the API\" [agent=butler] [days=7]\n```\n\nOptional params: `agent` (filter by agent name), `days` (limit to recent), `force_semantic` (use embeddings), `force_keyword` (use FTS5 only), `convos_only`, `files_only`, `limit`.\n\n**`browse_recent`** — Full transcript of the last N minutes. The go-to tool for context recovery after compaction.\n\n```\nbrowse_recent [agent=kit] [minutes=30]\n```\n\nReturns the complete conversation with timestamps. Use this FIRST after any context reset.\n\n**`capture_thought`** — Save an insight, decision, or finding so any agent can find it later.\n\n```\ncapture_thought content=\"SQLite WAL mode requires checkpoint for readers to see writes\" [agent=kit]\n```\n\n### Secondary Tools\n\n| Tool | Purpose |\n|------|---------|\n| `search_thoughts` | Search captured thoughts only (usually `search_memory` is better) |\n| `browse_activity` | Session summaries across agents for a time period |\n| `poll_sources` | Trigger Gmail/Drive/Slack polling on demand |\n| `memory_stats` | Database statistics (indexed sessions, messages, embeddings) |\n| `capture_source_status` | Check external source capture health |\n\n## When to Use Each Tool\n\n| Situation | Tool | Example |\n|-----------|------|---------|\n| Just restarted / lost context | `browse_recent` | \"What was I working on?\" |\n| Looking for a past decision | `search_memory` | \"What did we decide about pricing?\" |\n| Need another agent's work | `search_memory` with `agent=` | \"What did atlas find about the schema?\" |\n| Found something worth sharing | `capture_thought` | Save a reusable insight |\n| Checking if something was discussed | `search_memory` with `days=` | \"Did we talk about X this week?\" |\n| External source check | `poll_sources` | Trigger Gmail/Drive/Slack re-scan |\n\n## How It Works\n\n```\nSession Files (.jsonl) → Indexer → SQLite DB (FTS5 + vectors) → MCP Tools\n                                        ↑\nGmail / Drive / Slack → Source Poller ───┘\n```\n\nAll data is stored locally in a SQLite database. Keyword search uses FTS5 (zero API keys). Semantic search uses OpenAI embeddings (requires `OPENAI_API_KEY` in `.env`).\n\n## Requirements\n\n- Python 3.10+\n- SQLite 3.35+ (bundled with Python)\n- OpenAI API key (optional, only for semantic search)\n\n## Links\n\n- **GitHub**: https://github.com/rodbland2021/claw-recall\n- **Discord**: https://discord.gg/4wGTVa9Bt6\n- **Full Guide**: https://github.com/rodbland2021/claw-recall/blob/master/docs/guide.md\n- **Changelog**: https://github.com/rodbland2021/claw-recall/blob/master/CHANGELOG.md\n","tags":{"compaction":"2.1.2","context":"2.1.2","conversation":"2.1.2","latest":"2.1.2","memory":"2.1.2","multi-agent":"2.1.2","recall":"2.1.2","search":"2.1.2"},"stats":{"comments":0,"downloads":789,"installsAllTime":0,"installsCurrent":0,"stars":1,"versions":3},"createdAt":1772918977045,"updatedAt":1779077787567},"latestVersion":{"version":"2.1.2","createdAt":1772920550420,"changelog":"Improved description for better discoverability. Clearer problem statement.","license":null},"metadata":{"setup":[],"os":null,"systems":null},"owner":{"handle":"rodbland2021","userId":"s17ewa9yc2ndzjvsndsrgj4tqs885c2y","displayName":"Rod","image":"https://avatars.githubusercontent.com/u/86267410?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780089795048}}