• Pre-release: not published yet
  • Runs on your computer
  • Open source, Apache-2.0

One graph memory for every coding agent you use.

Claude Code, opencode, Codex and Cursor share one local graph of your rules, decisions and past sessions. Switch agents in the middle of a project and nothing is forgotten. And you don't have to believe us: a built-in A/B test measures it on your own work.

Monday · Claude Code

You
We use pnpm in this project. Never npm.

Thursday · Cursor

You
Add date-fns.

Cursor
Running pnpm add date-fns. You said on Monday: pnpm, never npm.

Illustration, written by hand; not captured output.

One memory, every agent

Use any agent you like. They all remember the same things.

An agent's own memory belongs to that agent. graphersal-memory is one store that every agent on your computer reads and writes: what you settled with Claude Code on Monday, opencode knows on Tuesday, and Cursor next week.

Switch agents freely

Try a new agent, or use a different one for a different job, on the same project. It starts with everything the others learned.

Side by side

Claude Code in one terminal, opencode in another: they share one store at the same time and see each other's notes as they are written.

Sessions from all of them

Past sessions of every connected agent are indexed into the same history, so "what did we try last week?" finds it whichever agent you used.

Not locked in

Your memory does not live in one vendor's format. Change agents, keep your memory; leave, and it is written back out.

How graphersal-memory is wired Inside your computer, four AI coding agents (Claude Code, opencode, Codex CLI, Cursor) connect over MCP to graphersal-memory, which reads and writes one memory store in your user data folder. Outside the computer, the internet is not used by default. Your computer Claude Code opencode Codex CLI Cursor MCP graphersal-memory Memory store your data folder Internet not used by default (one-time model download, if you choose one) How graphersal-memory is wired Four AI coding agents connect over MCP to graphersal-memory, which reads and writes one memory store in your user data folder, all inside your computer. The internet is not used by default. Your computer Claude Code opencode Codex CLI Cursor MCP graphersal-memory Memory store your data folder Internet: not used by default (one-time model download, if you choose one)
Every agent reads and writes the same memory, on your computer.

Don't trust us

Prove it on your own work before you switch.

One command, graphersal-memory bench, asks your agent the same questions about your past work with your current memory and with graphersal-memory, scores every answer, and shows quality, cost and tokens side by side. Numbers from your data, not our promises.

Your questions

Ask what matters to you, or let bench pick questions from your past sessions. You review every question before the run.

Safe

Runs on a copy of your memory. Your live setup is never touched.

Capped cost

Cost estimate first; nothing runs above your limit ($3 by default).

What a report looks like

# graphersal-memory bench
harness `claude -p --model sonnet`; 6 question(s) from 9 session(s), 1 repeat(s)

| Category      | Arm   | Mean score  | Confidently wrong | Mean cost | Cost per point |
|---------------|-------|-------------|-------------------|-----------|----------------|
| rules (2)     | files |        4.50 |                 0 |    $0.019 |         $0.004 |
| rules (2)     | graph |        5.00 |                 0 |    $0.022 |         $0.004 |
| decisions (3) | files |        1.00 |                 0 |    $0.017 |         $0.017 |
| decisions (3) | graph |        3.33 |                 0 |    $0.064 |         $0.019 |
| all (6)       | files |        2.00 |                 0 |    $0.018 |         $0.009 |
| all (6)       | graph |        3.50 |                 0 |    $0.046 |         $0.013 |

Spent (list price): $0.91 in all: questions $0.17, warm-up $0.19, answers $0.42, judge $0.14.

## Caveats
- Small sample: 6 question(s) x 1 repeat(s), one project, one model. ...
- The judge is an LLM (the same harness and model as the answers) ...
- File memory holds no session history, so history questions favour the graph arm ...
  ... the full report also lists tokens, turns, time and every answer with the judge's note

A real report, abridged (some rows and columns cut, "..." marks cuts): the first end-to-end run of bench on 2026-11-10, made to check the command (its no-memory baseline arm is cut here), on a copy of one developer's memory with session summaries off. With so few questions it shows the format, not how much memory helps; here the graph scored higher but cost more per point. The report states its own caveats like this every time.

Our own measurement: 21 questions, one real memory

Before the product, we measured the prototype it is built from on Graphersal's own development memory: 21 questions about rules, decisions and past sessions, answered once with the usual memory files and once with graph memory, each answer scored from 0 to 5.

Rules (7 questions)

File memory4.00
Graph memory5.00

