A living memory for every user.
Store facts as a knowledge graph, recall grounded answers with citations, and grow sharper with everyone who uses your app — no more forgetting between sessions.
Remember anything — per user.
Store a fact, a document, or a whole conversation. Each end-user gets their own scoped memory, and text, PDF, images, and audio all flow through the same funnel.
- Per-user scope — one line, fully isolated
- Facts extracted from raw conversations
- Multimodal ingest — text, PDF, image, audio
- Content-addressed — same input never re-processed
const user = tr.scope(userId);
await user.remember("Maya moved her DB to Neon on Jun 3.");
await user.remember(pdfBuffer, { name: "budget.pdf" });Recall with proof — or silence.
Answers come only from what can be cited. Dense vectors, lexical search, and a cross-encoder reranker are fused so the right fact surfaces — in under 200ms.
- Grounded, cited answers — verified or silent
- Hybrid retrieval + cross-encoder rerank
- Sub-200ms recall, co-located with your app
- A knowledge graph, not raw chunks
const { answer, cites } = await user.ask(
"What database does Maya use?"
);
// answer: "Neon" · cites: [{ source, span }]It changes its mind when the facts do.
Most systems pile up contradictions. ThinkingRoot tracks when each fact was true, supersedes the old one, and can forget on command — something you can never truly do with knowledge baked into model weights.
Knows what was true, and when — the old fact is dated, not overwritten.
A newer fact replaces an older one; recall returns the current answer.
Remove a fact and every answer that depended on it is evicted too.
Eight cognitive verbs.
Memory is only the start. The same graph learns from what gets used, consolidates while idle, predicts what's next, and forks like git.
- remember · recall — store and ground
- learn · sleep — improve from usage
- dream · predict — consolidate and foresee
- fork · merge — branch memory safely