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.
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.
Don't trust us
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.
Ask what matters to you, or let bench pick questions from your past sessions. You review every question before the run.
Runs on a copy of your memory. Your live setup is never touched.
Cost estimate first; nothing runs above your limit ($3 by default).
# 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.
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.
claude -p --model sonnet) that both answered and judged.bench uses raw transcripts for this reason).Measured 2026-11-07. The run reports are not published, because the questions come from a private development memory. Full method
| Questions | File memory | Graph memory |
|---|---|---|
| Rules (7) | 4.00 | 5.00 |
| Decisions (6) | 3.00 | 4.67 |
| History of past sessions (8) | 0.00 | 4.00 |
| All (21) | 2.19 | 4.52 |
| Mean input tokens per answer | 22,543 | 34,440 |
How it works
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.
A local embedding model finds related wording across memories and past sessions, not only exact words.
Each git repository gets its own memory, recognised by its remote, plus global preferences that apply everywhere.
Automatic checkpoints and pruning of old history. status and doctor tell you what is going on.
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).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.CLAUDE.md) carries the memory rules; your own text is never touched.Install
The wizard finds your agents, asks a few questions with sensible defaults (Enter takes them), and shows every change before it makes one.
--dry-run shows the plan and changes nothing.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
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.
| Agent | Status | What 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
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.
The memory lives in your per-user data folder, not in your repository, so it is never committed by accident.
Nothing is reachable from outside your computer, and other users on it cannot read your memory.
No usage statistics, no crash reports. There is no graphersal-memory cloud and no API key of ours.
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
Trying it costs you nothing. One command takes it out again.
FAQ
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.
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.
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.
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.
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.
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.
No. It is one program. The embedding models run on the CPU, and the built-in one needs no download at all.
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.
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.
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.
Soon. The first release is being prepared; binaries for macOS, Linux and Windows are already built and tested by the release workflow.