Make0 Brain
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Make0 Brainwhat do you remember about my Postgres migration decision?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Make0 Brain
One context for every AI agent you use. Claude Code, Claude Desktop, Cursor, Codex, Windsurf, VS Code, and Gemini CLI all read and write the same memory, and every change is versioned.
A local-first, open-source MCP memory server. It runs offline with no API key, keeps everything in one SQLite file, and speaks the same 7 tools as the hosted Make0 Brain.
Make0 · SWE-ContextBench results
npx @make0-ai/brain initWhy
Every agent keeps its own memory. Claude has CLAUDE.md, Cursor has rules, Codex has AGENTS.md, ChatGPT has its memory page. You end up explaining your stack, your preferences, and last week's decisions again in each one, and the copies drift apart.
Make0 Brain is one memory that all of them share:
Tell one agent, every agent knows. A fact saved from Cursor is found by Claude Code in the next session.
Nothing is overwritten silently. Every edit, from any agent, is kept as a version with who wrote it and when.
It stays yours. One SQLite file on your machine, MIT licensed, exportable to plain Markdown.
Related MCP server: kepta
Quick start
1. Connect your agents.
npx @make0-ai/brain initinit finds Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, Codex CLI, and Gemini CLI. It shows what it will change, asks once, keeps a .make0-backup of each config file, and adds Make0 Brain to each app. It then downloads the two local models (about 50 MB, once) with a progress bar, so your first question to an agent doesn't wait on a download. Restart the apps afterwards.
Connecting the server is not enough. The agent also needs a custom instruction so it searches Brain before answering and saves lasting facts there. init writes this into the global rules file for Claude Code (~/.claude/CLAUDE.md), Codex (~/.codex/AGENTS.md), Gemini (~/.gemini/GEMINI.md), and Windsurf. Cursor, Claude Desktop, and VS Code keep rules in settings, so init prints the same text for you to paste:
Make0 Brain is my source of truth for durable memory. Always search it before answering about me, my work, people, preferences, or past decisions. Save lasting facts and decisions to Brain. Never guess or invent memories. Use Brain exclusively for durable memory.App | Where it goes |
Claude Code |
|
Codex CLI |
|
Gemini CLI |
|
Windsurf | Global rules, written by |
Cursor | Settings → Rules → User Rules. Paste it. |
Claude Desktop | Settings → Profile → personal preferences. Paste it. |
VS Code |
|
Skip the rule with init --no-rules.
2. Bring in the context you already have.
npx @make0-ai/brain import --detect # CLAUDE.md, AGENTS.md, Cursor/Windsurf/Copilot rules
npx @make0-ai/brain import ~/Documents/MyVault # an Obsidian vault or any Markdown folder
pbpaste | npx @make0-ai/brain import - # e.g. a memory dump copied from ChatGPT3. Look at it.
npx @make0-ai/brain viewModels live in ~/.make0/models and data in ~/.make0/brain.db. If you skip init (or pass --no-models), the first save or search downloads the models instead.
One context across all agents
Same tools in every app
After init, every connected agent gets the same 7 tools:
Tool | What the agent uses it for |
| Get the brain id. The local server has one brain, |
| Find memories for a focused query before answering. |
| Read one memory in full. |
| Read every saved version of a memory, newest first. |
| Save a fact or a short Markdown note when you ask it to. |
| Change a memory. The previous text is kept as a version. |
| Archive a memory. Its versions are kept and you can restore it. |
The names and schemas match the hosted Make0 Brain, so a prompt or agent setup works against either one.
Every memory knows who wrote it
Make0 Brain reads the client name each app sends when it connects and records it as the writer: claude, chatgpt, or cursor. Any other app is recorded as mcp, with its own client name kept too. Search results show addedBy for each memory, and every version records who wrote it. You can see which agent learned what.
Context stays consistent
Contradictions replace older facts. If Cursor saves "I don't like dark mode in my editor" after Claude saved "I like dark mode in my editor", the newer memory wins and the older one is archived, with its history intact.
Duplicates merge (with an API key). An LLM judge compares close matches and merges restatements into one memory. The merged text may only use words from the two originals, so it cannot invent facts. Without a key, duplicates are kept rather than guessed at.
Related memories are linked. Similar memories get links automatically, and search follows them up to two hops, so asking about a project also surfaces the decisions tied to it.
Your existing agent rules become shared memory
import --detect reads the rule files you already wrote for one agent and makes them available to all of them. Make0 Brain's own "search Brain first" block is stripped out so it is never imported as a memory.
Memory versioning
Every write to a memory creates a version, whether it comes from an agent, an import, or you in the viewer. Nothing is overwritten in place.
What a version records
Field | Meaning |
| 1, 2, 3… per memory. |
| The version agents read now. Exactly one per memory. |
| The memory as it was at that point. |
|
|
| The app's own client name when |
| The embedder that indexed the text while this version was current. |
| When the version was written. |
A version is written when the content, category, kind, or entity type changes. A confidence-only change does not add one.
Agents can read the history
Search results include versionCount. When it is greater than 1, an agent can call get_memory_versions to see how a fact changed and who changed it: for example, that you switched from npm to pnpm last month and which agent recorded it.
Nothing is lost
Action | What happens |
| A new current version. Older versions stay. |
A contradicting or merged memory | The older memory is archived with all its versions. |
| Archived: hidden from search and reads, versions kept. |
Re-import of an edited note | A new version of that memory, not a duplicate. |
Re-import of a note you deleted | Skipped. Deleted stays deleted. |
| The only permanent delete. Agents cannot do it. |
Browse and restore
npx @make0-ai/brain history <id> # every version, current one marked *
npx @make0-ai/brain restore <id> --version 2 # make version 2 current again
npx @make0-ai/brain restore <id> # bring back an archived memory* v3 2026-10-27T09:14:02.118Z claude
The project uses pnpm and Node 22.
v2 2026-10-20T16:40:51.502Z cursor
The project uses pnpm.
v1 2026-10-02T11:05:33.910Z user
The project uses npm.Restoring makes an older version current again and re-indexes it. No version is deleted.
npx @make0-ai/brain view opens a local page (on 127.0.0.1 only) where you can browse, search, add, and edit memories, read each memory's version timeline, restore a version, bring back archived memories, inspect the stored embedding, and permanently delete.
Search quality
Measured on SWE-ContextBench Lite, the same comparison as the Make0 benchmark page: 300 earlier coding sessions and 99 related issues. The score is how often search returns the gold past session. The local install uses the offline MiniLM embedder and the ms-marco MiniLM reranker, with a mean retrieval time of 0.44s per query on CPU once the models are loaded.
Rank 1, the gold session is the first result:
Make0 Brain (cloud) █████████████████████████████░░░░░░░░░░░ 71.7%
Make0 Brain (local) █████████████████████████░░░░░░░░░░░░░░░ 62.6% 0.44s
LangMem ██████████████████████░░░░░░░░░░░░░░░░░░ 55.6%
OpenViking ███████████████░░░░░░░░░░░░░░░░░░░░░░░░░ 38.4%
Free summary search ██████████████░░░░░░░░░░░░░░░░░░░░░░░░░░ 34.3%
Mem0 ██████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 25.3%
Supermemory █████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 23.2%Overall, the gold session appears anywhere in the results:
Make0 Brain (cloud) ██████████████████████████████████████░░ 93.9% top 10
Make0 Brain (local) █████████████████████████████████████░░░ 92.9% top 10 0.44s
LangMem █████████████████████████████░░░░░░░░░░░ 73.3% top 10
Supermemory ████████████████████████░░░░░░░░░░░░░░░░ 59.6% top 15
OpenViking █████████████████████░░░░░░░░░░░░░░░░░░░ 51.5% top 3
Mem0 ████████████████░░░░░░░░░░░░░░░░░░░░░░░░ 39.4% top 3
Free summary search ███████████████░░░░░░░░░░░░░░░░░░░░░░░░░ 36.4% agent choosesLangMem, OpenViking, Mem0, Supermemory, and free summary search are from Table 5 of that paper. "Overall" counts a hit anywhere in each system's own result list; Make0 cloud, Make0 Brain, and LangMem each return 10. On the full benchmark (1,007 past tasks, 357 related issues), hosted Make0 scores 71.4% at rank 1 and 88.2% overall. A stronger embedder and reranker raise accuracy.
How search works: MiniLM embeddings and BM25 keyword scores are blended, a cross-encoder reranks the shortlist (or an LLM filter, with a key), weak results are pruned, and the top results are expanded two hops along memory links.
Import and export
Import
Folders and vaults. Each note becomes one memory. Long notes split by heading, and each part keeps the note title. Frontmatter tags or the folder name become the category. Obsidian
[[wikilinks]]become links between memories..obsidian/and.trash/are skipped.Agent rule files.
--detectfinds global rules under your home folder and project rules in the current folder.Re-runs are safe. Unchanged sections are skipped, edited ones get a new version, and memories you deleted stay deleted.
--extract(needs an API key) turns files into one-fact memories instead of note-sized ones.--dry-runshows what would change. Imports over 200 memories ask first;--yesskips the question.
Export
npx @make0-ai/brain export ./my-brain # one Markdown file per memory, opens as an Obsidian vault
npx @make0-ai/brain export --json brain.json # every memory, version, and link (the Make0 port format)The Markdown export imports back in. The JSON bundle includes archived memories and the full version history. It does not include embeddings; whoever reads it re-embeds with their own model.
Optional API key
Everything works offline. With a key, Make0 Brain also merges duplicate memories, picks better categories, filters search results with an LLM, and can import --extract.
Copy .env.example to .env in this folder, or to ~/.make0/.env so every app shares one file:
cp .env.example ~/.make0/.envOPENAI_API_KEY=sk-... # or OPENROUTER_API_KEY, or MAKE0_BRAIN_API_KEY
MAKE0_BRAIN_BASE_URL= # any OpenAI-compatible endpoint (optional)
MAKE0_BRAIN_LLM_MODEL= # default gpt-6-luna
MAKE0_BRAIN_EMBEDDINGS=api # API embeddings instead of local MiniLM
MAKE0_BRAIN_LLM_SEARCH=0 # keep search on the local rerankerMake0 Brain reads ./.env, then .env in the data folder (MAKE0_BRAIN_HOME, default ~/.make0). A variable already set in the environment, including in an MCP client's env block, wins. Switching embedders is safe: memories indexed by another model are re-embedded on the next search.
Local or cloud
This repo | Make0 cloud | |
Best for | Local agents, offline, on your machine | Every device and web app, including ChatGPT and Claude on the web |
Setup |
| Sign in at make0.ai |
API key | None required | Make0 account |
Brains | One | Personal, project, and custom brains |
Storage |
| Hosted |
Search | MiniLM + BM25 + cross-encoder, 0.44s | Stronger embedder and reranker |
A one-command port from local to Make0 cloud is coming. The export --json bundle is the format it will use, with history and attribution included.
Reference
CLI
make0-brain Run the MCP server over stdio
make0-brain init Add Make0 Brain to your AI apps and download the models (--dry-run, --yes, --clients, --no-rules, --no-models)
make0-brain import <path…> Import files, folders, or a vault (--detect, -, --extract, --dry-run, --yes)
make0-brain export [dir] Markdown export (--json [file] for the bundle)
make0-brain view Open the memory viewer in a browser (--port, --no-open)
make0-brain stats Show memory and link counts
make0-brain history <id> List saved versions of a memory
make0-brain restore <id> Restore an archived memory (--version <n> for an older version)
make0-brain purge <id> --yes Permanently delete a memory and its versionsinit --clients takes a comma-separated list of claude-code, claude-desktop, cursor, windsurf, vscode, codex, gemini.
Manual setup
If init doesn't cover your app, add a stdio server and paste the custom instruction from the quick start into that app's rules:
{
"mcpServers": {
"make0-brain": { "command": "npx", "args": ["-y", "@make0-ai/brain"] }
}
}Environment
Variable | Default | Purpose |
|
| Data folder: database, models, |
|
| Database file. |
| unset | Turns on the optional LLM features. |
| OpenAI, or OpenRouter for an OpenRouter key | OpenAI-compatible endpoint. |
|
| Chat model. |
|
|
|
|
| Embedding model when |
| on with a key |
|
Develop
npm install
npm test # fast suite, no model downloads
npm run test:models # real local models
npm run test:e2e # build, then drive the stdio serverLicense
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
One memory for you and your AI agents, shared by ChatGPT, Claude, Gemini, Grok, Codex and Cursor.
Private memory for AI agents: save and recall facts across Claude Code, Codex, Cursor and ChatGPT.
A second brain for your AI agent. Shared memory for your team's AI agents, plus public and private knowledge bases — works with ChatGPT, Claude, Cursor and any MCP client.
Persistent memory for AI agents, for code, research and everyday life. Stale facts retire.
Related MCP Servers
- AlicenseAqualityAmaintenanceGives AI agents persistent, local-first memory using SQLite and on-device embeddings, enabling semantic search and recall across sessions with no cloud calls.89MIT
- AlicenseNot gradedqualityAmaintenanceLocal memory for AI agents in one SQLite file on your own machine. Facts carry a validity window and a confidence score, so an outdated one is superseded and downweighted rather than deleted, and retrieval fuses BM25, vector similarity and a knowledge graph.2Business Source 1.1
- AlicenseNot gradedqualityBmaintenanceEnables AI agents like Codex, Grok Build, and Antigravity to share persistent local memory, preferences, project context, tasks, and handoffs using Markdown and SQLite.1MIT
- FlicenseAqualityAmaintenanceRuns locally on your Mac to give AI agents a shared, private memory of your profile, notes, projects, and saved web pages, with semantic search and version history.28-