Memory & search
Your agents remember. And find anything.
Project memory for coding agents: decisions and findings kept between sessions, a knowledge graph of your project, search by meaning and exact text, and a journal of every change. It is what the context layer remembers, for every agent and every person on the project.
Memory that outlives the session
Memory in ctxflows is what your project keeps between sessions: decisions, findings and the rules agents work by, written as records every agent reads.
It belongs to the project, not to one tool or one machine: what Claude Code found today, Codex reads tomorrow. The next agent gets what a run produced, never the transcript of the session that made it.
A knowledge graph of your project
The knowledge graph is the links between everything your project holds: what each item, page and file came from, what it replaces, what it waits on, where it sits and which goal it serves.
Links are written as the work happens, and your agent follows them both ways. When the page an item came from changes, the link is flagged until someone confirms the item still holds.
Search by meaning
Search by meaning answers a question in your own words with the part of your project that answers it: the section of a page, the passage of a file, the item on a board.
One search covers docs, library files, records, terms and board items, and you can narrow it by record type, status or tag.
Exact text and names
Exact search finds every line that holds a text, exactly or as a pattern, across everything your project stores.
A word also finds the term that holds it by any of its names, and a file by its name or its place in the tree.
Kept current as you write
Everything your project holds is searchable the moment it is written.
Nothing waits for a nightly rebuild. A run reads the project as it stood when the run started, so a change made meanwhile never shifts under it.
The journal: every change, who, when and why
The journal is your project's change history: every change, with who made it and how, when, from which run and why.
Each change names whether a person in the web app, their own agent, an engine run or the assistant made it. Read any record's history, newest first, or your project as it was at any moment: nothing is overwritten.
Why did we choose this?
Months later, someone asks why project search filters by visibility before it ranks. The answer is already in the project.
They ask in plain words
In their agent's session or the assistant, they ask why search filters by visibility before ranking.
Search finds the decision
Search by meaning returns the decision, with the options it was weighed against and who accepted it.
Links lead to the work
The decision links to the item it came from, and the item to the section of the requirements page it was built from.
The journal names the run
The item's history in the journal shows the run that built it, the approval that accepted it and who gave it.
The answer arrives with its trail: the decision, the item, the requirements and the run, without anyone having to remember.
Questions about memory and search
How does shared memory for coding agents work between sessions?
Is search semantic or exact?
What does the knowledge graph link?
Is there a change history of what my agents did?
Is my code indexed?
Do people and agents get the same answers?
Give your agents a memory that lasts
What your project writes down stays linked and searchable for every session that follows.