It remembers,
and it can show its work.
Most tools call a pile of embeddings a memory. This one keeps when you learned something, when it was true, where it came from and how sure it is — and it keeps the old answer when the new one arrives.
The model is not the memory.
The language model is rented compute. It interprets, summarises, reasons and writes — and it forgets the moment the tab closes. Swapping it should cost you nothing, which is only true if it was never the thing holding your world.
So the brain owns the parts that have to survive: persistent memory with real timestamps, a graph of the people and projects you deal with, confidence and importance scores, contradiction detection, the loops you left open, and the retrieval that assembles all of it before the model sees a single word.
USER ──► WORKSPACE ──► AGENTS ──► BRAIN
├── Temporal memory episodic · semantic · preference …
├── Knowledge graph canonical entities, validated relations
├── Open loops commitments, pending decisions
├── Hybrid retrieval semantic + lexical + graph + metadata
└── Provenance engine contradiction, evidence, confidenceNine questions every memory answers
A row is not just text and a vector. Each one carries the answers to the questions you would ask a colleague who told you something six months ago.
- What is this?
text,title,tags,metadata- When did we learn it?
created_at,updated_at- When was it true?
event_time,valid_from,valid_until— a different question, and the one that makes history readable- Where did it come from?
source,source_id,extraction_method,evidence- How confident are we?
confidence, 0.0 – 1.0- How important is it?
importance, 0.0 – 1.0- Has it been reinforced?
reinforcement_count,last_reinforced_at- Is it still valid?
status— active, superseded, uncertain, disputed, expired, retracted- How live is it?
access_count,last_accessed_at, and a computed activation
Seven kinds of knowing
| type | what it holds | example |
|---|---|---|
episodic | Point-in-time interactions | a meeting note, a conversation log |
semantic | Durable world knowledge | how your billing actually works |
preference | Habits and workflow styles | you write in British English |
procedural | Operational instructions | the release runbook |
contextual | Ephemeral project state | which branch is current |
commitment | Promises made to people | “I'll send it Thursday” |
observation | Patterns the agent noticed | you never reply before 10am |
Nothing is overwritten. Ever.
A vector database blurs history: the new value lands on top and the old one is gone. That is fine for a search index and wrong for a record of a person. Here, a change supersedes.
2025 "I build in React"
status = superseded · valid_until = 2026-01-01
2026 "I build in vanilla JS"
status = active · valid_from = 2026-01-01 · supersedes_id = <the 2025 row>Recall is three nets, not one
Semantic similarity is excellent at paraphrase and worst at exact tokens — which happens to be the thing you are most certain about when you search. So the lexical match and the date filter are unioned on top of it, and eight signals decide the order.
| signal | what it adds |
|---|---|
| Semantic | cosine similarity against the embedding |
| Lexical | token match density, weighted 0.3 |
| Importance | up to +0.15 |
| Confidence | up to +0.15 |
| Recency | exponential decay on creation or event date |
| Temporal fit | +0.25 when validity matches the question's target; +0.20 for a deliberate historical lookup |
| Reinforcement | +0.05 × ln(1 + times reconfirmed) |
| Source | manual +0.10 · chat +0.08 · connectors +0.05 · inference +0.02 |
| Status penalty | superseded −0.40 · disputed or uncertain −0.20 · retracted excluded |
The things you left open
A commitment is not a note. Send Priya the pricing one-pager before Thursday has a due date, a person, a project and a state — and it should still be true tomorrow without you re-reading the thread.
open ──► waiting ──► blocked ──► completed │ cancelled └──────────────────────────────► stale
What never gets written down
Redaction runs on every ingestion stream, before anything is stored. API keys for OpenAI, Anthropic, AWS and GitHub, bearer headers and connection strings are replaced with deterministic masks. A credential that reaches the brain is a credential that reaches a prompt, so it never reaches the brain.
Authorization: Bearer sk-ant-… ──► [REDACTED_KEY]
postgres://user:hunter2@host/db ──► postgres://user:[REDACTED_PASSWORD]@host/dbMeasured, on a real machine
1.9 ms to remember
Per memory, end to end: embedding, database write and secret redaction.
1.2 ms to recall
Per query, including semantic, lexical and the full multi-signal ranking.
0.0% duplicates
Re-syncing a connector writes nothing twice — idempotency is a deterministic content hash.
Want it on your Mac?
Free while it is in beta. Bring your own model — or run a local one and never leave the machine.
Join the waitlist→