Docs

ModelBrain exposes a small, fixed surface to your assistant over MCP: fourteen tools. Four handle remembering, recalling, correcting and forgetting; one lists memories without a query; six organize memories into partitions; three are read-only health checks. Everything that manages the installation stays on the command line.

Looking for platforms, price, hardware needs and what leaves your computer in one place? Fact sheet →

Guides
Install ModelBrain

Pick macOS, Windows or Linux, and see how each one connects to your assistants.

Read the guide →
Install on macOS

Download, run the .pkg, and where your vault lives.

Read the guide →
Install on Windows

Download, click through SmartScreen, and where your vault lives.

Read the guide →
Install on Linux

Unpack the tarball, run install.sh, and where your vault lives.

Read the guide →
Connect Claude Desktop

Self-registers on launch. No JSON to edit.

Read the guide →
Connect Claude Code

One button in the setup guide.

Read the guide →
Connect Cursor

Same one-button setup, for Cursor.

Read the guide →
Connect Codex CLI

Add one table to config.toml. Manual steps.

Read the guide →
Connect Gemini CLI

Add one entry to settings.json, with trust left off.

Read the guide →
Connect Cline

Open its MCP settings from inside Cline and add one entry.

Read the guide →
Connect Antigravity

Add one entry to Antigravity's MCP file. Hand-tested on a Mac.

Read the guide →
Connect OpenCode

Add one entry under the mcp key. Manual steps.

Read the guide →
Connect Continue

One small YAML file, then switch to agent mode.

Read the guide →
Connect Hermes

Add one entry to config.yaml and reload.

Read the guide →
Connect Devin Desktop

The file still lives in a folder named windsurf.

Read the guide →
Aider and ModelBrain

Aider has no MCP command. What that means, and what to do instead.

Read the guide →
Connect VS Code

servers, not mcpServers: the one key that differs.

Read the guide →
Connect Zed

Add one entry under context_servers. Zed asks before tools run.

Read the guide →
Connect Goose

Let goose configure add it, or edit config.yaml.

Read the guide →
Connect Roo Code

Open the file from its MCP panel and add one entry.

Read the guide →
Connect LM Studio

Add one entry to mcp.json and use a model that can call tools.

Read the guide →
ModelBrain & ChatGPT

Choose Connect to ChatGPT in the menu, add ModelBrain as a plugin in ChatGPT, then sign in and pick the computer.

Read the guide →
ModelBrain & Grok

Turn on sharing in the menu, add a custom connector in Grok with the relay URL, then sign in and pick the computer. New.

Read the guide →
The ModelBrain menu

Every item in the menu bar and system tray menu, and what it does.

Read the guide →
Clients and permissions

The Allow or Block prompt, forget limits, undo, client tokens, and what client identity does not protect against.

Read the guide →
Your ModelBrain account

Sync between computers, backups, ChatGPT, billing, cancelling and deleting.

Read the guide →
Teams

Share a partition with your team: invitations, roles, access, single sign-on and billing.

Read the guide →
Quickstart

Install, connect, add a folder, and test recall in five steps.

Read the guide →
Instruction tips

Copy-paste project instructions and ten tips for steady recall and saving.

Read the tips →
Add, remove and rescan folders

What gets read, what's excluded automatically, and how to remove one.

Read the guide →
Export and search from the command line

Write your memories to plain Markdown or JSON Lines files, or search them from a terminal.

Read the guide →
Use it with Obsidian

Add your Obsidian vault folder and get answers that cite your notes. No plugin.

Read the guide →
Hardware requirements & tiers

RAM/CPU per tier, and how the model is picked for you.

Read the guide →
Troubleshooting

Fixes for the issues people actually hit.

Read the guide →
Reasoning mode, explained

What it does differently from plain search, and what it costs.

Read the guide →
The fourteen MCP tools
Tool
Behavior
Returns
remember
Stores a fact, decision, or correction. Can carry an object_type, tags, relations to existing memories, and supersedes to replace an older one instead of duplicating it. Marking it inferred keeps it out of default results until reviewed.
key, similar memories, chunk keys for long text
recall
Searches stored memories for what is relevant to the current conversation. Optional reasoning mode adds a citation-verified answer, or says plainly why it could not.
ranked memories with source and relevance, reasoning_status
list_memories
Lists memories by scope, newest first, with no search query. The right call for "what have you remembered about me" or "what is in this folder."
memories in write order
expand
Pulls the full text of a memory that came back too thin, plus its edges and its correction history on request. Reaches superseded or forgotten memories by key.
full text, tags, provenance, edges, history
forget
Takes an explicit mode, revert by default: revert tombstones the current version and brings the one before it back; chain removes a memory's whole correction history; object removes just the one version named. A connector-synced chunk ignores the mode and forgets its whole source, marked so it is never re-ingested automatically.
confirmation, new chain head
partition_create
Creates a separate namespace for memories, for example one per client or codebase.
partition id
partition_use
Binds this connection to a partition so new memories are saved into it and current resolves to it. Per connection: a new connection has no partition chosen, so it saves into unsorted and searches every active partition until it calls this or is bound by a .modelbrain.toml, --partition or MODELBRAIN_PARTITION.
active partition
partition_list
Lists partitions, including the default one named "unsorted". Archived ones only on request.
partitions with ids
partition_rename
Renames a partition by id. The default partition cannot be renamed.
updated partition
partition_archive
Hides a partition from name lookups without deleting anything. Its memories stay reachable by id.
updated partition
partition_restore
Brings an archived partition back, unless another active one has taken its name.
updated partition
diagnostics
Read-only health report: version, store location, live counts, search mode, per-folder sync state and any files that could not be indexed, degraded status.
health report
usage
Read-only summary of this machine's local tool-call log: calls per tool, empty-recall rate, errors by code. Records names and counts only, never memory content, and stays on this machine.
usage summary
ping
Minimal liveness check that does not touch the store.
ok
{ "tool": "recall", "query": "what did we decide about the pricing tiers", "hits": [ { "key": "01M3...", "relevance": 0.71, "text": "Free tier stays local-only, no device cap.", "source": "user", "tags": ["pricing"], "created_at": "2026-08-14T15:02:11Z", "partition": "Product" } ], "reasoning_status": { "available": true }, "status": "ok" }

