From zero to a compounding knowledge base in seven steps. Local mode is free forever — no account needed.
Requires Node.js. One command gets you going on every platform:
Verify with npx meshnote --version.
A brain is a directory with a specific structure. The init command scaffolds one from a template:
This creates a directory tree with a schema.md (LLM operating instructions),
an empty raw/sources/ folder for your source documents, and a
wiki/ directory where the LLM writes its pages.
~/brains/research/
├── schema.md ← LLM operating instructions
├── raw/sources/ ← you drop files here
└── wiki/
├── index.md ← catalog of all pages
├── log.md ← activity log
├── entities/ ← people, orgs, tools
├── concepts/ ← ideas, topics
├── summaries/ ← one per source
└── synthesis/ ← cross-cutting analyses
The template determines the schema.md — the rules your LLM follows when organizing this brain. Same tool, wildly different behavior:
Papers, methodology, contradictions, an evolving thesis. Tracks confidence levels and source quality.
Chapter-by-chapter companion wiki. Characters, plot threads, themes, world-building. Spoiler-aware.
Private second brain. Journal, goals, relationships, reflections. Privacy-first by default.
Team knowledge base. Meetings, decisions, customers. ADR-style decision pages.
Generic LLM Wiki pattern. Use when none of the above fit — then co-evolve the schema.md with your agent.
Meshnote speaks the Model Context Protocol (MCP). Add this to your agent's MCP config and every registered brain becomes visible to the LLM:
Add to ~/.claude/settings.json under "mcpServers":
{
"mcpServers": {
"meshnote": {
"command": "npx",
"args": ["-y", "meshnote", "mcp"]
}
}
}
Or if you installed globally with npm install -g meshnote:
{
"mcpServers": {
"meshnote": {
"command": "meshnote",
"args": ["mcp"]
}
}
}
This launches meshnote as a local stdio server. It works with any MCP-compatible client — Cursor, Codex, Windsurf, or anything else that supports the protocol.
Your agent now has 14 tools: list_projects, get_schema, read_page, write_page, search_wiki, and more.
Save any document into your brain's raw/sources/ folder. Articles, papers, meeting transcripts, book chapters, podcast notes — anything your agent should know about. Plain text or markdown, no special format required.
Or use the CLI to download from a URL:
Sources are immutable. Once they're in raw/, nothing rewrites them. They're the ground truth your wiki is built from.
In your agent session (Claude Code, Cursor, etc.), just ask in plain English:
"Ingest the new source in my research brain."
Behind the scenes, your agent:
schema.md to understand the operating rules
[[wikilinks]]
You dropped a file and said two words. Your agent wrote a dozen structured, interlinked markdown pages following the brain's schema. Every write is atomic — a crashed ingest never leaves a half-written file.
Everything is plain markdown on disk. Open your project directory in any of these:
Or use the CLI to search and read pages directly:
No lock-in. Your wiki is a directory of markdown files — move it, copy it, version it with git.
Local mode keeps everything on your machine. If you want your brains accessible from any device and any agent — Claude Code on your laptop, Claude.ai on the web, Cursor on another machine — subscribe to hosted mode.
After subscribing, create your brains in the web dashboard and connect your agent to the cloud MCP endpoint:
{
"mcpServers": {
"meshnote": {
"type": "url",
"url": "https://meshnote.io/mcp",
"headers": {
"Authorization": "Bearer mnk_your-api-key"
}
}
}
}
Generate an API key from the web dashboard after logging in. Keys start with mnk_.
Claude.ai supports MCP via OAuth. Add a connector with these settings:
OAuth uses Dynamic Client Registration — no client ID or secret needed. You'll be redirected to log in, and Claude.ai will receive an API key automatically.
Drop sources in, ask your agent questions, watch your wiki grow. The more you use it, the further ahead you get.