01 · Review today (T2)
Read facts, observed work and open threads from a day card without turning them into durable traits.
Call get_daily_review and show T2, both T3 lanes, and pending candidates separately.Your AI should remember you — and remember that you changed.
MindBridge gives Codex and other AI tools a traceable long-term memory: operational T3 remembers how to work with you, while reflective T3 stores only patterns and identity hypotheses you confirmed. Every recall carries its source and date. The Memory Core runs locally by default.
See the product before the architecture
MindBridge turns scattered conversations into memory you can revisit, recall, and audit — without stuffing the full chat history back into every prompt.
2026-08-04 · Tueauto-generated
New preferences
You wrote none of this yourself.
from 38 projects · 243 transcripts
Written for you, once a night.
Prefer uv for Python projects
created_at 2026-08-04 · just writtenNo meetings on weekends
created_at 2026-07-28 · valid_at openGym on Saturday mornings
created_at 2026-07-19Open to weekend work
superseded by the 2026-07-28 recordMemory you stop mentioning fades on its own.
VERIFIED IN A REAL CLIENT
Codex and Claude Code call the same MemoryService over local STDIO MCP; their local JSONL logs also increment into one T1/T2 store. Reads can run directly, while durable writes require user confirmation.
Local verification on Aug 20, 2026: a fresh Claude Code session called get_daily_review and received all four sections; three local log sources entered one Postgres store with zero duplicate source keys.Open the full install and usage guideRead https://mindbridge.liangyue.site/install.md to install MindBridge locally, connect Codex and Claude Code, and ingest both local transcript sources.Call get_daily_card for the latest T2 card, then review_long_term_memory for the newest three T3 records. Answer in separate sections, cite every id, and do not write.Verified locally, not a public hosted memory service; the local data layer must be running. The public Companion Loop uses synthetic data.SIX STEPS IN CODEX / CLAUDE CODE
Daily Review separates T2, operational T3, reflective T3, and pending Pattern Candidates. An inference stays outside memory until the user confirms its wording.
Read facts, observed work and open threads from a day card without turning them into durable traits.
Call get_daily_review and show T2, both T3 lanes, and pending candidates separately.List current and superseded long-term records instead of seeing only semantic search hits.
Call review_long_term_memory twice, once per namespace, and cite every id.Recall only the T3 records relevant to the current task, with provenance attached.
Use temporal_query for my writing preferences, cite the memory ids, then edit this essay.Require three observations across two dates and show counter-evidence. A candidate is not a trait.
Use propose_pattern for a hypothesis about how I respond to unclear scope, but do not write T3.Confirm, edit, or reject with a receipt; only confirm/edit creates durable memory.
Show me the candidate first. Call resolve_pattern only after my explicit decision.Read one memory by id, then edit or archive it so your history stays transparent.
Call get_memory_record(42) first; then call edit_memory(42, ...) or archive_memory(42).Read tools run directly; every write asks you first. Grouped by what you get out of them.
get_daily_cardget_daily_reviewreview_long_term_memorytemporal_queryupsert_preferencepropose_patternreview_pattern_candidatesresolve_patternget_memory_recordedit_memoryarchive_memoryWhat makes this memory trustworthy
Memory ids and source records lead you back to the evidence.
created_at records the write; valid_at tells you whether it still applies.
A new preference supersedes conflicts. History stays visible without defining the present.
Two capture paths
One needs nothing from you. One lets the model do it. Both write to the same store.
Nothing for you to do. An incremental pass reads the structured logs already on disk and computes what happened, masking suspected secrets before storing.
~/.claude/projects/**/*.jsonl~/.codex/sessions/** + archived_sessions/Mounted as a standard MCP server, so the model decides mid-conversation when to write, recall, and keep memory edits auditable.
get_daily_cardget_daily_reviewreview_long_term_memorytemporal_queryupsert_preferencepropose_patternreview_pattern_candidatesresolve_patternget_memory_recordarchive_memoryedit_memoryCodex · Claude Desktop · Claude Code · Cursor · VS CodeParsing and storage are local: it reads transcripts on your machine and writes to a local Postgres.
Stated plainly: Path A only works for tools that already write structured local logs (Claude Code, Codex CLI). Path B works with any MCP client. ChatGPT and web Claude expose no history API — those need a manual export and are out of scope for the automatic path.
Architecture
Each stage says where it runs and what produced it. Rule-computed and model-written are labelled separately, because they do not carry the same confidence.
local disk
local · plain Python, no model
Postgres
local · rule-computed
generative model (optional)
pgvector · local embeddings
Trust boundaries
Default behaviour, optional external processing, and unsupported scope are stated together.
Transcript parsing, Postgres / pgvector, Redis, and retrieval run on your device.
A hosted model is optional for training-data generation; no excerpt leaves without --send-to-provider.
Companion Loop contains no personal corpus. Local verification and the public demo are kept distinct.
Today, Codex connects over MCP. A single source of truth requires an audited migration, not direct edits to ~/.codex/memories/.
Reproducible evidence
Every number comes from eval scripts and results.json in the repository. Small samples stay labelled as pilots; a feature without a safe threshold stays off.
Connect your workflow
Start the local Memory Core, connect it over MCP, then run one query with memory ids to inspect what it remembers.