Reverting to an earlier version is forget's own revert mode, the default; see what a forget call actually has to guarantee.

Parameters & limits
remember

text (required, up to 64 KB), tags, partition, inferred, object_type (free text: architecture_decision/pitfall/convention/verified_command are meaningful conventions, not a fixed enum), relations (edges to existing keys), supersedes (the key this corrects), similar_min_relevance (0.0 to 1.0, how close an existing memory must be to be listed as similar). Returns a key.

recall

query (required), k (1–50, a hard limit; a value outside that range is rejected, not silently clamped), min_relevance, scope (all/user/connectors/connector:<id>), tags, partition_scope (current/all/all_active/id:<ulid>/a partition name), reasoning, widen, verify. Since 0.6: collapse_sources (default true: repeated chunks of one synced file fold into the best chunk; false returns every chunk), dedupe_identical, object_type (one value or a list), created_after and created_before (the first must be earlier than the second), folder, branch_scope (default current), as_of. Hits no longer carry score or pending.

forget

key (required), mode (revert by default, undoing the last correction), chain (tombstone the whole correction history), or object (tombstone just this one). Idempotent: forgetting something already gone isn't an error.

expand

key (required), edges (include linked memories, default false), history (walk the correction chain backward, default false). piece_only (return just the matching piece of a long memory). Text is cut at 64 KB. Returns found: false rather than erroring on an unknown or forgotten key.

list_memories

scope (all/user/connectors), tags, limit (1–50, default 20), newest_first, after_key with the returned next_cursor to page, partition_scope, branch_scope, object_type, created_after, created_before. Lists what is stored without searching.

usage

days (1–90, default 7), sessions (0–50, default 10). Which assistants used ModelBrain, how often, and what they saved or recalled.

A connection that has not picked a partition saves into unsorted and searches every active partition. partition_use, a .modelbrain.toml in the project, --partition or MODELBRAIN_PARTITION bind it to one partition for both saving and searching, the same as recall's partition_scope default. all_active reads every active partition at once and overrides that binding.

When reasoning can't answer

recall called with reasoning on either returns a verified answer or a reasoning_unavailable object naming why, never a guess it couldn't check. Full explanations, in plain language: troubleshooting.

reason
Meaning
model_provisioning
The reasoning model is still downloading (one-time).
hardware_too_slow
This machine is below even the lightest tier's requirements.
timeout
No verified answer inside the time budget.
call_budget_exceeded
The model ran out of reasoning steps before reaching a verified answer.
verification_failed
An answer was generated but failed its own citation check, so it was withheld.
busy
Another reasoning call is already in flight.
model_load_failed
The model file failed to load.
Error codes

A rejected call returns one of these in its error data, not just a message string, so a client can branch on it programmatically.

invalid_params · invalid_key · empty_text · text_too_long · invalid_tag · invalid_scope · invalid_forget_mode · invalid_partition_target · context_window_exceeded · relation_target_not_found · supersedes_conflict · pending_conflict · reserved_partition_name · duplicate_partition_name · partition_not_found · default_partition_immutable · cross_partition_edge · embedding_failed · storage_io · store_corrupt · recovery_required · store_locked · usage_log_unavailable · busy · internal · store_busy · relay_scope · rate_limited · client_token_required · client_rate_limited · client_blocked

Deliberately not over MCP

These manage the installation itself, not a single conversation, so they stay on the command line rather than something an assistant could be talked into calling mid-chat.

connector_add / connector_remove / connector_list

Which folders and sources feed the vault.

backup / restore

Manual snapshot and recovery of the local vault.

housekeeping

Storage-tier maintenance: compaction, tier migration.

Uninstalling

Leaving should be as plain as arriving. Uninstalling is one command, it tells you exactly what it is about to remove, and it does not touch your memories unless you ask it to.

Uninstall

Stops ModelBrain, removes the program and the entry it added to Claude Desktop's settings. Your vault folder is left where it is, and its path is printed. On Linux, run ~/.local/lib/modelbrain/uninstall.sh.

Delete your vault too

Your vault is ordinary files in one folder, so deleting that folder removes everything. On Linux, uninstall.sh --purge-data does it for you. There is nothing to request from us for the free local tier.

By hand

Stop the daemon, delete the vault folder (its location is on the install page for your system), and remove the ModelBrain line from your assistant's MCP settings. The vault is ordinary files, so deleting the folder is complete deletion, with nothing left to ask us for.

If you used sync, managed backup or Teams, uninstalling the software does not cancel the subscription or delete what we hold; cancel from your account, and server-held copies are deleted 30 days after the paid period ends, as the terms describe.

Architecture

How the four storage tiers, the daemon and your assistant fit together.

Read the architecture →