Recall
Durable context for the next agent session, with one local store and a history I can inspect.
Why
I wanted coding agents to pick up useful decisions and lessons across sessions without treating a transcript dump as memory. The next agent needs context it can find, place in the right project, and check against current evidence.
My work on Recall spans the original implementation and the current local version: project namespaces, semantic retrieval, revision-aware writes, lifecycle hooks, and backup/restore. This case study describes my personal implementation and contributions; a separate employer variant has its own development history.
How it’s built
A Python CLI and stdio MCP server call the same operation layer over one canonical local SQLite database. Multiple local agents can share typed memories, project namespaces, and relationship links. Hybrid retrieval combines FTS5/BM25 with local FastEmbed vectors; agent and session provenance make records traceable.
Optional expected revisions reject stale edits. Memory changes and the hash-chained mutation audit commit together, while an embedding failure does not discard a durable write. Encrypted backups restore into a separate candidate database for validation.
Recall ships a bundled dream skill for keeping the store tidy over time. An agent runs it: it checks each memory against the code, git history and session record, merges duplicates, soft-deletes memories the code has made untrue, and demotes claims it cannot verify. Recall stays LLM-free; the host agent does the reasoning and drives Recall through the CLI, and every change is a supersession or soft delete that lands in the audit chain.
I run Recall locally. It serves stdio MCP, with no network-hosted API in the current runtime. The earlier hosted experiment is archived; sharing context among agents on this machine does not imply concurrent writers across multiple machines.
- Shared local agent memory with stable project/global namespaces and typed relationships
- Full-text, vector, and hybrid search using a cached local embedding model
- Agent/session provenance, supersession history, and tamper-evident mutation audit
- Optional revision guards for competing local agent edits
- Codex and Copilot lifecycle hooks for context retrieval, with memory review forced at most every few turns
- Bundled dream skill: an agent-run consolidation pass that merges duplicates, prunes stale memories and demotes anything it cannot verify
- `recall view` opens the store in Curio for reading, editing, review and a brain map, with every change still going through the CLI
- Encrypted SQLite backup and validation before accepting an isolated restore
Demo
Screenshots
Links
Used as personal local agent memory, verified September 2026. Source and local CLI/MCP behaviour are inspectable; this is not a hosted multi-machine service. Runtime hook activation is client-specific.