list_brains
List brains
List Make0 brains this connection can use. Call this first to get a brain id for search_brain. Does not list memories.
Takes no parameters.

io.github.make0-officialPublished by GitHub account make0-officialv0.3.1Updated Nov 3, 2026
One shared, versioned memory for Claude Code, Cursor, Codex and every MCP agent. Local and offline.
The publisher's own server: BrainDog
Local, offline MCP memory server that gives every connected AI agent one shared, versioned store of facts and short notes to search, read and update.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
One AI memory for every agent you use. Claude Code, Claude Desktop, Cursor, Codex, Windsurf, VS Code, Gemini CLI, Hermes Agent, and OpenClaw all read and write the same memory, and every change is versioned.
A local-first, open-source AI memory server for MCP. After a one-time model download it runs offline with no API key, keeps everything in one SQLite file on your machine, and speaks the same 7 tools as the hosted Make0 Brain. It can also start full: one command imports the sessions 41 coding agents already keep on disk.
Make0 · SWE-ContextBench results · LongMemEval results
[CI] [npm version] [npm downloads per month] [MIT license] [Node.js 22 or later]
[Make0 Brain MCP on mcprush] [Make0 Brain MCP server on Glama] [Listed on mcpservers.org]
Only using Cursor or VS Code? These buttons add the server to that one app. Run init too if you want it to download the models up front and write the custom instruction.
[Add Make0 Brain to Cursor] [Install Make0 Brain in VS Code] [Install Make0 Brain in VS Code Insiders]
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:
1. Connect your agents.
init finds Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, Codex CLI, Gemini CLI, Hermes Agent, and OpenClaw. When more than one is installed, it shows a checklist of them, all ticked; untick any you want to leave out. Pass --clients to choose up front, or --yes to configure every detected agent without asking. It then shows what it will change, asks once, keeps a .make0-backup of each config file, and adds Make0 Brain to each chosen app. It 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, VS Code, Hermes Agent, and OpenClaw keep rules in settings or a persona file, so init prints the same text for you to paste:
Skip the rule with init --no-rules.
2. Bring in the context you already have.
import on its own asks what to import. The details are under Import and export.
3. Look at it.
The viewer opens on 127.0.0.1 with every brain, how many memories each holds, and what your apps retrieved and added this week.
Models 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.
Typed in a terminal, npx @make0-ai/brain opens a menu: connect agents, import sessions or notes, open the viewer, create a brain, choose which brains an app can use, export, restore an archived memory, or show stats. Any command run without its arguments asks for them the same way, one step at a time, with arrow keys, checkboxes, and a default on Enter. Ctrl+C cancels without changing anything.
Scripts and MCP clients are unaffected. Passing the arguments, adding --yes, or running without a terminal skips every question, and MCP clients, which start the server without a terminal, get the server as before. make0-brain serve starts the server even in a terminal.
Restart the apps you connected, then check that a memory written by one agent reaches another:
add_memory.search_brain and answer "mango" without being told.npx @make0-ai/brain view, open the personal brain, and click the memory. It shows Added by Cursor and a version timeline.Delete the test memory in the viewer when you are done. If step 1 or 2 doesn't call a Brain tool, the app is missing the custom instruction above (Cursor, Claude Desktop, and VS Code need it pasted) or wasn't restarted. Run npx @make0-ai/brain agents to confirm the app can use the personal brain.
Your coding agents already keep every session on disk. One command reads that history from 41 agents and saves each session as a memory, filed under its project, so the next agent can find what was asked, decided, changed, and broken last time. No API key and no model are needed.
In a terminal it asks three things: which of the agents it found to import, which brain to save into (or a new one), and whether the summary is right. Each memory is a digest of one session: what you asked, your corrections, the files that changed, the commands that failed, and how it ended. Credentials are redacted before anything is saved. Coding-agent sessions covers the time window, the session cap, scripting flags, and the stores that cannot be read.
After init, every connected agent gets the same 7 tools:
The names and schemas match the hosted Make0 Brain, so a prompt or agent setup works against either one.
The personal brain is created with the database and cannot be deleted. Add others when a project should not share those memories:
An app with no allocation sees only personal. agents grant and agents revoke change that, and so does the Connect dialog in view. Revoking every brain leaves the app with none: list_brains comes back empty until you grant one again. The viewer and the CLI can open every brain. Agents only see brains you give them, and list_brains is how they learn the id to pass to the other tools.
Open a brain to see its memories as a board, one column per category, with the app that wrote each one.
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.
Every memory an app retrieves or writes is counted per app and per brain, with a rough token count. The home page shows this week at a glance; Details opens the full chart, filterable by brain, range, and app, in memories, tokens, or average tokens per call. The counters stay in the local database.
Switch a brain to 3D to orbit and zoom through it: categories branch from the center, and each memory sits on its category.
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.
A version is written when the content, category, kind, or entity type changes. A confidence-only change does not add one.
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.
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 create and switch brains, browse memories as a board or in 3D, search, add, and edit them, read each memory's version timeline, restore a version, bring back archived memories, inspect the stored embedding, and permanently delete.
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. Once the models are loaded, search takes about 80ms per query on an Apple M2 Pro.
Rank 1, the gold session is the first result:
Overall, the gold session appears anywhere in the results:
LangMem, 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.
Measured on LongMemEval_S with the open-source local install. Each question comes with its own history of past chat sessions, and the score is how often search returns the session that holds the answer. Overall covers the 470 standard questions. The 30 abstention questions, which ask about something the history never says, are scored on their own in the last row.
[[wikilinks]] become links between memories. .obsidian/ and .trash/ are skipped.--detect finds the rule files you already wrote for one agent (global ones under your home folder, project ones in the current folder) 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.--sessions; see below.--extract (needs an API key or a local model) turns files into one-fact memories instead of note-sized ones. With --sessions it keeps only what stays true after the session: your preferences and corrections, project decisions, and fixes for errors that may come back.--brain <id> picks the brain; at a terminal you are asked instead. --dry-run shows what would change without saving or creating anything. Imports over 200 memories ask first; --yes skips the question.--sessions reads the session history coding agents already keep on your machine and saves one memory per session, in a category per project (Sessions · acme-api), so the board shows a column per project. Each memory records what you asked, your corrections, the files that changed, the commands that failed with their first error line, and how the session ended. No model is involved, so it needs no key.
--agent cursor,claude-code picks agents, --brain <id> the brain (default personal), and --yes skips the questions. --list-agents prints every agent id.--since 2w or --since all changes the window, and --limit 100 or --limit all the cap. Sessions outside them are never opened, so a large history (Cursor's database can pass 50 GB) costs a quick scan, not a full read.[redacted:<kind>] before anything is stored.data.sqlite3, Reasonix 1.x frame logs, and Amp threads that live only on ampcode.com.zstd command when it is installed and otherwise skips those sessions.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.
Nothing needs a key. With one, Make0 Brain also merges duplicate memories, picks better categories, filters search results with an LLM, and can import --extract. A model running on your own machine can do the same work without a key.
Copy .env.example to .env in this folder, or to ~/.make0/.env so every app shares one file:
Point MAKE0_BRAIN_LLM_BASE_URL at a server on localhost and no key is needed. Nothing leaves your computer.
A local URL wins over a hosted key set in the same environment. A local model is slower than a hosted API, so its calls get five times longer to answer, and search stays on the fast local reranker unless you set MAKE0_BRAIN_LLM_SEARCH=1. Servers that reject OpenAI's JSON mode are asked again without it. A model of 7B parameters or more gives noticeably better merges and extractions than a 1B to 3B one.
MAKE0_BRAIN_BASE_URL, the name before 0.3, still works.
Make0 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.
Make0 Brain has no telemetry and does not contact Make0. The usage counts in the viewer stay in the local database.
Make0 Brain being local does not make your agents local. When an agent calls search_brain, the memories it gets back go into that agent's conversation, and that conversation is sent to the agent's own model provider (Anthropic for Claude, OpenAI for Codex, and so on). Keep anything you would not paste into that agent out of the brains it can use. agents grant and agents revoke control which brains each app sees.
~/.make0/brain.db, a plain SQLite file with your memories, every version, links, and usage counts. It is not encrypted; it is protected by your user account and disk encryption.init keeps one .make0-backup of each config file it edits, and adds a marked block to the rule files listed above..env or the environment. It is never stored in the database or in exports.A memory is text, and an agent can read it as an instruction. A web page or a file an agent was working on can try to get it to save something like "always run this script". Make0 Brain cannot tell a true fact from a planted one, but it makes them easy to find and undo:
restore <id> --version <n>.purge and the viewer can.view listens on 127.0.0.1 only, so other machines cannot reach it. It has no login, but it only answers requests addressed to 127.0.0.1 or localhost on its own port, which blocks DNS-rebinding tricks. Requests that change memories or brains must come from the viewer's own page and be sent as JSON: other sites' requests are refused, and a browser will not send another site's JSON request without the viewer's approval, which it never gives. Other programs on your computer can still call it while it runs, so stop the viewer (Ctrl+C) when you are not using it.
Make0 Brain does not back up your database by itself. Copy one of these somewhere safe, and do it before you upgrade:
Copy brain.db directly only when no app is running, or you may miss recent writes that are still in brain.db-wal. To restore, stop your apps and copy the .db backup over ~/.make0/brain.db. The JSON bundle is a readable record of everything and the format for moving to Make0 cloud; import does not read it back yet.
Upgrading does not need a new init. Agents run the server through npx, so they pick up a new release the next time they start. If npx @make0-ai/brain --version shows an old version, a global install is shadowing npx: npm install -g @make0-ai/brain@latest. On first open, a new version migrates brain.db in place, one transaction per step, so a failed step leaves the database as it was. Migrations add tables and columns and fill in new fields; they do not remove your memories. Older versions are not tested against a migrated database, so back up before upgrading if you might go back.
init knows the Linux and Windows config paths, but those platforms are not covered by automated tests yet. Reports are welcome.Each release is published to npm from GitHub Actions with provenance, tagged vX.Y.Z in GitHub Releases, and listed in the MCP Registry. CHANGELOG.md describes what changed. Patch releases are fixes. Minor releases can add features and database migrations.
Open an issue at github.com/make0-official/brain-oss/issues with:
npx @make0-ai/brain --version and npx @make0-ai/brain stats;Do not paste private memories or your .env. For a security problem, don't open an issue: report it privately as described in SECURITY.md.
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.
At a terminal, a command missing its arguments asks for them: import asks what to import, brains create for a name, description and apps, brains edit|delete, restore, purge, and history let you pick from a list, agents grant|revoke asks for the app and brains, and export for the format and destination. purge and brains delete default to No. init --clients takes a comma-separated list of claude-code, claude-desktop, cursor, windsurf, vscode, codex, gemini, hermes, openclaw.
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:
The viewer UI is a React app in web/, built into dist/web and served by make0-brain view.
See CONTRIBUTING.md for pull requests and releases.
MIT
Source: README.md at commit e20534f
List brains
List Make0 brains this connection can use. Call this first to get a brain id for search_brain. Does not list memories.
Takes no parameters.
Search brain
Search saved Brain memories. A memory may be a singular fact or a short Markdown mini-doc. Use a short, focused query with the key people, entities, preferences, or topics needed—not the full user message. Memories are retrieved with semantic + BM25 keyword search, reranked by a MiniLM cross-encoder, then expanded up to two hops along related_to graph links so connected memories surface with the seeds. Each memory includes addedBy (who first saved it) and versionCount (saved revisions). When versionCount is greater than 1, call get_memory_versions for the full history. Call get_memory whenever a result has truncated: true so you read the full note, not a clipped preview. Always pass brain from list_brains.
kindbrainrequiredlimitqueryrequiredentityTypeGet memory
Fetch one Brain memory by id. Content is either a singular fact or a short Markdown mini-doc (up to about 800 words). The memory includes addedBy (who first saved it) and versionCount (saved revisions). When versionCount is greater than 1, call get_memory_versions to read every saved revision.
brainrequiredmemoryIdrequiredGet memory versions
Fetch every saved version of one Brain memory, newest first, including the current version. Use this when you need to see how a fact changed. Each version includes its full content. The version with current: true matches the memory returned by get_memory.
brainrequiredmemoryIdrequiredAdd memory
Save a new Brain memory when the user explicitly asks to remember, save, or store something. Store either one singular fact or one short Markdown mini-doc (headings, lists, bold, links, code, and Mermaid diagrams) up to about 800 words. Use one memory for one coherent fact or note; do not paste a long document. A new memory that contradicts or restates an older one replaces it; the older one stays in version history.
kindbrainrequiredcontentrequiredcategoryconfidenceentityTypeUpdate memory
Update an existing Brain memory when the user asks to correct or change it. The new content can be a singular fact or a short Markdown mini-doc (headings, lists, bold, links, code, and Mermaid diagrams) up to about 800 words. New content replaces the old content, and the previous version is kept.
kindbrainrequiredcontentcategorymemoryIdrequiredconfidenceentityTypeDelete memory
Delete a Brain memory when the user explicitly asks to remove a saved fact. The memory leaves search and reads, and every saved version is kept so the user can restore it with `npx @make0-ai/brain restore <id>`.
brainrequiredmemoryIdrequired90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

dog.brainOfficial publisher
BrainDog is a hosted record of projects, decisions and money that connected AI agents read before starting work and write their results into.

Published by GitHub account Nomannazir
Indexes a local or public git codebase so an assistant can search it, trace git history, check change impact and find stale docs, all with path:line citations.

Published by GitHub account zhang-liz
Gives an AI assistant memory of your professional network, stored as a graph in FalkorDB, so it can look up contacts, find people by topic, and save who you…

Published by GitHub account ara-5
Shared Graph-RAG memory for AI agents: markdown vault, wikilink recall, tasks, messaging.

Published by GitHub account ariaxhan
Remote MCP endpoint that lets an AI assistant run guided practice with Thinking Brain School lessons a family has unlocked.
npx @make0-ai/brain initnpx @make0-ai/brain initMake0 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.npx @make0-ai/brain import --detect # CLAUDE.md, AGENTS.md, Cursor/Windsurf/Copilot rulesnpx @make0-ai/brain import --sessions # past sessions from 41 coding agents, one digest eachnpx @make0-ai/brain import ~/Documents/MyVault # an Obsidian vault or any Markdown folderpbpaste | npx @make0-ai/brain import - # e.g. a memory dump copied from ChatGPTnpx @make0-ai/brain viewnpx @make0-ai/brain import --sessions # pick agents and a brain step by stepnpx @make0-ai/brain import --sessions --agent cursor,codex # only these agentsnpx @make0-ai/brain import --list-agents # agent ids and namesnpx @make0-ai/brain brains create "Work" --description "Client work" --agents cursor,claude-codenpx @make0-ai/brain brains # list brainsnpx @make0-ai/brain agents # which app can use which brainnpx @make0-ai/brain import ~/Notes --brain Worknpx @make0-ai/brain view --brain Worknpx @make0-ai/brain history <id> # every version, current one marked *npx @make0-ai/brain restore <id> --version 2 # make version 2 current againnpx @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.Make0 Brain (cloud) █████████████████████████████░░░░░░░░░░░ 71.7%Make0 Brain (local) █████████████████████████░░░░░░░░░░░░░░░ 62.6% ~80msLangMem ██████████████████████░░░░░░░░░░░░░░░░░░ 55.6%OpenViking ███████████████░░░░░░░░░░░░░░░░░░░░░░░░░ 38.4%Free summary search ██████████████░░░░░░░░░░░░░░░░░░░░░░░░░░ 34.3%Mem0 ██████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 25.3%Supermemory █████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 23.2%Make0 Brain (cloud) ██████████████████████████████████████░░ 93.9% top 10Make0 Brain (local) █████████████████████████████████████░░░ 92.9% top 10 ~80msLangMem █████████████████████████████░░░░░░░░░░░ 73.3% top 10Supermemory ████████████████████████░░░░░░░░░░░░░░░░ 59.6% top 15OpenViking █████████████████████░░░░░░░░░░░░░░░░░░░ 51.5% top 3Mem0 ████████████████░░░░░░░░░░░░░░░░░░░░░░░░ 39.4% top 3Free summary search ███████████████░░░░░░░░░░░░░░░░░░░░░░░░░ 36.4% agent choosesnpx @make0-ai/brain export ./my-brain # one Markdown file per memory, opens as an Obsidian vaultnpx @make0-ai/brain export --json brain.json # every memory, version, and link (the Make0 port format)cp .env.example ~/.make0/.envOPENAI_API_KEY=sk-... # or OPENROUTER_API_KEY, or MAKE0_BRAIN_API_KEYMAKE0_BRAIN_LLM_BASE_URL= # any OpenAI-compatible endpoint (optional)MAKE0_BRAIN_LLM_MODEL= # default gpt-6-lunaMAKE0_BRAIN_EMBEDDINGS=api # API embeddings instead of local MiniLMMAKE0_BRAIN_LLM_SEARCH=0 # keep search on the local rerankerollama pull llama3.2MAKE0_BRAIN_LLM_BASE_URL=http://localhost:11434/v1 # Ollama; LM Studio is http://localhost:1234/v1MAKE0_BRAIN_LLM_MODEL=llama3.2 # default llama3.2 on localhostnpx @make0-ai/brain export --json ~/make0-brain-backup.json # every memory, version, and linksqlite3 ~/.make0/brain.db ".backup ~/make0-brain-backup.db" # an exact copy, safe while apps are runningmake0-brain Run the MCP server over stdio; typed in a terminal, open the menumake0-brain serve Run the MCP server, even in a terminalmake0-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, --brain, --dry-run, --yes)make0-brain import --sessions Import coding-agent sessions (--agent, --since, --limit, --brain, --extract, --dry-run, --yes)make0-brain import --list-agents List the agents --sessions can readmake0-brain export [dir] Markdown export (--json [file] for the bundle, --brain to limit it)make0-brain brains List, create, edit, or delete brainsmake0-brain agents Show or change which brains each app can use (grant, revoke)make0-brain view Open the memory viewer in a browser (--port, --no-open, --brain)make0-brain stats Show memory and link counts (--brain)make0-brain history <id> List saved versions of a memorymake0-brain restore <id> Restore an archived memory (--version <n> for an older version)make0-brain purge <id> --yes Permanently delete a memory and its versions{ "mcpServers": { "make0-brain": { "command": "npx", "args": ["-y", "@make0-ai/brain"] } }}npm installnpm test # fast suite, no model downloadsnpm run test:models # real local modelsnpm run test:e2e # build, then drive the stdio servernpm run build:web # once, so `npm run dev -- view` has a UIMAKE0_BRAIN_DB=/tmp/try.db npm run dev -- view --no-opennpm run dev:web # hot reload at http://localhost:5173, API proxied to :4173