Get a single-tenant Recall server running and storing memories in under five minutes.
docker run -d --name recall \
-p 8787:8787 \
-e API_KEY=changeme \
-v recall-data:/data \
ghcr.io/recallworks/recall:latestBuilding from source instead? See docker/README.md.
curl http://localhost:8787/health
# {"status":"ok","chunks":0,"ready":true,"min_expected":0}curl -X POST http://localhost:8787/tool/remember \
-H "X-API-Key: changeme" \
-H "Content-Type: application/json" \
-d '{"content":"Postgres connection pool maxes at 20 by default","source":"team-discovery","tags":"db,perf"}'curl -X POST http://localhost:8787/tool/recall \
-H "X-API-Key: changeme" \
-H "Content-Type: application/json" \
-d '{"query":"connection pool size","n":3}'Pick a transport:
- MCP / SSE — for clients that speak the Model Context Protocol (Copilot
Chat with MCP, Claude Desktop, Cursor, etc). Endpoint:
/sse. - Plain HTTP — for any other agent. POST to
/tool/{name}with a JSON body.
See conventions/cold-start-ritual.md for the opening protocol every session should run.
Thirteen tools backed by ChromaDB:
| Tool | Purpose |
|---|---|
recall |
Semantic search across all memory |
remember |
Store a free-form observation |
reflect |
Store a structured reasoning artifact (hypothesis → result) |
anti_pattern |
Store a "looks-right-but-isn't" warning |
checkpoint |
Snapshot working state (intent / established / pursuing / open) |
pulse |
Read back the latest checkpoint + reasoning + anti-patterns |
session_close |
End-of-session reflection |
reindex |
Re-scan files into the store |
index_file |
Index one file |
memory_stats |
Counts and source list |
forget |
Archive (not delete) all chunks from a source |
snapshot_index |
Persist the live store to durable storage |
maintenance |
git pull → reindex → warm query → snapshot |
- Conventions — the routing.md / pulse / branding patterns
- Docker guide — production-ish single-tenant setup
- Architecture — what's inside