Decisions (6)

File memory3.00
Graph memory4.67

History of past sessions (8)

File memory0.00
Graph memory4.00

All 21 questions

File memory2.19
Graph memory4.52
Mean score per answer, 0 to 5, higher is better.
4.52 vs 2.19mean score, graph vs file memory
$0.0075 vs $0.011cost per score point: less per unit of quality
$0.034 vs $0.024cost per answer (list price): a graph answer costs more
0 and 0confidently wrong answers

Why we think the graph scored higher

  • Rules: it searched for the one rule the question needed instead of hoping the agent spotted it in a long index.
  • Decisions: a decision is stored with its why, so the answer could give the reason, not just the outcome.
  • History: file memory has no record of past sessions and scored 0; the graph answered from indexed sessions.

Read it with the caveats

  • Small sample: one developer, one project, 21 questions, one model (claude -p --model sonnet) that both answered and judged.
  • A graph answer costs more in dollars and uses about 1.5x the input tokens; it wins per point of quality, not per answer.
  • History favours the graph by construction, and some reference answers came from the same session summaries the graph serves (the product's bench uses raw transcripts for this reason).
  • The best configuration is reported. Earlier graph configurations on the same questions scored 4.19 and 4.33.

Measured 2026-11-07. The run reports are not published, because the questions come from a private development memory. Full method

Table view of the scores
QuestionsFile memoryGraph memory
Rules (7)4.005.00
Decisions (6)3.004.67
History of past sessions (8)0.004.00
All (21)2.194.52
Mean input tokens per answer22,54334,440

How it works

Search instead of loading everything

Your agent gets a few small tools: search memories, read one, remember, forget, search past sessions. It fetches the few entries that answer the question.

  1. Install onceA short wizard sets up every agent it finds and imports the memory files you already have.
  2. Work as usualThe agent saves rules, decisions and preferences as you go, per project.
  3. Sessions are indexedWhen a session ends, it becomes searchable in the background, whichever agent it ran in.
  4. Ask anything later"Why did we drop that?" The agent searches by meaning, across memories and past sessions.

Search by meaning

A local embedding model finds related wording across memories and past sessions, not only exact words.

Memory per project

Each git repository gets its own memory, recognised by its remote, plus global preferences that apply everywhere.

Looks after itself

Automatic checkpoints and pruning of old history. status and doctor tell you what is going on.

The technical version
  • Shim + daemon. Your agent starts graphersal-memory mcp like any stdio MCP server. It connects to a background daemon over a local socket, starting it if needed. The daemon is the only process that opens the store; it exits after two idle hours (configurable).
  • No ports, no tokens, no system service. The socket is readable only by your OS user.
  • Graph store. Memories, sessions, turns and facts are vertices in a Graphersal store with a vector per item, kept in step with its text, so search finds related wording, not only the same words.
  • Project identity. A project is the git repository you work in, identified by its git remote: a moved repository keeps its memories, and two clones of one remote share them. Searches see the project's memories plus your global ones.
  • Two MCP servers. use (on): the everyday memory tools. develop (off by default, so it costs no context): tools to inspect and reshape the memory's structure. The engine's access policy enforces what each may write.
  • Rules stay native. A small marked block in your agent's own rules file (for example CLAUDE.md) carries the memory rules; your own text is never touched.

Install

One command and a few questions

The wizard finds your agents, asks a few questions with sensible defaults (Enter takes them), and shows every change before it makes one.

  • Sets up every agent you pick, all sharing one memory.
  • Imports your existing memory files; they are read, never changed.
  • Backs up each configuration file it edits. --dry-run shows the plan and changes nothing.
Coming soon. Release binaries for macOS, Linux and Windows and one-line installers are built and tested, and arrive with the first release.
Step 2 of 7 · Embedding model
  The model turns every memory into a vector, so a search
  finds related wording, not only the same words.

  1) potion-retrieval-32M      English, ~130 MB  (default)
  2) potion-multilingual-128M  100+ languages, ~530 MB
  3) Built-in (no download)    offline, weaker search
Choose [1]:

  ...

Report:
  embedding model: downloaded potion-retrieval-32M
  imported 47 memories into 1 project
  past sessions: indexing in the background

Supported agents

Works with the agents you already use

Install any of them, or all at once: they share one memory. Everything below is pre-release; the status says honestly how far each one has been tried.

