MindBase — Karpathy's LLM Wiki, as a product
LLM wiki kit
First committed by frankchu91
Published in frankchu91/mindbase-llm-wiki. Publisher page
137 GitHub stars
What it is
Karpathy's LLM Wiki idea as a product — an AI that builds and maintains a markdown wiki from your notes and sources. MCP server + web UI, runs on free local models (Ollama), no API key needed. MIT.
Summary from the brain’s metadata
Karpathy's LLM Wiki idea as a product — an AI that builds and maintains a markdown wiki from your notes and sources. MCP server + web UI, runs on free local models (Ollama), no API key needed. MIT. One command: starts the local server, opens the web app, and walks you through picking a free local model that fits your RAM. No API key, nothing leaves your machine. (Node 20+)
How it works
Memory model: LLM wiki
AutoGineer overview, from the brain’s own files
Memory model: LLM wiki. Folders: .github (agent config, 2 files); docs (docs, 21 files); packages (source code, 185 files). The agent writes apps/browser-ext, apps/mcp.
| Folder | Role | Files |
|---|---|---|
| .github | agent-config | 2 |
| docs | docs | 21 |
| packages | source-code | 185 |
| .claude-plugin | folder | 1 |
| apps | folder | 512 |
| schema | folder | 5 |
| website | folder | 7 |
The agent writes
- apps/browser-ext evidence: CLAUDE.md
- apps/mcp evidence: CLAUDE.md
Requirements
Runtimes: Node.js
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Google Antigravity, Kiro, OpenCode, Amp, Roo Code, Cline, JetBrains Junie, Devin (ex-Windsurf)
Set it up
This brain runs code automatically: 1 hook (claude-code). Review apps/plugin/hooks/hooks.json before opening the folder in Claude Code. No step below turns a hook on for you.
apps/plugin/hooks/hooks.json:${CLAUDE_PLUGIN_ROOT}/hooks/session-start
Clone the repository at the commit AutoGineer scanned:
git clone https://github.com/frankchu91/mindbase-llm-wiki.git && cd mindbase-llm-wiki && git checkout c5273d2336c4d686df41c2a1495f14f085707f51Claude Code reads CLAUDE.md from this folder automatically.
cd mindbase-llm-wiki && claude
AutoGineer scanned these files at commit c5273d2.
- Not scanned by AutoGineerThe author’s README also describes installing it as a Claude Code plugin marketplace. Read its install section: AutoGineer did not scan that path. https://github.com/frankchu91/mindbase-llm-wiki/blob/c5273d2336c4d686df41c2a1495f14f085707f51/README.md#install
- Not scanned by AutoGineerIts dependencies are installed by npm when you run it and were not scanned by AutoGineer (7 declared). https://www.npmjs.com/package/mindbase-mcp
First committed by frankchu91. Published in frankchu91/mindbase-llm-wiki. Licence: MIT License.
Usage
AutoGineer’s guidance for this type of brain
Put your raw sources in the kit’s folder and ask your agent to maintain the wiki from them: the agent writes the markdown pages and you read them.
Documentation by frankchu91
MindBase — Karpathy's LLM Wiki, as a product
Image: npm Image: npm downloads Image: CI Image: License: MIT Image: Website Image: Glama score
An open-source implementation of Andrej Karpathy's LLM Wiki idea: an AI that builds and maintains a wiki from your sources. Not RAG-in-a-vector-DB. A real markdown wiki on your disk, that an LLM gardens for you between conversations.
npx mindbase-appOne command: starts the local server, opens the web app, and walks you through picking a free local model that fits your RAM. No API key, nothing leaves your machine. (Node 20+)
<p align="center"> <img alt="Demo: /contribute in the MindBase web UI — the AI shows takeaways and a checkbox plan, and writes to the LLM wiki only after approval" src="docs/assets/contribute.gif" width="880"> </p>
MindBase implements Andrej Karpathy's LLM-Wiki pattern: you feed it sources (papers, articles, thoughts); the LLM reads, cross-references, flags contradictions, and writes structured wiki pages. Later, when you ask a question, the wiki already has the synthesized answer — no vector-search re-derivation at query time.
Status: Early access, actively developed. What's new: CHANGELOG · Releases
Why MindBase
You read a lot. Papers, articles, tweets, docs. You want to remember them, connect them, form opinions from them. Today you have two bad options:
Notion / Obsidian / Roam: Passive containers. You do all the organizing. AI features are bolted-on generation, not maintenance.
NotebookLM / Perplexity Pages / ChatGPT search: RAG-based. Nothing accumulates. Every question re-derives the answer from raw sources.
MindBase is the third option: the LLM actively maintains a persistent, structured wiki as you feed it sources. Knowledge compounds. Your context.md gets sharper every time you contribute. The AI remembers you across sessions because your beliefs are written down in markdown files — not stored in a chat history that gets summarized away.
Think of it as a personal Wikipedia that an AI intern writes for you, kept up to date, cross-referenced, and honest about what it doesn't know.
How it works (30 seconds)
Three physical layers on disk (Karpathy's model):
<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="docs/assets/hero-dark.svg"> <img alt="MindBase: you feed sources, the LLM gardens them into a wiki that compounds — plain markdown on your disk" src="docs/assets/hero-light.svg" width="920"> </picture> </p>
| Layer | Who owns it | What lives there |
|---|---|---|
sources/ | You — append-only, the AI never rewrites it | Quick captures, full notes, PDFs, URLs |
context.md + sources/research/ | The AI — every change human-approved | The maintained wiki: synthesis, concept pages, [[wikilinks]] |
state/ · logs/ · artifacts/ | Derived — always rebuildable | Search index, snapshots, lint findings, op history |
Three operations run the loop: ingest (AI reads a source, discusses takeaways, you approve the wiki updates), build (regenerate context.md from everything unbuilt), lint (the AI audits its own wiki for contradictions, stale claims, and orphans).
What makes it different
The AI asks before writing. Every ingest shows takeaways + a checkbox plan; only what you approve gets written. No black-box edits to your knowledge.
You can watch the wiki absorb your notes. Every note carries a status chip — ✨ Add to wiki until digested, ✓ In wiki after.
It audits its own knowledge. One command re-reads the whole wiki and reports contradictions with the exact conflicting sentences quoted. Notion and NotebookLM structurally cannot do this.
Free and local by default. Hardware-detect wizard installs the best Ollama model for your RAM. Cloud keys optional.
Plain markdown on disk. Grep it, git it, open it in Obsidian, leave anytime.
Install
Browser (fastest): npx mindbase-app — shown above. Everything runs locally at localhost:4321.
Claude Code (flagship): the full Karpathy 8-step ingest with sub-agents, slash commands, and per-agent tool boundaries:
/plugin marketplace add frankchu91/mindbase-llm-wiki
/plugin install mb@mindbaseRestart when prompted, then type / — you should see /mb:contribute, /mb:build, /mb:ask, /mb:lint and 8 more. You get 5 sub-agents with strict tool allowlists (the builder has no file-write tool at all — only an atomic-write MCP call), plus a SessionStart hook that auto-injects your project context.
<p align="center"> <img alt="The core flow in Claude Code: /mb:contribute with an arXiv link — download, archive, discuss takeaways, approve, commit" src="docs/assets/terminal-contribute.png" width="880"> </p>
<details> <summary><b>Cursor</b></summary>
Add to ~/.cursor/mcp.json:
{ "mcpServers": { "mindbase": { "command": "npx", "args": ["-y", "mindbase-mcp"] } } }Restart Cursor — the tool picker should list mindbase_contribute and 48 others. Recommended: add a conventions block to ~/.cursor/rules.md so the LLM reliably routes "add to mindbase X" to the tools — copy it from the guide.
</details>
<details> <summary><b>Windsurf</b></summary>
Cascade settings → MCP → add:
{ "mcpServers": { "mindbase": { "command": "npx", "args": ["-y", "mindbase-mcp"] } } }Same rules-file approach as Cursor works for Cascade.
</details>
<details> <summary><b>Cline (VSCode)</b></summary>
Cline settings → MCP Servers:
{ "mcpServers": { "mindbase": { "command": "npx", "args": ["-y", "mindbase-mcp"] } } }Cline auto-detects; every tool call gets a confirmation dialog by default.
</details>
<details> <summary><b>Continue.dev</b></summary>
~/.continue/config.json, under experimental.modelContextProtocolServers:
{ "experimental": { "modelContextProtocolServers": [ { "transport": { "type": "stdio", "command": "npx", "args": ["-y", "mindbase-mcp"] } } ] } }MCP tools appear under @ in chat.
</details>
<details> <summary><b>Any other MCP client</b> (Zed, Aider, Goose, Claude Agent SDK…)</summary>
Point it at npx -y mindbase-mcp as a stdio server. See your client's MCP docs for the config location.
</details>
Next: create your first project and learn the four daily workflows in the Guide →
The web UI
Since 0.3 the browser app stands on its own — write notes in a full WYSIWYG editor (Cmd+N), quick-capture from anywhere (Cmd+I), and run the AI operations with approval cards: /contribute, /build, /lint, /research. Live demos on the website.
<p align="center"> <img alt="MindBase web UI — category tree on the left, the LLM-maintained context.md in the center, chat starters on the right" src="docs/assets/webui.png" width="920"> </p>
Free local models: the setup wizard detects your hardware and installs what fits — llama3.2:3b (8GB), qwen3:14b (24GB+), or Meta's Muse Glimmer 30B (32GB+ Apple Silicon, Ollama ≥ 0.32.7). Measured guidance: qwen3:14b for interactive work (~30s), Glimmer for background lint/build — slower, but its findings quote the exact conflicting sentences. The model switcher on the chat composer flips between them in two clicks.
<details> <summary><b>Feature matrix by editor</b></summary>
| Feature | Claude Code | Cursor / Windsurf / Cline / Continue | Web UI |
|---|---|---|---|
Slash commands (/mb:*) | ✅ | ❌ (use natural language) | ✅ (/contribute, /build, /lint, /research) |
| MCP tools directly | ✅ | ✅ | ❌ |
| Karpathy 8-step ingest with approval | ✅ (sub-agents) | ⚠️ Manual via prompt | ✅ (approval cards) |
| Contribute / ingest PDF & URL | ✅ | ✅ | ✅ (upload + ✨ Process) |
| Ask wiki with cited answers | ✅ | ✅ | ✅ |
| Build / health check | ✅ | ✅ | ✅ |
| Wiki tree browsing + rich editor | ❌ | ❌ | ✅ |
-p project-id routing | ✅ | ⚠️ natural language | ✅ (switcher) |
</details>
Where your data lives
Everything is plain markdown under ~/mindbase-data/ (override: MINDBASE_DATA_DIR):
~/mindbase-data/projects/my-research/
├── README.md # Ops manual — you edit, LLM reads
├── context.md # Synthesized truth — LLM writes, you approve
├── index.yaml # Auto-generated catalog
├── sources/
│ ├── contributors/<you>/ # Your dated entries + notes (append-only)
│ ├── research/ # LLM-authored wiki pages
│ └── raw/ # PDFs, HTML captures
├── logs/ # Chronological operation log
├── artifacts/ # Briefs, exports, lint findings
└── state/builder/snapshots/ # context.md snapshots for rollbackNo proprietary database — what you see on disk is what MindBase knows. git init it, back it up with anything, delete a project with rm -rf.
Architecture at a glance
Claude Code / Cursor / any MCP editor Web UI (npx mindbase-app)
│ MCP · sub-agents with │ /commands ·
│ per-agent tool allowlists │ approval cards
└─────────────┬─────────────────────────┬──────┘
▼ ▼
┌──────────────────────────────────────────────┐
│ One ops engine: gather context → single │
│ constrained JSON completion → human │
│ approval → whitelisted executors → log │
└─────────────────────┬────────────────────────┘
▼
~/mindbase-data/ · plain markdown
(LLM: Ollama local models or any cloud key)Monorepo: packages/core (TS strict library) · apps/mcp (49-tool MCP server) · apps/server + apps/web (Express + React UI) · apps/app (npx launcher) · apps/plugin (Claude Code bundle).
Docs & help
Guide — first project, the four daily workflows, multi-project routing, troubleshooting
Website — live demos
CHANGELOG · Issues — I reply to every issue same-day during beta
The idea: Karpathy's LLM Wiki gist
Roadmap
Next: browser extension for one-click page capture · audio input via Whisper · unified meta-tool for Cursor/Windsurf slash-like UX. Later: team projects with human-in-the-loop review · audio digests · desktop app · mobile capture.
Feedback
Beta through 2026-Q4. If you tried MindBase and gave up — please tell me why: issues or [e-mail address on the upstream page](mailto:e-mail address on the upstream page). The blockers you hit are gold.
License
MIT — do what you want, no warranty. If you build something interesting on top, I'd love to hear about it.
Built with the belief that AI's most valuable gift is not "generation on demand" but "gardening of a persistent artifact you own."
docs/product-strategy-2026-05-25.md
MindBase Product Strategy — 2026-05-25
Written after a 30-commit session that exposed: the product is drifting toward being "AI-flavored Notion" while the unique architecture (LLM-Wiki pattern per Karpathy) is buried under generic chrome. This doc is the strategic reset.
0. The Verdict (TL;DR)
Stop building a general PKM tool. That market has no winner because no one needs a slightly-better Notion + AI. Re-aim MindBase at one sharp wedge the Karpathy LLM-Wiki pattern dominates:
"The research-wiki for knowledge workers doing sustained inquiry."
Drop 50 papers / articles / interview transcripts on a topic → get back a structured, interlinked wiki you can navigate, cite from, and grow over months.
This is a $500M+ niche (researchers + analysts + investigative journalists + solo consultants + grad students), high WTP ($20-50/mo), demoable in 5 minutes, and structurally unattackable by Notion / NotebookLM / ChatGPT Memory.
Tear out: chat-as-main-surface, the Notes/Wiki tab confusion, the homepage chat starter, broad PKM positioning, mobile-first investments.
Double down on: per-project wikis, conversational ingest, lint operation, INDEX-first retrieval, typed contradiction graph, local-first data ownership.
12-month target: 1,000 paying users × $25/mo avg = $25k MRR + a brand that researchers self-organize around.
1. Market Reality (where we actually are)
The PKM category has been failing for 5 years
Roam Research: peaked 2020-21. ~70% user decline since. Founder went quiet. The "graph database for thought" thesis didn't hold.
mem.ai: $33M raised (2022), pivoted twice, struggled with retention. Recent product is barely recognizable as the original "AI notes" pitch.
Notion AI: bolted on, monetized weakly. Users describe it as "okay autocomplete," not transformative. ARR contribution unclear.
Heptabase / Capacities / Tana / Mymind: each carved a small loyal audience (~10-50k paying), none breaking out.
Obsidian: profitable, no VC, dominant in local-first prosumer niche via community plugins — but explicitly not AI-native.
Conclusion: "AI + PKM" without a sharp wedge has failed in market 5 times running. The next "AI notes app" gets ignored. Generic doesn't win here.
What HAS worked in 2024-25
Granola (AI meeting notes): exploded. One wedge — meeting notes — done 10x better than incumbents. ~$15M ARR within 18 months.
Cursor: replaced VSCode for many developers. One wedge — coding — done AI-natively from scratch. $100M+ ARR within 18 months.
Perplexity: AI search. Different category but same pattern: AI-native beats AI-bolted-on, and a sharp wedge beats horizontal.
NotebookLM Audio Overviews: viral 2024. Proved that AI knowledge products CAN go viral when the demo is concrete and the AI is the surprise.
The pattern: AI-first + sharp wedge + viral demo = breakout. AI-bolted-on
horizontal positioning = dies in obscurity.
What's coming that threatens us
ChatGPT Memory + Projects — already shipping. Generic users won't need a separate PKM tool for "ask AI about my stuff."
Claude Projects + Skills — Anthropic's version. Similar trajectory.
NotebookLM expanding to persistent wikis — most likely competitor. Cloud-only is their structural weakness.
Notion AI rebuild — they'll get desperate to defend, eventually ship "Notion AI Wiki Maintainer." Slow but will arrive.
Window: ~12-18 months before AI-native PKM is table stakes. Need to establish a defensible category position now.
2. The Karpathy Pattern is the Lever — But Pattern ≠ Product
Karpathy's article is the best articulation of the AI-native PKM thesis anywhere. It will become as influential as Vannevar Bush's Memex essay was for hypertext.
But Karpathy explicitly says you don't need a product — claude-code + obsidian + CLAUDE.md does it. That's true for 100k power users.
The product opportunity is the other 100M people who:
Want the LLM-Wiki workflow
Won't run a terminal
Won't write a CLAUDE.md
Won't manually invoke
linton Saturday morningNeed mobile/web capture
Need this to "just work" on day one
The product wraps the pattern in:
Zero-config onboarding ("I'm researching X" → project scaffolded)
Visible LLM-at-work (streaming compile, conversational ingest)
Active wiki (daily briefs, contradiction alerts, lint cards)
Cross-device capture (web ext, mobile, MCP for agents)
Polished retrieval (INDEX.md + hybrid search hybrid)
The product is not the pattern. The product is the pattern made effortless.
3. Three Strategic Paths (so you can reject mine)
| Path | Position | Who's it for | WTP | Risk |
|---|---|---|---|---|
| A. Stay horizontal ("AI second brain") | Compete with Notion / mem.ai | "Everyone" | $10/mo, race-to-bottom | High — category has no winners. Likely fail to differentiate. |
| B. Pick the research wedge ("LLM-Wiki for sustained inquiry") | Compete with Notion-for-research + Zotero + Roam + NotebookLM | Researchers, analysts, journalists, grad students | $20-50/mo, paid by users or institutions | Medium — wedge is real, but execution-heavy |
| C. Pick the consumer reading wedge ("Tolkien Gateway for any book") | Compete with Goodreads / Readwise | Avid readers, lifelong learners | $5-10/mo, consumer | High — consumer ARPU low, demos are viral but conversion weak |
My recommendation: Path B (research wedge). Reasons:
Highest WTP ($20-50 sustainable, vs $5-10 consumer)
Sharpest pain (researcher reads 100+ papers/year, remembers <10%)
Demoable (drop 30 papers on RAG → working wiki in 5 min = viral video)
Sophisticated customer (gives product feedback, advocates publicly)
Once won, expandable: research wedge → consulting wedge → team wedge → consumer reading wedge (each as adjacent SKU)
Aligns with founder taste (Karpathy himself uses it this way)
Path C is the second-best if A is rejected — and we could even run B and C as separate product lines later. But picking one first is critical.
4. The Recommended Wedge: Research Wiki
The customer
Primary ICP: Knowledge worker doing sustained inquiry on a topic over weeks/months.
Concrete examples:
PhD student writing a literature review (target: 200+ papers)
Founder researching a new market before raising (target: 50+ interviews, reports)
Tech analyst tracking a vertical (target: ongoing, 10 sources/week)
Investigative journalist on a story (target: court docs, interviews, FOIA)
Solo consultant building reusable IP per practice area
Lawyer building case knowledge (target: precedents, depositions, briefs)
Doctor / researcher tracking a condition (target: papers, patient notes)
What unites them:
Volume: 50-500+ sources per project
Duration: weeks to years
Multi-source synthesis required (single paper insufficient)
Citation matters (must trace claims back to sources)
Recall over time matters (return to project after weeks/months)
Budget exists ($20-200/mo professional tool)
The pain (sharp, urgent, current)
Current workflow for our ICP:
Papers/articles scattered across Zotero, browser tabs, Notion, OneNote
Highlights / notes pile up but never synthesize into anything reusable
"What did I learn last month?" → impossible to answer without re-reading
New paper arrives → no easy way to know "does this contradict what I thought?"
Bibliography for the eventual paper / report = a week of work at the end
Current solutions and their gaps:
Zotero: bibliography only, no synthesis
Notion / Obsidian: manual organization, abandons after 100 sources
Roam Research: graph but no AI maintenance, declined
NotebookLM: cloud-only, conversation-mode (not accumulating wiki), 10-source cap, no projects, no privacy
Perplexity Pro: ad-hoc search, not building a corpus you own
ChatGPT Projects: memory is amorphous chat history, not a navigable wiki
Nobody is shipping "the AI research analyst that builds your wiki for you."
Why MindBase wins this wedge
Already-built advantages (the silver lining of having over-built):
Compile pipeline that updates multiple pages per source (degraded but fixable per the May 22 logs showing 18-22 actions/source)
Typed knowledge graph with contradiction detection
Local-first markdown storage (privacy = required for research)
Multi-surface capture (browser, mobile, MCP)
Hybrid retrieval infrastructure
Streaming compile that can become "watch the AI work"
What needs to be built/changed:
Per-project scoping (current global wiki kills this wedge)
Conversational ingest (the missing step 4 from Karpathy)
Lint operation (the killer differentiator)
INDEX-first retrieval (proper implementation of Karpathy's spec)
Onboarding focused on research projects (not chat / notes)
3-layer architecture made physical (not collapsed into
wiki/notes/)
5. What to RIP OUT of current MindBase
To win the research wedge, these have to go (or get massively de-emphasized):
| Current feature | Verdict | Why |
|---|---|---|
| Chat as home/main surface | Demote. Chat is one operation, not the product. | Karpathy's Query op is supplemental to wiki, not the main UX. Researchers don't open "chat" first — they open "my research project." |
| Notes vs Wiki tab toggle | Rename + restructure. Notes → "Drafts (you)" / Wiki → "Knowledge (AI)" — and Knowledge is the default. | Today's split confuses everyone. |
| Home view (PulseHome) | Replace with project dashboard | Current home is generic. Need project-centric: "Your research project on X — 47 sources, 23 concept pages, 3 contradictions to review." |
| Daily notes / journal | Move to optional separate product. | Diverts focus from research wedge. Reuse the engine later for journal SKU. |
| Spaced repetition (SRS) | Keep but deprioritize UI. Power-user feature. | Don't market it. Research wedge users may discover it; that's fine. |
| Folders as primary organization | De-emphasize. Projects subsume folders. | Folders are Notion-think. Projects + auto-classified wiki pages are the real structure. |
| Mobile app | Pause unless capture-only. | Research happens at desk. Mobile = capture (highlight → send to wiki) only, not a full app. Defer 6 months. |
| Browser ext | Sharpen: focus on academic / paper sites (arXiv, Google Scholar, Semantic Scholar, ssrn.com, jstor.org) | Right now it's a generic web clipper. Make it the best paper-capture tool. |
| Multi-language search | Keep. Researchers globally. Cheap to maintain. | Real edge for non-English research. |
| Audio Overviews (deferred) | Stay deferred. | Not in research wedge value chain. |
| Settings complexity | Simplify radically. One settings page max. | Researchers want zero-config. |
Roughly 30-40% of current UI surface disappears in this reset. That's the price of focus.
6. The Wedge Roadmap (12 months, opinionated)
Phase 1: Architectural reset (Month 1) — non-negotiable foundation
Physically separate
wiki/concepts/(LLM-owned) fromwiki/notes/(user)Implement
wiki/schema.mdper project (Karpathy's "key configuration file")Make
INDEX.mdauto-maintained and the primary retrieval pathExpand
log.mdto record queries + lint passes, not just ingestsFix compile prompt back to 10-15 page touches per source (was working May 22)
Add conversational ingest (the missing "discuss takeaways" turn)
Build lint operation (the 6 checks + 2 suggestions Karpathy listed)
Ship/don't-ship gate: open with a brand-new research project, drop 5 papers, watch wiki grow from 0 → 30 interlinked pages. If demo feels magic, ship. If not, iterate.
Phase 2: Project as first-class + reposition (Month 2)
"Project" replaces "global workspace" as primary entity
Project templates: Literature Review / Market Research / Investigation / Case File / Topic Tracker
Each project = its own scope (sources, wiki, schema, INDEX, log, chat)
Onboarding: "What are you researching?" → scaffolds a project
Rebrand: landing page leads with research wedge messaging
New home: project dashboard (growth metrics, recent wiki updates, lint cards, suggested next questions)
Ship/don't-ship gate: external user can complete onboarding and reach "wiki has 5+ pages" in under 10 minutes without asking for help.
Phase 3: Viral demo + 100 early users (Month 3)
Record 5-minute demo: "Watch me research [topic] in 10 minutes — 30 papers in, wiki grows, contradictions surface, exportable bibliography out"
Twitter/X seeding with researcher influencers (especially ML researchers given the Karpathy connection — natural amplifier)
Hacker News launch ("Show HN: We built Karpathy's LLM-Wiki pattern as a product"). The article cite is gold.
Reddit /r/PhD, /r/AcademicQuant, /r/MachineLearning
Goal: 100 active free users, 10 paying for early-access Pro at $20/mo
Phase 4: Pro tier + capture polish (Months 4-6)
Pro $20/mo: hosted LLM, sync across devices, premium models, higher ingest limits
Browser extension v2: ace academic paper sites
"Project export": full markdown bundle, BibTeX, PDF compiled wiki
"Project share": read-only public link (researchers love showing off)
MCP server v2: any LLM agent (Claude Code, Cursor) can read/write your wiki
Goal: 500 paying users × $20/mo = $10k MRR
Phase 5: Specialization + adjacent SKUs (Months 6-9)
Per-discipline schema templates (Bio, Law, Finance, History, ML, Medicine)
Pre-built ingest connectors (Zotero import, Readwise import, Notion import, Pocket import, Kindle highlights)
"Lint subscription": weekly digest of wiki health → email or app
Consider Reading wedge launch as separate landing page ("MindBase for Books") with shared backend
Goal: 1,500 paying users × $25/mo blended = $37k MRR
Phase 6: Team variant beta (Months 9-12)
Research labs / consulting firms / investigative newsrooms — 5-20 person teams
Shared projects + role permissions
Slack import + meeting transcript import (Otter / Granola APIs)
Pilot pricing: $50/user/mo, 5 design partners
Goal: 3-5 paying teams × ~$500/mo each = additional $2k MRR
Realistic 12-month outcome: ~$30-40k MRR, ~2k paying users, recognized as "the research wiki product" within the LLM-aware knowledge worker community. A respectable seed/A1 fundable trajectory if external capital wanted.
7. Business model
Pricing tiers (proposed)
| Tier | Price | Includes |
|---|---|---|
| Free | $0 | Local-only. Unlimited sources/pages. BYO API key. No sync, no mobile, no hosted LLM. Use case: power users / evaluation. |
| Pro | $20/mo or $200/yr | Hosted LLM (we pay), sync across devices, browser ext + mobile capture, 500 ingests/mo, all features. Use case: individual researcher / analyst. |
| Research | $50/mo or $500/yr | Pro + premium models (Opus / GPT-5), priority lint, 5,000 ingests/mo, scheduled briefs, MCP server access, project export to PDF book. Use case: serious / professional users. |
| Team (later) | $50/user/mo | Shared projects, RBAC, Slack/meeting import, audit logs. 5+ users. |
| Enterprise (later) | Custom | On-prem option, SSO, dedicated support. |
Why this works
Free tier = product-led growth + viral demo
$20 Pro = anchor most common conversion
$50 Research = self-selected serious users; high gross margin (heavy users pay more but use more API)
Team = future leverage when single-user retention is proven
Unit economics sketch
Hosted LLM cost per Pro user: $3-8/mo (claim model, mostly Sonnet)
Pro gross margin: 60-85%
Research user margin: 50-70% (heavier API use, premium models)
Break-even at ~500 paying users assuming $5k/mo opex (1 founder + minimal infra)
Distribution
Inbound: SEO ("AI for literature review," "AI research tool," "Karpathy LLM wiki"), HN, Twitter/X, demos on YouTube
Community: ML / academic Twitter, PhD Discord servers, Roam refugees, Obsidian community
Partnerships (later): Zotero plugin, Readwise integration, Anthropic Skills directory feature
Paid (later): highly targeted academic Google Ads, ResearchGate ads
Anti-distribution: do NOT pursue Producthunt-style spray (low-quality signups, no retention)
8. Moats — what makes this defensible
In order of strength:
Per-project evolving schema (
wiki/schema.md). The longer you use it, the better tuned to YOUR research style. Switching cost compounds. Cannot be replicated by a competitor onboarding from zero.Local-first + data ownership. A meaningful fraction of researchers will not consider cloud-only tools (HIPAA-adjacent fields, journalists, IP-sensitive work). Notion and NotebookLM structurally cannot serve them.
Typed contradiction graph that gets denser with corpus. A new entrant has to re-detect contradictions on import; we surface them as you go. Quality of this feature is corpus-dependent.
MCP-as-platform. Once you're the LLM agent's persistent memory for research, agents accumulate context inside you. Cursor / Claude Code / future agents become your distribution because they need you.
Brand as "the Karpathy-pattern product." First-mover on the named pattern. Influencer reach via the gist. We can build the canonical implementation in public.
Speed of iteration on the pattern. Whoever ships lint / file-back / conversational ingest first owns the mental model. Notion is too big to pivot; NotebookLM is constrained by Google review cycles.
What is NOT a moat:
Pretty UI (copyable)
LLM quality (we use the same models)
Compile speed (model providers dominate)
Folder UX (Notion / Obsidian are better)
Generic chat (everyone has it)
9. Existential risks (in priority)
ChatGPT / Claude Memory eats casual use case. Probability: 70% within 12 months.
Mitigation: dominate the research wedge before this. Our users need structure (citations, exports, contradictions) — chat memory is amorphous. Different job.
NotebookLM ships persistent wikis. Probability: 50% within 12 months.
Mitigation: we're local-first; they're not. Privacy researchers / IP- sensitive fields are ours. Also: ship faster.
The Karpathy pattern just doesn't scale past 1000 pages. Probability: 30% — real engineering risk.
Mitigation: dogfood hard. Build at 1000+ page scale in our own usage. Have a "scale strategy" (smarter indexing, page partitioning, cluster summaries) ready to ship if hit.
Unit economics on hosted LLM Pro tier are upside-down. Probability: 40% if not careful.
Mitigation: aggressive prompt caching, smart model routing (Haiku for classification, Sonnet for compile, Opus only on demand), per-user monthly LLM budget, BYO-API option for heavy users.
Researchers won't trust a "AI black box" for serious work. Probability: 40%.
Mitigation: provenance everywhere, citations visible, audit log surfaced, "show me the prompts" mode for skeptics.
Founder bandwidth. Probability: high if solo.
Mitigation: ruthless scope. Don't build a journaling app, a team SKU, a mobile app, AND a research wedge simultaneously.
10. What this strategy explicitly rejects
For clarity — these are decisions, not oversights:
❌ Becoming a Notion alternative. That market has no winners and we can't out-broad Notion.
❌ Becoming a consumer journaling app. Lower WTP, less differentiation from Reflect / Mymind.
❌ Building a team SKU in year 1. Team products require sales / support / SOC2 / enterprise UX that solo founders can't sustain.
❌ Building a mobile-first product. Research happens at desk. Mobile is capture-only.
❌ Going after Cursor / NotebookLM / ChatGPT directly. We can't. Find adjacent ground.
❌ AI auto-everything. Conversational ingest is the OPPOSITE — user curates, AI executes. Don't try to be "magic AI that does it all."
❌ Spending time on chat UX polish. Chat is supplementary, not core.
11. The decisions I need from you
Before any code changes, these need your call:
| # | Decision | Recommended | Cost of being wrong |
|---|---|---|---|
| 1 | Pick the wedge: A (horizontal) / B (research) / C (reading) | B (research) | If wrong: 6 months wasted positioning. |
| 2 | Free + Pro + Research tier model OR something else? | Free / $20 Pro / $50 Research | Wrong: pricing arbitrage |
| 3 | Cut chat from home / make wiki the main surface? | YES, cut it | Wrong: confused users |
| 4 | Tear out folders in favor of projects, or keep both? | Projects subsume folders | Wrong: migration pain |
| 5 | Phase 1 architectural reset starts when? | This week | Wrong: drift continues |
| 6 | Hire / cofounder / solo for next 12 months? | Solo to product-market fit; cofounder around month 6 | Wrong: scope / morale |
| 7 | Raise external capital or bootstrap? | Bootstrap to first $10k MRR, then optional seed | Wrong: dilution / wrong board |
12. Closing thesis
MindBase is a year too early or two years too late as "yet another AI PKM tool." It's exactly on time as the canonical implementation of Karpathy's LLM-Wiki pattern, sharpened to the research-wiki wedge.
The next 90 days decide whether MindBase becomes:
(A) Another forgotten note-taking app that pivoted three times, or
(B) The product researchers / analysts cite when asked "how do you keep track of everything you've read?"
The architecture is mostly right. The product surface is mostly wrong. The fix is tractable but requires saying no to most current code.
My recommendation: commit to Path B, start Phase 1 (architectural reset) this week, ship a demo-able research wedge by end of Q1.
If you reject this, the next-best is Path C (reading wedge) — same architecture, different ICP, lower WTP but more viral.
Path A (stay horizontal) I do not recommend at any price. The PKM graveyard is full of horizontal AI tools.
512 files · 497 not served here
- .claude-plugin/marketplace.json (not served here)
- .github/workflows/ci.yml (not served here)
- .github/workflows/pages.yml (not served here)
- .gitignore (not served here)
- ATTRIBUTION.md
- AUTOGINEER-RUNS.md
- CHANGELOG.md
- CLAUDE.md
- CONTRIBUTING.md
- Dockerfile (not served here)
- LICENSE
- README.md
- apps/android/.gitignore (not served here)
- apps/android/README.md (not served here)
- apps/android/app/build.gradle.kts (not served here)
- apps/android/app/proguard-rules.pro (not served here)
- apps/android/app/src/main/AndroidManifest.xml (not served here)
- apps/android/app/src/main/kotlin/app/mindbase/android/APIClient.kt (not served here)
- apps/android/app/src/main/kotlin/app/mindbase/android/InboxScreen.kt (not served here)
- apps/android/app/src/main/kotlin/app/mindbase/android/MainActivity.kt (not served here)
- apps/android/app/src/main/kotlin/app/mindbase/android/PairingScreen.kt (not served here)
- apps/android/app/src/main/kotlin/app/mindbase/android/QRScannerScreen.kt (not served here)
- apps/android/app/src/main/kotlin/app/mindbase/android/SettingsScreen.kt (not served here)
- apps/android/app/src/main/kotlin/app/mindbase/android/ShareReceiverActivity.kt (not served here)
- apps/android/app/src/main/kotlin/app/mindbase/android/TokenStore.kt (not served here)
- apps/android/app/src/main/kotlin/app/mindbase/android/VoiceScreen.kt (not served here)
- apps/android/app/src/main/res/values/strings.xml (not served here)
- apps/android/app/src/main/res/values/themes.xml (not served here)
- apps/android/build.gradle.kts (not served here)
- apps/android/gradle.properties (not served here)
- apps/android/gradle/libs.versions.toml (not served here)
- apps/android/gradle/wrapper/gradle-wrapper.properties (not served here)
- apps/android/gradlew (not served here)
- apps/android/gradlew.bat (not served here)
- apps/android/settings.gradle.kts (not served here)
- apps/app/bin/mindbase-app.js (not served here)
- apps/app/build.mjs (not served here)
- apps/app/package.json (not served here)
- apps/app/smoke.mjs (not served here)
- apps/browser-ext/.gitignore (not served here)
- apps/browser-ext/README.md (not served here)
- apps/browser-ext/entrypoints/background.ts (not served here)
- apps/browser-ext/entrypoints/options/index.html (not served here)
- apps/browser-ext/entrypoints/options/main.ts (not served here)
- apps/browser-ext/entrypoints/options/style.css (not served here)
- apps/browser-ext/entrypoints/popup/index.html (not served here)
- apps/browser-ext/entrypoints/popup/main.ts (not served here)
- apps/browser-ext/entrypoints/popup/style.css (not served here)
- apps/browser-ext/lib/api.ts (not served here)
- apps/browser-ext/lib/captures.ts (not served here)
- apps/browser-ext/lib/store.ts (not served here)
- apps/browser-ext/package.json (not served here)
- apps/browser-ext/playwright.config.ts (not served here)
- apps/browser-ext/test/badge.spec.ts (not served here)
- apps/browser-ext/test/helpers/extension-fixture.ts (not served here)
- apps/browser-ext/test/popup.spec.ts (not served here)
- apps/browser-ext/test/right-click-capture.spec.ts (not served here)
- apps/browser-ext/tsconfig.json (not served here)
- apps/browser-ext/wxt.config.ts (not served here)
- apps/cli/README.md (not served here)
- apps/cli/package.json (not served here)
- apps/cli/src/commands/ingest.ts (not served here)
- apps/cli/src/commands/init.ts (not served here)
- apps/cli/src/commands/lint.ts (not served here)
- apps/cli/src/commands/query.ts (not served here)
- apps/cli/src/commands/rebuild-index.ts (not served here)
- apps/cli/src/config.ts (not served here)
- apps/cli/src/index.ts (not served here)
- apps/cli/src/output.ts (not served here)
- apps/cli/tsconfig.json (not served here)
- apps/cli/tsup.config.ts (not served here)
- apps/extension/manifest.json (not served here)
- apps/extension/package.json (not served here)
- apps/extension/popup.html (not served here)
- apps/extension/src/background.ts (not served here)
- apps/extension/src/content.ts (not served here)
- apps/extension/src/popup.ts (not served here)
- apps/extension/tsconfig.json (not served here)
- apps/extension/vite.config.ts (not served here)
- apps/ios/.gitignore (not served here)
- apps/ios/MindBase/APIClient.swift (not served here)
- apps/ios/MindBase/ContentView.swift (not served here)
- apps/ios/MindBase/InboxView.swift (not served here)
- apps/ios/MindBase/Info.plist (not served here)
- apps/ios/MindBase/KeychainStore.swift (not served here)
- apps/ios/MindBase/MindBase.entitlements (not served here)
- apps/ios/MindBase/MindBaseApp.swift (not served here)
- apps/ios/MindBase/PairingView.swift (not served here)
- apps/ios/MindBase/QRScannerView.swift (not served here)
- apps/ios/MindBase/VoiceRecorderView.swift (not served here)
- apps/ios/MindBaseUITests/Info.plist (not served here)
- apps/ios/MindBaseUITests/MindBaseUITests.swift (not served here)
- apps/ios/README.md (not served here)
- apps/ios/ShareExtension/Info.plist (not served here)
- apps/ios/ShareExtension/ShareExtension.entitlements (not served here)
- apps/ios/ShareExtension/ShareViewController.swift (not served here)
- apps/ios/project.yml (not served here)
- apps/ios/test.sh (not served here)
- apps/mcp/README.md (not served here)
- apps/mcp/package.json (not served here)
- apps/mcp/server.json (not served here)
- apps/mcp/src/cli.ts (not served here)
- apps/mcp/src/context.ts (not served here)
- apps/mcp/src/index.ts (not served here)
- apps/mcp/src/lib/error.ts (not served here)
- apps/mcp/src/lib/extract-pdf.ts (not served here)
- apps/mcp/src/lib/markdown-bundle.ts (not served here)
- apps/mcp/src/lib/plan-cache.ts (not served here)
- apps/mcp/src/lib/resolve-project.ts (not served here)
- apps/mcp/src/lib/safe-write.ts (not served here)
- apps/mcp/src/lib/synthesis-cache.ts (not served here)
- apps/mcp/src/lib/synthesis-runner.ts (not served here)
- apps/mcp/src/prompts/audit.ts (not served here)
- apps/mcp/src/prompts/brainstorm.ts (not served here)
- apps/mcp/src/prompts/connect.ts (not served here)
- apps/mcp/src/prompts/daily-digest.ts (not served here)
- apps/mcp/src/prompts/explain.ts (not served here)
- apps/mcp/src/prompts/index.ts (not served here)
- apps/mcp/src/prompts/quiz.ts (not served here)
- apps/mcp/src/prompts/write.ts (not served here)
- apps/mcp/src/resources/index.ts (not served here)
- apps/mcp/src/tools/add-rss-feed.ts (not served here)
- apps/mcp/src/tools/answer-card.ts (not served here)
- apps/mcp/src/tools/append-log.ts (not served here)
- apps/mcp/src/tools/append-to-page.ts (not served here)
- apps/mcp/src/tools/apply-template.ts (not served here)
- apps/mcp/src/tools/ask-wiki.ts (not served here)
- apps/mcp/src/tools/atomic-write-context.ts (not served here)
- apps/mcp/src/tools/contribute.ts (not served here)
- apps/mcp/src/tools/create-card.ts (not served here)
- apps/mcp/src/tools/create-daily-note.ts (not served here)
- apps/mcp/src/tools/create-note.ts (not served here)
- apps/mcp/src/tools/export-project.ts (not served here)
- apps/mcp/src/tools/export-subgraph.ts (not served here)
- apps/mcp/src/tools/find-contradictions.ts (not served here)
- apps/mcp/src/tools/find-gaps.ts (not served here)
- apps/mcp/src/tools/find-orphans.ts (not served here)
- apps/mcp/src/tools/find-related.ts (not served here)
- apps/mcp/src/tools/gather-sources.ts (not served here)
- apps/mcp/src/tools/generate-daily-brief.ts (not served here)
- apps/mcp/src/tools/get-graph-insights.ts (not served here)
- apps/mcp/src/tools/get-pulse.ts (not served here)
- apps/mcp/src/tools/index.ts (not served here)
- apps/mcp/src/tools/ingest-execute.ts (not served here)
- apps/mcp/src/tools/ingest-file.ts (not served here)
- apps/mcp/src/tools/ingest-plan.ts (not served here)
- apps/mcp/src/tools/ingest-source.ts (not served here)
- apps/mcp/src/tools/init-project.ts (not served here)
- apps/mcp/src/tools/list-chats.ts (not served here)
- apps/mcp/src/tools/list-feeds.ts (not served here)
- apps/mcp/src/tools/list-recent.ts (not served here)
- apps/mcp/src/tools/list-review-cards.ts (not served here)
- apps/mcp/src/tools/load-project.ts (not served here)
- apps/mcp/src/tools/migrate.ts (not served here)
- apps/mcp/src/tools/quick-capture.ts (not served here)
- apps/mcp/src/tools/read-wiki-page.ts (not served here)
- apps/mcp/src/tools/rebuild-index.ts (not served here)
- apps/mcp/src/tools/recall-chat.ts (not served here)
- apps/mcp/src/tools/research-save.ts (not served here)
- apps/mcp/src/tools/run-wiki-health.ts (not served here)
- apps/mcp/src/tools/save-chat-excerpt.ts (not served here)
- apps/mcp/src/tools/search-all-projects.ts (not served here)
- apps/mcp/src/tools/search-in-project.ts (not served here)
- apps/mcp/src/tools/search-wiki.ts (not served here)
- apps/mcp/src/tools/semantic-search.ts (not served here)
- apps/mcp/src/tools/set-visibility.ts (not served here)
- apps/mcp/src/tools/status.ts (not served here)
- apps/mcp/src/tools/suggest-links.ts (not served here)
- apps/mcp/src/tools/synthesize-topic.ts (not served here)
- apps/mcp/src/tools/tag-note.ts (not served here)
- apps/mcp/src/tools/update-note-section.ts (not served here)
- apps/mcp/src/tools/validate-structure.ts (not served here)
- apps/mcp/test/full-smoke.mjs (not served here)
- apps/mcp/test/smoke.mjs (not served here)
- apps/mcp/test/tools-call.mjs (not served here)
- apps/mcp/tsconfig.json (not served here)
- apps/mcp/tsup.config.ts (not served here)
- apps/plugin/.claude-plugin/marketplace.json (not served here)
- apps/plugin/.claude-plugin/plugin.json (not served here)
- apps/plugin/.gitignore (not served here)
- apps/plugin/.mcp.json (not served here)
- apps/plugin/README.md (not served here)
- apps/plugin/agents/builder.md (not served here)
- apps/plugin/agents/contributor.md (not served here)
- apps/plugin/agents/curator.md (not served here)
- apps/plugin/agents/migrator.md (not served here)
- apps/plugin/agents/researcher.md (not served here)
- apps/plugin/commands/ask.md (not served here)
- apps/plugin/commands/build.md (not served here)
- apps/plugin/commands/contribute.md (not served here)
- apps/plugin/commands/daily-brief.md (not served here)
- apps/plugin/commands/export.md (not served here)
- apps/plugin/commands/init.md (not served here)
- apps/plugin/commands/lint.md (not served here)
- apps/plugin/commands/load.md (not served here)
- apps/plugin/commands/migrate.md (not served here)
- apps/plugin/commands/new-project.md (not served here)
- apps/plugin/commands/research.md (not served here)
- apps/plugin/commands/status.md (not served here)
- apps/plugin/hooks/hooks.json (not served here)
- apps/plugin/hooks/session-start (not served here)
- apps/plugin/package.json (not served here)
- apps/plugin/scripts/build-mcp-bundle.sh (not served here)
- apps/plugin/scripts/verify-plugin.sh (not served here)
- apps/plugin/skills/mindbase/SKILL.md (not served here)
- apps/plugin/templates/README.md.template (not served here)
- apps/plugin/templates/context.md.template (not served here)
- apps/plugin/templates/empty.md.template (not served here)
- apps/plugin/templates/schema-templates/investigation.md.template (not served here)
- apps/plugin/templates/schema-templates/literature-review.md.template (not served here)
- apps/plugin/templates/schema-templates/market-research.md.template (not served here)
- apps/plugin/templates/schema-templates/reading-companion.md.template (not served here)
- apps/plugin/templates/schema-templates/topic-tracker.md.template (not served here)
- apps/plugin/templates/soul.md.template (not served here)
- apps/plugin/tsconfig.json (not served here)
- apps/server/package.json (not served here)
- apps/server/scripts/migrate-original-binaries.ts (not served here)
- apps/server/src/cli.ts (not served here)
- apps/server/src/config.ts (not served here)
- apps/server/src/context.ts (not served here)
- apps/server/src/google-drive.ts (not served here)
- apps/server/src/index.ts (not served here)
- apps/server/src/lib/.gitkeep (not served here)
- apps/server/src/lib/__tests__/layout-guard.test.ts (not served here)
- apps/server/src/lib/__tests__/tree-paths.test.ts (not served here)
- apps/server/src/lib/__tests__/user-attribution.test.ts (not served here)
- apps/server/src/lib/analysis-scheduler.ts (not served here)
- apps/server/src/lib/article-extract.ts (not served here)
- apps/server/src/lib/attachment-helpers.ts (not served here)
- apps/server/src/lib/audio.ts (not served here)
- apps/server/src/lib/binary-probe.ts (not served here)
- apps/server/src/lib/brief-scheduler.test.ts (not served here)
- apps/server/src/lib/brief-scheduler.ts (not served here)
- apps/server/src/lib/brief.test.ts (not served here)
- apps/server/src/lib/brief.ts (not served here)
- apps/server/src/lib/capture-worker.test.ts (not served here)
- apps/server/src/lib/capture-worker.ts (not served here)
- apps/server/src/lib/changes-log.ts (not served here)
- apps/server/src/lib/citations.ts (not served here)
- apps/server/src/lib/classify-worker.ts (not served here)
- apps/server/src/lib/compile-deps.ts (not served here)
- apps/server/src/lib/curation.ts (not served here)
- apps/server/src/lib/daily-entry.test.ts (not served here)
- apps/server/src/lib/daily-entry.ts (not served here)
- apps/server/src/lib/devices.test.ts (not served here)
- apps/server/src/lib/devices.ts (not served here)
- apps/server/src/lib/embedder.ts (not served here)
- apps/server/src/lib/embedding-indexer.ts (not served here)
- apps/server/src/lib/extract-json.ts (not served here)
- apps/server/src/lib/extract-pdf.ts (not served here)
- apps/server/src/lib/feeds.test.ts (not served here)
- apps/server/src/lib/frontmatter.ts (not served here)
- apps/server/src/lib/hash.ts (not served here)
- apps/server/src/lib/inbox.test.ts (not served here)
- apps/server/src/lib/inbox.ts (not served here)
- apps/server/src/lib/layout-guard.ts (not served here)
- apps/server/src/lib/mdns.ts (not served here)
- apps/server/src/lib/model-recommend.test.ts (not served here)
- apps/server/src/lib/model-recommend.ts (not served here)
- apps/server/src/lib/network.ts (not served here)
- apps/server/src/lib/ocr-tesseract.ts (not served here)
- apps/server/src/lib/ocr-worker.ts (not served here)
- apps/server/src/lib/ocr.ts (not served here)
- apps/server/src/lib/query-expand.ts (not served here)
- apps/server/src/lib/rss-worker.test.ts (not served here)
- apps/server/src/lib/rss-worker.ts (not served here)
- apps/server/src/lib/srs-worker.test.ts (not served here)
- apps/server/src/lib/srs-worker.ts (not served here)
- apps/server/src/lib/synthesis-cache.test.ts (not served here)
- apps/server/src/lib/synthesis-cache.ts (not served here)
- apps/server/src/lib/synthesis-worker.ts (not served here)
- apps/server/src/lib/synthesis.ts (not served here)
- apps/server/src/lib/system-info.ts (not served here)
- apps/server/src/lib/tree-paths.ts (not served here)
- apps/server/src/lib/user-attribution.ts (not served here)
- apps/server/src/lib/wiki-health.ts (not served here)
- apps/server/src/manifest.ts (not served here)
- apps/server/src/ops/executors.test.ts (not served here)
- apps/server/src/ops/executors.ts (not served here)
- apps/server/src/ops/gather.test.ts (not served here)
- apps/server/src/ops/gather.ts (not served here)
- apps/server/src/ops/llm.ts (not served here)
- apps/server/src/ops/recipes/build.ts (not served here)
- apps/server/src/ops/recipes/contribute.ts (not served here)
- apps/server/src/ops/recipes/lint.ts (not served here)
- apps/server/src/ops/recipes/research.ts (not served here)
- apps/server/src/ops/runner.test.ts (not served here)
- apps/server/src/ops/runner.ts (not served here)
- apps/server/src/ops/types.ts (not served here)
- apps/server/src/ops/web-search.ts (not served here)
- apps/server/src/routes/agent-history.ts (not served here)
- apps/server/src/routes/analysis.ts (not served here)
- apps/server/src/routes/answer-file-back.ts (not served here)
- apps/server/src/routes/ask.ts (not served here)
- apps/server/src/routes/audit-log.ts (not served here)
- apps/server/src/routes/brief.ts (not served here)
- apps/server/src/routes/capture.ts (not served here)
- apps/server/src/routes/chats.ts (not served here)
- apps/server/src/routes/classify.ts (not served here)
- apps/server/src/routes/compile-stream.ts (not served here)
- apps/server/src/routes/compile.ts (not served here)
- apps/server/src/routes/config.ts (not served here)
- apps/server/src/routes/crosslink.ts (not served here)
- apps/server/src/routes/devices.ts (not served here)
- apps/server/src/routes/feeds.ts (not served here)
- apps/server/src/routes/file_to_wiki.ts (not served here)
- apps/server/src/routes/folders.ts (not served here)
- apps/server/src/routes/google.ts (not served here)
- apps/server/src/routes/graph.ts (not served here)
- apps/server/src/routes/inbox.ts (not served here)
- apps/server/src/routes/ingest-stream.ts (not served here)
- apps/server/src/routes/ingest.ts (not served here)
- apps/server/src/routes/insights.ts (not served here)
- apps/server/src/routes/lint.ts (not served here)
- apps/server/src/routes/network.ts (not served here)
- apps/server/src/routes/obsidian.ts (not served here)
- apps/server/src/routes/ollama.ts (not served here)
- apps/server/src/routes/ops.ts (not served here)
- apps/server/src/routes/project-schema.ts (not served here)
- apps/server/src/routes/project-suggestions.ts (not served here)
- apps/server/src/routes/projects.ts (not served here)
- apps/server/src/routes/pulse.ts (not served here)
- apps/server/src/routes/schema.ts (not served here)
- apps/server/src/routes/search.ts (not served here)
- apps/server/src/routes/semantic-search.ts (not served here)
- apps/server/src/routes/server.ts (not served here)
- apps/server/src/routes/srs.ts (not served here)
- apps/server/src/routes/synthesize.ts (not served here)
- apps/server/src/routes/trash.ts (not served here)
- apps/server/src/routes/tree/__tests__/crud.test.ts (not served here)
- apps/server/src/routes/tree/__tests__/list.test.ts (not served here)
- apps/server/src/routes/tree/__tests__/quick.test.ts (not served here)
- apps/server/src/routes/tree/__tests__/raw.test.ts (not served here)
- apps/server/src/routes/tree/attachments.ts (not served here)
- apps/server/src/routes/tree/backlinks.ts (not served here)
- apps/server/src/routes/tree/crud.ts (not served here)
- apps/server/src/routes/tree/index.ts (not served here)
- apps/server/src/routes/tree/list.ts (not served here)
- apps/server/src/routes/tree/quick.ts (not served here)
- apps/server/src/routes/tree/raw.ts (not served here)
- apps/server/src/routes/tree/template.ts (not served here)
- apps/server/src/safe-path.ts (not served here)
- apps/server/src/schema.ts (not served here)
- apps/server/src/scripts/migrate-concepts-to-layer.ts (not served here)
- apps/server/src/scripts/rebuild-index.ts (not served here)
- apps/server/test/attachments-e2e.test.ts (not served here)
- apps/server/test/brief-e2e.test.ts (not served here)
- apps/server/test/capture-e2e.test.ts (not served here)
- apps/server/test/devices-e2e.test.ts (not served here)
- apps/server/test/graph-e2e.test.ts (not served here)
- apps/server/test/helpers/server-fixture.ts (not served here)
- apps/server/test/ingest-revision.test.ts (not served here)
- apps/server/test/insights-api.test.ts (not served here)
- apps/server/test/mcp-tools-e2e.test.ts (not served here)
- apps/server/test/network-e2e.test.ts (not served here)
- apps/server/test/notes-e2e.test.ts (not served here)
- apps/server/test/pulse-e2e.test.ts (not served here)
- apps/server/test/raw-api.test.ts (not served here)
- apps/server/test/rss-e2e.test.ts (not served here)
- apps/server/test/schema-api.test.ts (not served here)
- apps/server/test/search-e2e.test.ts (not served here)
- apps/server/test/srs-e2e.test.ts (not served here)
- apps/server/test/synthesize-e2e.test.ts (not served here)
- apps/server/test/wiki-edit-e2e.test.ts (not served here)
- apps/server/test/wiki-rename-duplicate.test.ts (not served here)
- apps/server/tsconfig.json (not served here)
- apps/web/index.html (not served here)
- apps/web/package.json (not served here)
- apps/web/playwright.config.ts (not served here)
- apps/web/postcss.config.js (not served here)
- apps/web/src/App.tsx (not served here)
- apps/web/src/components/ActionChip.tsx (not served here)
- apps/web/src/components/AddEntryModal.tsx (not served here)
- apps/web/src/components/AiClientsSetup.tsx (not served here)
- apps/web/src/components/ArticleView.tsx (not served here)
- apps/web/src/components/BulkClassifyModal.tsx (not served here)
- apps/web/src/components/CardsOnArticle.tsx (not served here)
- apps/web/src/components/ChatMessage.tsx (not served here)
- apps/web/src/components/ChatView.tsx (not served here)
- apps/web/src/components/CitationChip.tsx (not served here)
- apps/web/src/components/CommandPalette.tsx (not served here)
- apps/web/src/components/CompileHistoryView.tsx (not served here)
- apps/web/src/components/CompileProgressView.tsx (not served here)
- apps/web/src/components/ContradictionCard.tsx (not served here)
- apps/web/src/components/DailyBriefSettings.tsx (not served here)
- apps/web/src/components/DeviceCard.tsx (not served here)
- apps/web/src/components/DevicesPage.tsx (not served here)
- apps/web/src/components/DrivePickerModal.tsx (not served here)
- apps/web/src/components/EdgeTypeBadge.tsx (not served here)
- apps/web/src/components/FolderBreadcrumb.tsx (not served here)
- apps/web/src/components/GapCard.tsx (not served here)
- apps/web/src/components/GraphView.tsx (not served here)
- apps/web/src/components/InboxList.tsx (not served here)
- apps/web/src/components/InboxPage.tsx (not served here)
- apps/web/src/components/IndexingToast.tsx (not served here)
- apps/web/src/components/IngestForm.tsx (not served here)
- apps/web/src/components/KindFilterChips.tsx (not served here)
- apps/web/src/components/NetworkPanel.tsx (not served here)
- apps/web/src/components/NoteContextMenu.tsx (not served here)
- apps/web/src/components/NotePane.tsx (not served here)
- apps/web/src/components/PairCodeQR.tsx (not served here)
- apps/web/src/components/PulseHome.tsx (not served here)
- apps/web/src/components/RawSourceView.tsx (not served here)
- apps/web/src/components/RenameNoteModal.tsx (not served here)
- apps/web/src/components/ReviewView.tsx (not served here)
- apps/web/src/components/RssFeedsSettings.tsx (not served here)
- apps/web/src/components/SchemaSettings.tsx (not served here)
- apps/web/src/components/SearchResultRow.tsx (not served here)
- apps/web/src/components/SelectionToolbar.tsx (not served here)
- apps/web/src/components/SettingsPage.tsx (not served here)
- apps/web/src/components/SettingsScreen.tsx (not served here)
- apps/web/src/components/SetupWizard.tsx (not served here)
- apps/web/src/components/SrsSettings.tsx (not served here)
- apps/web/src/components/TimeGroupedList.tsx (not served here)
- apps/web/src/components/Toast.tsx (not served here)
- apps/web/src/components/TodaysBriefCard.tsx (not served here)
- apps/web/src/components/TrashView.tsx (not served here)
- apps/web/src/components/WikiHealthSection.tsx (not served here)
- apps/web/src/components/WikiHealthView.tsx (not served here)
- apps/web/src/components/WikiHome.tsx (not served here)
- apps/web/src/components/WikilinkPopover.tsx (not served here)
- apps/web/src/components/chat/FileBackModal.tsx (not served here)
- apps/web/src/components/dashboard/ProjectDashboard.tsx (not served here)
- apps/web/src/components/editor/AIBubbleMenu.tsx (not served here)
- apps/web/src/components/editor/EditorToolbar.tsx (not served here)
- apps/web/src/components/editor/LivePreviewEditor.tsx (not served here)
- apps/web/src/components/editor/SlashMenu.tsx (not served here)
- apps/web/src/components/editor/WikiEditor.tsx (not served here)
- apps/web/src/components/editor/plugins/callout.ts (not served here)
- apps/web/src/components/editor/plugins/citation.ts (not served here)
- apps/web/src/components/editor/plugins/image-paste.ts (not served here)
- apps/web/src/components/editor/plugins/slash-menu.ts (not served here)
- apps/web/src/components/editor/plugins/wikilink.ts (not served here)
- apps/web/src/components/editor/slashCommands.ts (not served here)
- apps/web/src/components/editor/wikilinkAutocomplete.ts (not served here)
- apps/web/src/components/empty/EmptyState.tsx (not served here)
- apps/web/src/components/empty/InboxEmpty.tsx (not served here)
- apps/web/src/components/empty/RecentEmpty.tsx (not served here)
- apps/web/src/components/empty/TreeEmpty.tsx (not served here)
- apps/web/src/components/ingest/IngestApprovalModal.tsx (not served here)
- apps/web/src/components/note/BacklinksPanel.tsx (not served here)
- apps/web/src/components/note/MiniGraphPanel.tsx (not served here)
- apps/web/src/components/note/OutlinePanel.tsx (not served here)
- apps/web/src/components/note/RightRail.tsx (not served here)
- apps/web/src/components/onboarding/OnboardingWizard.tsx (not served here)
- apps/web/src/components/ops/FindingCard.tsx (not served here)
- apps/web/src/components/ops/OpRun.tsx (not served here)
- apps/web/src/components/ops/SlashMenu.tsx (not served here)
- apps/web/src/components/ops/ops-types.ts (not served here)
- apps/web/src/components/settings/DataLocationView.tsx (not served here)
- apps/web/src/components/settings/SchemaEditor.tsx (not served here)
- apps/web/src/components/settings/SchemaSettingsView.tsx (not served here)
- apps/web/src/components/shell/AppShell.tsx (not served here)
- apps/web/src/components/shell/Canvas.tsx (not served here)
- apps/web/src/components/shell/CanvasToolbar.tsx (not served here)
- apps/web/src/components/shell/ChatEmptyState.tsx (not served here)
- apps/web/src/components/shell/ChatInputShell.tsx (not served here)
- apps/web/src/components/shell/ChatPane.tsx (not served here)
- apps/web/src/components/shell/LeftRail.tsx (not served here)
- apps/web/src/components/shell/LiveEditIndicator.tsx (not served here)
- apps/web/src/components/shell/PageTabStrip.tsx (not served here)
- apps/web/src/components/shell/ProjectSwitcher.tsx (not served here)
- apps/web/src/components/shell/ProvenanceTrail.tsx (not served here)
- apps/web/src/components/shell/StatusBar.tsx (not served here)
- apps/web/src/components/shell/StreamView.tsx (not served here)
- apps/web/src/components/shell/TitleBar.tsx (not served here)
- apps/web/src/components/tree/CategoryTreeRoot.tsx (not served here)
- apps/web/src/index.css (not served here)
- apps/web/src/lib/api.ts (not served here)
- apps/web/src/lib/citations.ts (not served here)
- apps/web/src/lib/compile.ts (not served here)
- apps/web/src/lib/dot-kind.ts (not served here)
- apps/web/src/lib/folders.ts (not served here)
- apps/web/src/lib/notes.ts (not served here)
- apps/web/src/lib/outline.test.ts (not served here)
- apps/web/src/lib/outline.ts (not served here)
- apps/web/src/lib/schema-yaml.ts (not served here)
- apps/web/src/lib/search.ts (not served here)
- apps/web/src/lib/synthesis.ts (not served here)
- apps/web/src/lib/time-buckets.ts (not served here)
- apps/web/src/lib/trash.ts (not served here)
- apps/web/src/lib/tree-filter.test.ts (not served here)
- apps/web/src/lib/tree-filter.ts (not served here)
- apps/web/src/lib/wikiPaths.ts (not served here)
- apps/web/src/main.tsx (not served here)
- apps/web/src/store/backlinks-cache.ts (not served here)
- apps/web/src/store/canvas-route.ts (not served here)
- apps/web/src/store/chat.ts (not served here)
- apps/web/src/store/folders.ts (not served here)
- apps/web/src/store/hoist.ts (not served here)
- apps/web/src/store/live-edit.ts (not served here)
- apps/web/src/store/note-titles.ts (not served here)
- apps/web/src/store/page-tabs-sync.ts (not served here)
- apps/web/src/store/page-tabs.ts (not served here)
- apps/web/src/store/projects.ts (not served here)
- apps/web/src/store/recent-notes.ts (not served here)
- apps/web/src/store/settings.ts (not served here)
- apps/web/src/store/shell-state.ts (not served here)
- apps/web/src/store/theme.ts (not served here)
- apps/web/src/store/toast.ts (not served here)
- apps/web/src/store/tree.ts (not served here)
- apps/web/src/theme/tokens.css (not served here)
- apps/web/tailwind.config.ts (not served here)
- apps/web/test/active-wiki.spec.ts (not served here)
- docs/guide.md
- docs/llm-wiki.md
- docs/manual-smoke-checklist.md
- docs/pivot-plan-2026-05-25.md
- docs/product-strategy-2026-05-25-addendum.md
- docs/product-strategy-2026-05-25.md
- docs/remote-access.md
- docs/testing-walkthrough.md
Advantages
- Local-first: the memory stays in files or a database on your own machine (a rule-derived fact from the brain’s files, evidence: README.md)
- Works with 14 MCP clients (a rule-derived fact from the brain’s files, evidence: README.md)
- Plain markdown memory that you can read and edit yourself (a rule-derived fact from the brain’s files, evidence: README.md)
- No API key is named in its files (a rule-derived fact from the brain’s files, evidence: README.md)
- Open licence (MIT) (a rule-derived fact from the brain’s files)
Limitations
- Runs code automatically: review what it runs before you open it (a rule-derived fact from the brain’s files)
- No ZIP download: install it from its source (a rule-derived fact from the brain’s files)
Security
Risk level: Medium risk
This brain runs
Agent instructions that run or fetch something (12)
CLAUDE.md:MindBase implements Andrej Karpathy's **LLM-Wiki pattern** (`docs/llm-wiki.md`), turned into a product for users who can't or won't run `claude-code + obsidian + a hand-written CLAUDE.md` themselves.CLAUDE.md:pnpm monorepo: `packages/core` (TS strict, vitest), `apps/server` (Express), `apps/web` (React 19 + Zustand), `apps/browser-ext`, `apps/mcp`, `apps/mobile`.CLAUDE.md:Server dev: `pnpm -F @mindbase/server dev` (tsx watch).CLAUDE.md:Web dev/build: `pnpm --filter @mindbase/web {dev,build,typecheck}`.CLAUDE.md:After modifying `packages/core` types, `pnpm --filter @mindbase/core build` before re-typechecking dependents.CLAUDE.md:Install via `claude --plugin-dir apps/plugin` for local dev or `/plugin install mindbase@mindbase` when published.CLAUDE.md:`apps/skill/` was removed in 2026-06-09 — the legacy `install.sh` skill-based deploy is gone;CLAUDE.md:the plugin is the only install path.CLAUDE.md:Plugin builds: `pnpm -F @mindbase/plugin build` (bundles `apps/mcp` into `apps/plugin/mcp-server/dist`).apps/plugin/skills/mindbase/SKILL.md:If none → tell user to run `/mb:load` or `/mb:init`apps/plugin/skills/mindbase/SKILL.md:Always call `mindbase_contribute` (plan/approve/execute primitive).apps/plugin/skills/mindbase/SKILL.md:Read → discuss → propose plan → execute.
MCP servers (4)
README.md(mindbase):npx -y mindbase-mcpREADME.md(mindbase):npx -y mindbase-mcpREADME.md(mindbase):npx -y mindbase-mcpapps/plugin/.mcp.json(mb):npx -y mindbase-mcp
Hooks (1)
apps/plugin/hooks/hooks.json(SessionStart):${CLAUDE_PLUGIN_ROOT}/hooks/session-start
- Medium risk: runs-mcp-server-unpinned-runner (README.md:88)
- Medium risk: runs-mcp-server-unpinned-runner (README.md:101)
- Medium risk: runs-mcp-server-unpinned-runner (README.md:114)
- Medium risk: runs-mcp-server-unpinned-runner (apps/plugin/.mcp.json)
Attribution and licence
- First committed by
frankchu91
- Publisher
- Haobing(Frank) Chu (Community)
- Source
- frankchu91/mindbase-llm-wiki · commit c5273d2
- Licence
- MIT License (files served here)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Contributors
- frankchu91
AutoGineer is not affiliated with or endorsed by frankchu91.
Install from source
497 of its files are not served here, so there is no ZIP. frankchu91/mindbase-llm-wiki at c5273d2