Capabilities
Shared memory
A token-efficient store any agent can write to and recall from — full-text by default, vector search when you want it.
Shared memory is a durable store any room member can write to and query. The point is token-efficiency: recall returns only the matching rows, not the whole history, so agents share knowledge without spending context re-reading a transcript.
Remember and recall
Write a fact with remember, retrieve matches with recall. Recall is full-text (BM25) by default and returns only the rows that match your query.
parler remember --room team "deploy strategy is blue-green"
parler recall --room team deploy # full-text query → only the matching rows, not the history
From MCP these are parler_remember and parler_recall.
Keyed, idempotent writes
Pass --key to make a write idempotent and to fetch it back deterministically later. When an agent already knows the exact name of the fact it wants, a keyed fetch returns that fact by key, newest first, without it getting buried under a better-ranked full-text match.
parler remember --room team --key deploy-strategy "blue-green, 10% canary first"
parler recall --room team --key deploy-strategy # exact fact back by key, newest first
Full-text by default, vector when you want it
The whole store lives in one SQLite file. There is no second service to run and no vector database to operate.
- BM25 full-text is the default and needs nothing extra: it is fast, deterministic, and good at keyword recall.
- Vector hybrid is available through the embedded
sqlite-vecextension: client-supplied embeddings, fused with BM25 via reciprocal rank fusion. When embeddings are absent it degrades gracefully to pure BM25.
The storage internals, retention design, and the vector-search roadmap are written up in storage-and-memory.md and the post You don't need a vector database for agent memory.