AgentStatusWhat works
Claude Code Most complete Install and uninstall, import of its memory files, hooks, rules block, past sessions, optional summaries, the built-in A/B test.
opencode 1.x and 2.x Supported Install and uninstall, rules file, session plugin, past sessions, optional summaries and A/B test. Tried with real opencode 1.18 and 2.2 runs.
OpenAI Codex CLI Preview Install and uninstall, rules block in AGENTS.md, hooks (you approve them once in Codex's /hooks), past sessions, optional summaries, A/B test with a local model. A live run indexed sessions and wrote a summary; saving and searching memories through Codex has not been shown yet with the local model used.
Cursor Preview Install and uninstall, own rules file, hooks, past sessions. Built from Cursor's documentation and tested against sample files; a check with a live Cursor is still pending. No summaries or A/B test through Cursor.
Desktop apps without a terminal (e.g. Claude Desktop) Later Planned. The core is designed not to depend on a terminal or hooks.

Platforms: macOS, Linux and Windows; the whole test suite, end to end included, runs on all three.

Privacy

Your data stays on your machine

Agent sessions can contain anything: code, customer names, a password pasted by mistake. graphersal-memory is designed so that nothing leaves your computer unless you ask.

Local store

The memory lives in your per-user data folder, not in your repository, so it is never committed by accident.

Not on the network

Nothing is reachable from outside your computer, and other users on it cannot read your memory.

No telemetry

No usage statistics, no crash reports. There is no graphersal-memory cloud and no API key of ours.

Opt-in only

Session summaries and the A/B test run only when you agree, through your own agent and account, with a cost estimate first and a monthly cap for summaries.

The only network access of install is the one-time download of the embedding model you choose, from Hugging Face. Pick the built-in model for none at all.

Reversible

Nothing is lost if you leave

Trying it costs you nothing. One command takes it out again.

  • Your memories go back out. For Claude Code, every memory, including new ones, is written back into its own memory files, and its auto-memory is switched back on. For opencode, Codex and Cursor the memories are exported as Markdown.
  • Your files are never overwritten. A file you changed is kept, and the graph's version is written beside it. Nothing is deleted.
  • Configuration restored byte for byte. A config file nobody touched since install gets its original bytes back; the acceptance test checks exactly that.
  • You decide about the data. The memory store stays in your data folder unless you ask uninstall to delete it.

FAQ

Questions

My agent already has memory. Why add this?

Keep using it if it works for you, and measure: bench compares your agent's file memory with graphersal-memory on your own sessions. What it adds is history of past sessions, search over everything instead of loading an index on every turn, and one memory shared by all your agents. During install you can switch the agent's own memory off so facts are not kept twice; uninstall writes everything back.

Can I use two agents on the same project?

Yes, even at the same time. Both connect to the same local helper and the same store, so a memory saved in one is found from the other, and sessions of both are indexed into one history.

I already use another memory tool.

Keep it. An A/B arm that scores your whole current setup, the other tool included, against graphersal-memory on the same questions is being built. To move memories over, connect both and ask your agent to read from one and write to the other.

What happens if I uninstall?

Your memories are exported first (back into Claude Code's own memory files, or as Markdown for the other agents), the agent's own memory is switched back to how it was, and everything install added is removed. Files nobody changed get their original bytes back. Your memory store stays in your data folder; uninstall --purge deletes it too, after asking.

Do I need to know what a graph is, or Rust?

No. You install it, answer a few questions, and keep working with your agent. The graph is how the memory is stored and searched behind the scenes.

Does it replace CLAUDE.md or AGENTS.md?

No. Your rules stay where your agent reads them. graphersal-memory writes only a small marked block (or a rules file of its own) and adds search over everything that should not be loaded on every turn.

Does it need a GPU, a cloud account or Docker?

No. It is one program. The embedding models run on the CPU, and the built-in one needs no download at all.

Does it cost anything?

The software is free and open source (Apache-2.0). Optional session summaries and the A/B test use your own agent and account, so they cost model usage; you see an estimate first, and summaries have a monthly cap you set.

Can my agents in different projects see each other's memories?

Each project sees its own memories plus your global ones. The project is set by the helper on every call, so an agent cannot read another project's memories by asking for them.

I write in a language other than English.

That works. By default memories are stored in English and your question is translated before searching, so a memory is found whatever language you wrote in. You can also choose to keep memories in your own language, with the multilingual model.

When can I install it?

Soon. The first release is being prepared; binaries for macOS, Linux and Windows are already built and tested by the release workflow.