AI-powered structured knowledge base that ingests your notes and generates a connected Wiki — based on Andrej Karpathy's LLM Wiki concept.
Obsidian official score 95/100 | Native support for 8 languages | Actively maintained, continuously evolving
English | 中文文档 | 日本語 | 한국어 | Deutsch | Français | Español | Português
Official Site | Blog | Feedback & Discussion | 🤖 Explore Repo with DeepWiki
⚡ Quick Update Reminder: This project evolves rapidly with frequent bug fixes, performance improvements, new features, and UX optimizations. We recommend updating to the latest version regularly in Obsidian (Settings → Community plugins → Check for updates), or enabling automatic plugin updates to ensure the best experience.
You write. AI organizes. You ask. That's it.
🎯 The problem. Your notes are a goldmine — people, concepts, ideas, connections. But right now they're just files in folders. Finding what relates to what means searching, tagging, and hoping you remember the thread.
✨ The fix. Andrej Karpathy suggested something elegant: treat your notes as raw material, and let an LLM do the architect work. It reads what you write, pulls out entities and concepts, and weaves them into a structured Wiki — complete with [[bidirectional links]], an auto-generated index, and a chat interface that answers questions from your knowledge.
📚 So you don't have to be the librarian. No deciding what deserves a page. No maintaining cross-links. No wondering if something is out of date. Drop notes into sources/ and the LLM reads, extracts, writes, links, and even flags contradictions — while you stay in flow.
🤖 And it's not another chatbot. ChatGPT knows the internet. LLM-Wiki knows you — or rather, what you've taught it. Every answer carries [[wiki-links]] back into your knowledge graph. Every response is a trailhead, not a dead end.
Obsidian is brilliant at linked thinking. But there's a catch: you're the one doing all the linking.
LLM-Wiki flips that. Instead of you building the graph by hand, the AI grows it with you. Add a note about a new concept — it finds the connections you'd miss. Ask a question — it walks your own knowledge graph and brings back answers with citations.
- 🔗 Your Graph View comes alive. New notes don't just sit there — they sprout links to entities, concepts, and sources. The graph grows organically, and the plugin maintains it: detecting duplicates, fixing dead links, bridging languages with aliases.
- 💬 Your notes learn to talk back. Search becomes conversation. "What did I write about X?" becomes a dialogue, with streaming responses and
[[wiki-links]]as breadcrumbs. Every answer is a path deeper into your own knowledge. - 🧠 Obsidian becomes a thinking partner. It stops being a cabinet for notes and starts being something that helps you think — surfacing hidden connections, flagging contradictions, remembering what you forgot you knew.
🌟 Recommended — Obsidian Community Plugin Market:
- In Obsidian, go to Settings → Community plugins
- Click Browse and search for "Karpathy LLM Wiki"
- Click Install, then Enable
🌐 Or from the Community Plugin website — visit community.obsidian.md/plugins/karpathywiki and click Add to Obsidian to install directly.
⚙️ Manual (alternative):
- Download
main.js,manifest.json,styles.cssfrom Releases - In Obsidian, go to Settings → Community plugins. On the Installed plugins tab, click the folder icon to open your plugins directory
- Create a folder named
karpathywiki, drop the three files inside - Back in Obsidian, click the refresh icon — Karpathy LLM Wiki will appear under Installed plugins
- Toggle it on to enable
🔨 Development: git clone, pnpm install, pnpm build.
This project evolves rapidly — new features, bug fixes, and improvements are shipped frequently. We recommend keeping up to date:
Option A — Manual update (recommended):
- Go to Settings → Community plugins
- Click Check for updates
- Find Karpathy LLM Wiki in the list and click Update
Option B — Enable auto-update:
- Go to Settings → Community plugins
- Toggle on Automatically check for plugins updates
- New versions will be detected automatically; update manually at your convenience
💡 Why stay updated? Each release may include new features, performance improvements, and important bug fixes. We actively maintain this plugin — missing updates means missing out on a better experience.
- Open Settings → Karpathy LLM Wiki
- Pick a provider from the dropdown (Anthropic, Anthropic Compatible, Google Gemini, OpenAI, DeepSeek, Kimi, GLM, MiniMax, LM Studio, Ollama, OpenRouter, or custom)
- Enter your API key (not needed for Ollama)
- Click Fetch Models to populate the model dropdown, or type a model name manually
- Click Test Connection, then Save Settings
🦙 Ollama (local, no API key): Install Ollama, pull a model (ollama pull gemma4 or ollama pull qwen3.5:27b), select "Ollama (Local)" in the provider dropdown.
🎛️ LM Studio (local, no API key): Install LM Studio, start its local server (default http://localhost:1234/v1), select "LM Studio (Local)" in the provider dropdown. LM Studio runs a built-in OpenAI-compatible server — API key field is optional.
See Model Selection Guide for details.
| Method | How |
|---|---|
| 📥 Ingest single source | Cmd+P → "Ingest single source" — select a note to extract entities and concepts into Wiki pages |
| 📂 Ingest from folder | Cmd+P → "Ingest from folder" — pick a folder, batch generate Wiki from all notes inside |
| 🔍 Query wiki | Cmd+P → "Query wiki" — ask questions, get streaming answers with [[wiki-links]] |
| 🛠️ Lint wiki | Cmd+P → "Lint wiki" — health scan: duplicates, dead links, empty pages, orphans, missing aliases |
| 📋 Regenerate index | Cmd+P → "Regenerate index" — rebuild wiki/index.md with current pages and aliases |
| 💡 Suggest schema updates | Cmd+P → "Suggest schema updates" — LLM analyzes Wiki and proposes schema improvements |
| 🎯 One-click ingest | Click the sticker icon in the left sidebar or Cmd+P → "Ingest current file" — directly ingest the file you're editing |
Re-ingesting the same source does incremental updates on entity/concept pages (new info merged in). Summary pages are regenerated.
💡 Smart Batch Skip: When ingesting a folder, the plugin automatically detects already-processed files and skips them to save time and API costs. The batch report shows skipped count.
This release is fully backward-compatible. No breaking changes since v1.0.0 — your existing wiki pages, settings, and workflows are preserved. No reconfiguration or data migration needed.
If your existing Wiki was built across many versions, some pages may lack recent capabilities (aliases, alias-aware dedup, modernized prompts). Run Lint Wiki to see what needs attention. Smart Fix All handles the most common cleanups in one click.
If upgrading from a version before v1.16.0, run Lint Wiki once to automatically fix historical issues:
- Double-nested links
[[[[entities/Foo|Foo]]]]in log.md — Lint detects and fixes these with zero LLM cost - Cross-directory stub duplicates — pages that exist in both
entities/andconcepts/with the same slug are now correctly matched
For wikis built across many versions, follow these steps to bring your Wiki up to current standards:
1️⃣ Rebuild your index
Cmd+P → "Regenerate index" — This rebuilds wiki/index.md with alias entries for every page, enabling alias-aware search (e.g., searching "DSA" finds "DeepSeek-Sparse-Attention"). The old index format only listed page titles.
2️⃣ Run Lint wiki
Cmd+P → "Lint wiki" — This scans your entire Wiki and shows:
- 🏷️ Missing aliases: Pages without aliases (any version, if you never ran "Complete Aliases"). Click "Complete Aliases" — the LLM generates translations, acronyms, and alternate names in bulk. This is critical for duplicate detection.
- 🔄 Duplicate pages: Pages with overlapping content (e.g., "CoT" vs "思维链" created by older versions that didn't have alias-aware dedup). Click "Merge Duplicates" to fuse them and preserve all aliases.
- 💀 Dead links / Empty pages / Orphans: Standard wiki maintenance issues.
3️⃣ Use Smart Fix All Click "Smart Fix All" in the Lint report for a one-click, causality-ordered repair: aliases completed → duplicates merged → dead links fixed → orphans linked → empty pages expanded. This is the fastest way to clean up a wiki built across many versions.
4️⃣ Enable parallel page generation Settings → LLM Configuration:
- ⚡ Page Generation Concurrency: Set to 3 for most providers. Speeds up ingestion 2–3× on sources with 10+ entities.
- ⏱️ Batch Delay: Start at 300ms. Increase to 500–800ms if you hit rate limits.
5️⃣ Review current settings:
- 🌐 Wiki Output Language: Independent from UI language — your Wiki can be in Chinese while the plugin UI stays in English, or vice versa.
- 📊 Extraction Granularity: Five options control how deeply the LLM extracts entities from sources:
- Fine (~100 items) — Deep analysis, edge-case mentions included. High token cost, best for key sources.
- Standard (~50 items) — Balanced extraction. Good default for daily notes.
- Coarse (~10 items) — Quick overview, core entities only. Low cost, fast ingestion.
- Minimal (~5 items) — Essential items only. Ideal for batch processing 100+ files or testing new sources.
- Custom (1–300 items) — User-defined entity/concept limits for specialized workflows.
💡 Recommendation: Use Minimal or Coarse for large folders to save time and API costs. Use Fine selectively on key documents that warrant deep analysis.
- 🔄 Auto-Maintenance: Startup Quick Fixes defaults ON (one-time startup health check); File Watcher and Periodic Lint default OFF — enable only if you want automatic background processing.
🛡️ Safety: Parallel generation uses
Promise.allSettled— if one page fails, others continue. Failed pages are retried individually with exponential backoff. Smart Batch Skip automatically detects already-ingested files to save time and API costs.
v1.20.2 is a PATCH release that fixes Anthropic API compatibility for newer Claude models (Opus 4.8, Sonnet 4.6, Fable 5, Mythos 5). Combined with v1.20.0's provider-first thinking control and v1.20.1's prefill detection, this release ensures full Anthropic support across all current models.
- 🔧 Anthropic fallback fix (PR #151). Anthropic Messages API only accepts
user/assistantroles in the messages array — system instructions must be a top-level field. Previous fallback retry paths incorrectly injected{role: 'system'}into messages, causing a second 400. Fix contributed by @Indexed-Apogrypha. - 🧠 Provider-first thinking control (v1.20.0). Default mode sends NO thinking-control field — the provider decides whether to reason. Users who explicitly want to suppress thinking can enable "Disable thinking" in Custom Advanced Settings.
- 💭 Collapsible thinking UI (v1.20.0). When a thinking-capable model (DeepSeek, etc.) returns reasoning content, it appears in a collapsed panel above the answer. Fully localized in 8 languages.
- 🔧 Anthropic baseUrl fix (v1.20.0, Issues #141, #134).
AnthropicClientnormalizes/v1in the base URL, preventing 404 errors. - 🔧 gpt-5 max_completion_tokens (v1.20.0, Issue #143). GPT-5 series models use the correct token parameter.
- 💬 Query Wiki UX (v1.20.0). Respects
wikiFolder, auto-scrolls, user messages right-aligned. - 🔄 Automatic migration. Old users upgrading from v1.19.x get
disableThinkingautomatically reset tofalse.
We strongly recommend all users upgrade to this version, especially if you use Anthropic Claude models.
See CHANGELOG.md for full details.
| Command | Description |
|---|---|
| 📥 Ingest single source | Select a note → generate Wiki pages with entities, concepts, and summary |
| 📂 Ingest from folder | Select a folder → batch generate Wiki from existing notes |
| 🔍 Query wiki | Conversational Q&A over your Wiki, streaming responses with [[wiki-links]] |
| 🛠️ Lint wiki | Full health scan: duplicates, dead links, empty pages, orphans, missing aliases, contradictions |
| 📋 Regenerate index | Manually rebuild wiki/index.md |
| 💡 Suggest schema updates | LLM analyzes Wiki and proposes schema improvements |
Input: sources/machine-learning.md
### Machine Learning
Machine learning uses algorithms to learn from data.
### Types
- Supervised learning
- Unsupervised learning
- Reinforcement learningOutput — Concept page: wiki/concepts/supervised-learning.md
---
type: concept
created: 2025-12-01
updated: 2026-05-15
sources: ["[[sources/machine-learning]]"]
tags: [method]
aliases: ["监督学习", "Supervised Learning"]
---
### Supervised Learning
### Basic Information
- Type: method
- Source: [[sources/machine-learning]]
### Description
Supervised learning is a machine learning paradigm where models learn
from labeled training data to make predictions on unseen data...
### Related Concepts
- [[concepts/Machine-Learning|Machine Learning]]
- [[concepts/Unsupervised-Learning|Unsupervised Learning]]
### Related Entities
- [[entities/Arthur-Samuel|Arthur Samuel]]
### Mentions in Source
- "Supervised learning uses labeled data to train predictive models..."This plugin follows Karpathy's philosophy: feed the LLM full Wiki context, not chunked RAG retrieval. Long-context models are strongly recommended — the larger your Wiki grows, the more context the LLM needs.
💡 Why not RAG? Karpathy's original critique argues that RAG fragments knowledge and breaks the LLM's ability to reason across the full knowledge graph.
💰 Value-First Strategy: You don't need flagship models. The following cost-effective alternatives deliver excellent results at lower prices:
| Tier | Model | Context | Why |
|---|---|---|---|
| 🌟 Value Pick | DeepSeek V4-Flash | 1M tokens | Lowest cost ($0.14/M), 284B MoE, ideal for batch ingestion |
| 🌟 Value Pick | Gemini-3.5-Flash | 1M tokens | 4× faster output than GPT-5.5, great for agent tasks |
| 🌟 Value Pick | Qwen3.6-Plus | 1M tokens | Strong coding & agentic capabilities, competitive pricing |
| 🌟 Value Pick | Grok-4 | 2M tokens | xAI 2025-07 flagship, 2M context, strong reasoning & code tasks |
| Balanced | Claude Sonnet 4.6 | 1M tokens | Great quality/cost balance, $3/$15 per million tokens |
| Lightweight | Claude Haiku 4.5 | 200K tokens | Fast and affordable for smaller wikis |
| Budget | Xiaomi MiMo-V2.5 | 1M tokens | Xiaomi 310B/15B MoE, MIT open-source 2026-04, agent & multimodal |
| Flagship | Claude Opus 4.7 | 1M tokens | Ultimate quality, higher cost — use selectively |
| Flagship | GPT-5.5 | 1M tokens | Top reasoning, higher cost — use selectively |
For local models (Ollama): context windows are typically smaller (8K–128K). Consider using a cloud provider for ingestion + local model for query.
🔌 Anthropic Compatible (Coding Plan): If your provider offers an Anthropic-compatible API endpoint, select "Anthropic Compatible" and enter your provider's Base URL and API Key.
💡 Subscription plans: Coding Plan, OpenAI Pro, or Anthropic Pro plans are excellent options for cost control with frequent use. This plugin supports these services.
Karpathy's three-layer separation design:
sources/ # 📄 Your source documents (read-only)
↓ ingest
wiki/ # 🧠 LLM-generated Wiki pages
↓ query / maintain
schema/ # 📋 Wiki structure configuration (naming, templates, categories)
Codebase (src/):
wiki/ # Wiki engine modules
wiki-engine.ts # 🎯 Orchestrator
query-engine.ts # 💬 Conversational query
source-analyzer.ts # 📊 Iterative batch extraction
page-factory.ts # 🏗️ Entity/concept CRUD + merge
lint-controller.ts # 🔍 Lint orchestration
lint-fixes.ts # 🛠️ Fix logic for dead links, empty pages, orphans
lint/ # Lint sub-modules
duplicate-detection.ts # 🔄 Programmatic candidate generation
fix-runners.ts # ⚡ Batch fix execution helpers
scanners.ts # 🔍 Scanners (dead links, orphans, aliases)
contradictions.ts # ⚠️ Contradiction detection
system-prompts.ts # 🗣️ Language directive + section labels
schema/ # Schema co-evolution
schema-manager.ts # 📋 Schema CRUD + suggestions
auto-maintain.ts # 🔄 File watcher + periodic lint
ui/ # User interface
settings.ts # ⚙️ Settings panel
modals.ts # 📦 Lint/Ingest/Query modals
+ shared modules: llm-client.ts, prompts.ts, texts.ts, utils.ts, types.ts
Generated pages:
wiki/sources/filename.md— 📄 Source summarywiki/entities/entity-name.md— 👤 Entity pages (people, orgs, projects, etc.)wiki/concepts/concept-name.md— 💡 Concept pages (theories, methods, terms, etc.)wiki/index.md— 📑 Auto-generated indexwiki/log.md— 📝 Operation log
Keep your plugin updated. This project ships frequently — new features and fixes land every few days. Run Settings → Community Plugins → Check for updates regularly.
For more, see the FAQ Discussion on GitHub.
What does the plugin actually do?
You drop notes in, it extracts people, concepts, and theories, then generates an interlinked wiki with [[bidirectional links]]. Ask questions and get answers grounded in your notes — not internet hallucinations.
Minimum requirements? Obsidian v1.11.0+, desktop (Windows/macOS/Linux), an LLM provider API key. Ollama works locally with no API key. See Configure an LLM Provider above.
Which model should I use? See Model Selection Guide above. Long-context models work best — the larger your wiki, the more context the LLM needs.
Why does Lint show "missing aliases" on almost all my pages? Pages generated before v1.7.11 didn't include aliases. This is harmless — aliases are an enhancement, not a bug. Click Complete Aliases in the Lint report to batch-generate translations, acronyms, and alternate names. Once aliases exist, duplicate detection and alias-aware search become much more effective.
Why do I see duplicate pages like "CoT" and "思维链"? Pre-v1.7.10 versions lacked alias-aware duplicate detection. Run Lint Wiki → Merge Duplicates to fuse them. The merged page preserves aliases from both, preventing future duplicates.
How does duplicate detection work? (v1.7.10+) Two-tier semantic detection: Tier 1 (always LLM-verified) catches cross-language matches, abbreviations, high-similarity titles. Tier 2 fills remaining token budget with moderate-similarity candidates. Aliases are critical for Tier 1 — run Complete Aliases if your pages are pre-v1.7.11.
What are "polluted pages"? (v1.9.0)
Pages with folder prefixes accidentally baked into filenames — e.g. concepts/concepts布局优化.md. Run Lint Wiki → 🧹 Fix Polluted Pages to rename and update all incoming links.
How do I speed up ingestion? In Settings → LLM Configuration: increase Page Generation Concurrency to 3–5 (parallel page creation), lower Batch Delay to 100–300ms (watch for rate limits). Choose "Minimal", "Coarse", or "Standard" Extraction Granularity to reduce page count and save API costs.
Why am I getting HTTP 429 errors? The plugin auto-detects rate-limiting and suggests: lower concurrency to 1–2, increase Batch Delay to 500–800ms, or switch to a higher-limit provider.
How do I control API costs?
- Auto-Maintenance is OFF by default (enable only if you need background processing)
- Smart Batch Skip automatically skips already-ingested files
- "Standard" or "Coarse" granularity = fewer LLM calls
- Batch Delay > 500ms spaces calls without increasing token usage
- Lint report shows counts before you run fixes — decide what's worth it
What does Smart Fix All do? Runs fixes in causality order (v1.9.0+):
- 🧹 Fix polluted pages → 2. 🏷️ Complete aliases → 3. 🔄 Merge duplicates → 4. 🔗 Fix dead links → 5. 🔗 Link orphans → 6. 📝 Expand empty pages
Lint freezes on a large Wiki? Upgrade to v1.7.17+ — Lint now yields to Obsidian's UI thread every 50 pages, preventing multi-second freezes even on 1200+ page wikis.
Why can't I use ingest/lint/query after installing? The plugin requires a successful connection test before core features unlock. Go to Settings → Karpathy LLM Wiki → pick a provider → enter your API key → click Fetch Models → select a model → click Test Connection. Once you see the green "LLM Ready" indicator, all features are available. This prevents silent failures from misconfigured providers.
How do I cancel a running ingestion or lint?
Click the status bar text during an operation (it shows "Ingesting... click to cancel"), or use Ctrl+P → "Cancel current ingestion". The operation stops cleanly at the next batch boundary, preserving all completed work.
How do I quickly ingest the file I'm currently editing?
Click the sticker icon in the left ribbon bar, or use Ctrl+P → "Ingest current file". This skips the file picker and directly ingests the active editor tab.
I see [[[[entities/Foo|Foo]]]] double brackets in my log.md — how do I fix this?
Run Lint Wiki — the scanner now automatically detects and fixes all double-nested wiki-links across your entire wiki directory (including log.md) with zero LLM cost. No manual cleanup needed.
Why am I getting "Overloaded" errors? The plugin now recognizes Anthropic's 529 overload error as retryable. Overload errors are automatically retried with exponential backoff across all providers.
Why was a duplicate stub created when the page already exists in entities/ or concepts/? The plugin now uses slug-based matching — different formatting of the same name resolves to the existing page instead of creating a duplicate stub.
Query can't find pages I know exist? Three common causes: (1) Index is stale → Regenerate index. (2) Missing aliases → Complete Aliases. (3) Try different phrasing — LLM does semantic matching, not keyword search.
Can I manually edit Wiki pages?
Yes. Set reviewed: true in frontmatter to protect from overwrite. Manual aliases, tags, and sources are preserved during merges.
Safe upgrade?
The plugin never modifies your source files. Backup wiki/ → update plugin → Regenerate index → Lint Wiki → fix selectively.
How do I get help?
- GitHub Issues — bug reports
- GitHub Discussions — questions & feedback
How do I collect debug logs for troubleshooting?
- Open Developer Tools (
Ctrl+Shift+I/Cmd+Option+I) - Go to the Console tab
- Run your operation (ingest, query, or lint)
- Look for messages with module name prefixes like
[Step],[LLM], module names - For local testing, use
pnpm build:devinstead ofpnpm buildto preserve full debug output - Copy the relevant log lines and include them in your GitHub issue — this makes bug diagnosis much faster
This plugin is listed on the Obsidian Community Plugin Market and undergoes automated review for security and permissions.
The plugin has no backend, no server infrastructure, and no data collection of any kind. It is purely local software running inside Obsidian. The plugin cannot and does not collect, store, or transmit your data to any server — because no such server exists.
Network access is used only to communicate with the LLM provider you configure — no other network calls are made. This is entirely under your control: you choose the provider, you enter the API key, you decide where your data goes.
File system access (vault enumeration) is required to build and maintain the wiki: reading your source notes, generating pages, scanning for dead links, and detecting duplicate pages. The plugin never modifies your source files — only files under the wiki folder.
Clipboard access is used exclusively by the "Copy" button in the Query modal, and only when you click it.
If you prefer complete data locality, use a local LLM provider such as Ollama or LM Studio. With a local provider, your data never leaves your machine.
MIT License — see LICENSE.
- 💡 Concept: Andrej Karpathy's LLM Wiki — the original vision that inspired this plugin
- 🛠️ Platform: Obsidian Plugin API
- 🔌 LLM transport: Obsidian
requestUrl(Anthropic) + OpenAI SDK (3rd-party OpenAI-compatible providers)
