Memories, not documents
A claim with evidence behind it, the people it involves, and the window it was true for. Search returns the claim, not the paragraph it hid in.
Capture what was said, keep what it meant, and find it months later from any assistant you use.
01 / 04
A forwarded email, a scanned invoice, a voice note, a page of meeting notes. Nothing is filled in by hand and nothing is tagged. The system takes the material in whatever shape it turns up in.
Not keywords. Statements a person could disagree with — a decision, a commitment, a preference — each carrying where it came from, so anything built on it can be traced back to the sentence that said it.
The same fact stated three times in three places becomes one memory with three sources and more confidence. A fact that contradicts an older one does not overwrite it: the older one is marked as no longer current and kept.
Months later, a search that shares none of the original wording still reaches it — through what it is about rather than what it said.
Four memories, two of them overtaken by later ones. A search returns the best-matching line; this returns what is true now and says what used to be.
Memories retrieved
Team is considering Bedrock for model access.
Team decided to use Amazon Bedrock.
Bedrock implementation completed.
Team later moved to another provider.
What it worked out
Run the query to watch it resolve.
Every chat starts from nothing. PersistMemory sits underneath, keeping what matters and handing it back when it is relevant.
Gmail, Drive, Slack, Teams, WhatsApp and Meet. Or point an assistant at the MCP server and let it write memories as you talk.
Decisions, tasks, commitments and the people involved. Not a transcript you have to search, a set of claims you can query.
When something changes, the old memory is superseded rather than overwritten, so you can still see what was true in March.
A claim with evidence behind it, the people it involves, and the window it was true for. Search returns the claim, not the paragraph it hid in.
When two sources disagree, you are told, rather than served whichever ranked higher.
A memory filed in one Space never answers a question scoped to another.
First-party SDKs for TypeScript and Python, an HTTP API underneath both, and an MCP server for assistants that would rather do it themselves.
SDK referenceimport { PersistMemory } from "@persistmemory/sdk";
const pm = new PersistMemory({ apiKey: process.env.PM_KEY });
await pm.memories.remember({
text: "We moved the vector index onto pgvector. Priya raised egress cost.",
spaceIds: ["architecture"]
});
const { results } = await pm.search.query({
query: "why did we leave the hosted index"
});