Releases: RecallWorks/Recall
v0.5.1 — smooth-flow README + MCP Registry marker
Patch release: republishes the package with the v0.5.4 README rewrite (works for one, scales to many) and adds the mcp-name: io.github.recallworks/recall marker required for MCP Registry namespace verification.
No functional code changes from v0.5.0. 22 tools, all 6 coordination tools verified via real MCP wire smoke against the published wheel.
Install: pip install ai-recallworks[mcp]==0.5.1
v0.5.0 — multi-agent coordination wedge
Recall v0.5.0 — multi-agent coordination wedge
The single-agent memory problem (mem0, Letta, Zep) is well-served. The
multi-agent coordination problem isn't. v0.5.0 ships six new MCP
primitives so parallel AI agents can share a brain and stay out of each
other's way.
What's new
Six coordination tools — every one a first in the MCP memory space:
| Tool | Purpose |
|---|---|
claim(resource, agent, ttl, note) |
Soft-lock a file/URL/table with an auto-expiring TTL |
release(resource, agent) |
Drop the lock (soft-archive — audit trail survives) |
who_has(resource) |
"Is anyone editing this right now?" |
claims() |
All active locks across all agents |
handoff(to_agent, from_agent, intent, files, context) |
Explicit work transfer |
pulse_others(self_agent, n, domain) |
Latest checkpoints from agents other than you |
Total tools: 16 → 22. Claims are advisory (like git locks) — well-
behaved clients check before writing. TTLs prevent crashed agents from
freezing a resource forever.
How is this different from mem0 / Letta / Zep?
They're built for one agent across sessions ("remember what the user
said last week"). Recall is built for multiple agents in one session
("don't let agent B overwrite the function agent A is mid-refactoring").
Different problem. Different primitives. Use both — they don't conflict.
Install
pip install "ai-recallworks[mcp]"Then add to your MCP client (Claude Desktop, VS Code, Cursor):
{
"mcpServers": {
"recall": { "command": "recall-mcp" }
}
}Zero config. Embeddings run fully offline (ChromaDB's bundled MiniLM).
Memory lives in ~/.recall/. No API keys required to start.
Numbers
- 6 new MCP tools (440 LOC, single new module)
- 15 new unit tests, full suite 117/117 green
- End-to-end MCP-wire smoke (real
recall-mcp.exe, clean venv install)
PASSED on all 6 tools: claim → blocked → who_has → release →
re-claim → handoff → claims-list - wheel 59 KB, sdist 77 KB, MIT license, zero new runtime deps
Compatibility
Backward-compatible with v0.4.0 — all existing 16 tools unchanged.
Storage layout unchanged. Existing ~/.recall/ stores work as-is.
Known debt
checkpoint()chunk_id hashes from timestamp only — collision risk on
rapid same-microsecond writes. Harmless in single-agent flows;
worth fixing before high-fanout multi-agent.- Coordination tools tested at 3 agents in one process. Not yet
load-tested at 10+ concurrent OS processes against shared ChromaDB.
Full diff
Recall v0.1.0 - alpha public release
Initial public release of Recall, an open-source memory server for AI agents.
What's in the box
- 13 memory tools:
remember,recall,reflect,anti_pattern,checkpoint,pulse,session_close,index_file,reindex,snapshot_index,memory_stats,forget,maintenance. - Two transports: plain HTTP (
POST /tool/{name}) and MCP over SSE. - BYO embedder (default Chroma / OpenAI / Ollama) and BYO summarizer (noop / OpenAI / Ollama).
- Append-only artifacts + auto-snapshot.
forgetis soft-archive by design. - One Docker image:
ghcr.io/recallworks/recall:0.1.0.
Install
docker run -d --name recall -p 8787:8787 -e API_KEY=changeme -v recall-data:/data ghcr.io/recallworks/recall:0.1.0Provenance
Extracted from a hosted production memory server that has served thousands of agent sessions, then sanitized of org-specific paths, extensions, and tenant data.
Status
Alpha. Pin the image tag. Breaking changes possible before 1.0.
TypeScript SDK v0.2.0 — Real server contract
BREAKING CHANGE. 0.1.0 was published with a fictional API. This rewrite matches the real Recall server contract verified end-to-end against ghcr.io/recallworks/recall:0.1.0.
Install
npm install @recallworks/recall-clientQuick start
import { RecallClient } from ""@recallworks/recall-client"";
const c = new RecallClient({ baseUrl: ""http://localhost:8787"", apiKey: ""changeme"" });
await c.remember(""dark mode preferred"", { tags: ""pref,ui"" });
console.log((await c.recall(""preferences"", { n: 3 })).result);What changed
- Auth header:
X-API-Key(wasAuthorization: Bearer) - Every tool returns
ToolResponse { result, tool, by }— markdown, not structured Hits recall(query, { n, type })— usesnnotlimitremember(content, { tags: 'a,b' })— tags is COMMA-SEPARATED STRINGforget(source)takes a source label and soft-archives- All 13 server tools as typed methods + generic
callTool()escape hatch - Sigstore provenance enabled
Migration
Replace hits[i].score / .content access with parsing of response.result (markdown).
See PR #15.
Python SDK v0.2.0 — Real server contract
BREAKING CHANGE. 0.1.0 was published with a fictional API. This rewrite matches the real Recall server contract verified end-to-end against ghcr.io/recallworks/recall:0.1.0.
Install
pip install --upgrade recall-clientQuick start
from recall_client import RecallClient
with RecallClient(""http://localhost:8787"", api_key=""changeme"") as c:
c.remember(""dark mode preferred"", tags=""pref,ui"")
print(c.recall(""preferences"", n=3).result)What changed
- Auth header:
X-API-Key(wasAuthorization: Bearer) - Every tool returns
ToolResponse(result, tool, by)— markdown, not structured Hits recall(query, n=5, type='all')— usesnnotlimitremember(content, source='agent-observation', tags='')— tags is COMMA-SEPARATED STRINGforget(source)takes a source label and soft-archives (no chunk-id deletes)- All 13 server tools have typed wrappers + generic
call_tool()escape hatch - Killed fictional types:
Hit,RememberResult
Migration
Replace hits[i].score / .content access with parsing of response.result (markdown).
See PR #15 for full details.