microsoft/llmwiki
TypeScript
Captured source
source ↗microsoft/llmwiki
Description: VS Code extension for a self-maintaining personal wiki — the LLM summarizes, cross-references, and files every source for you
Language: TypeScript
License: MIT
Stars: 2
Forks: 1
Open issues: 1
Created: 2026-04-09T18:12:05Z
Pushed: 2026-06-14T02:15:24Z
Default branch: main
Fork: no
Archived: no
README:
LLM Wiki
> A personal knowledge base where the LLM does all the maintenance.
What is this?
LLM Wiki is a VS Code extension for building personal knowledge bases that compound over time with zero bookkeeping burden. Instead of retrieving from raw documents at query time (like RAG), the LLM incrementally builds and maintains a persistent wiki: a structured, interlinked collection of markdown files that sits between you and your raw sources.
When you add a new source, the LLM reads it, extracts key information, and integrates it into the existing wiki — updating entity pages, revising topic summaries, noting contradictions, and strengthening the evolving synthesis. The knowledge is compiled once and kept current, not re-derived on every query.
You never write the wiki yourself. You curate sources, ask questions, and think. The LLM handles summarizing, cross-referencing, filing, and every other piece of maintenance that makes a knowledge base actually useful over time.
Example interface

The LLM Wiki sidebar surfaces Entities, Concepts, Raw Sources, and Backlinks tree views. The generated wiki pages open in the editor, and the @wiki chat participant answers questions that synthesize across multiple sources.
Architecture
The system has three layers:
| Layer | Owner | Purpose | |-------|-------|---------| | Raw Sources | Human | Immutable source documents — articles, papers, notes. The LLM reads but never modifies these. | | Wiki | LLM | Generated markdown files — summaries, entity pages, concept pages, cross-references. The LLM owns this layer entirely. | | Schema | Human + LLM | Conventions document (AGENTS.md) defining wiki structure, workflows, and rules. Co-evolved over time. |
See [ARCHITECTURE.md](./ARCHITECTURE.md) for full technical design and data-flow diagrams.
Packages
The project is an npm workspaces monorepo with two packages:
| Package | npm name | Description | |---------|----------|-------------| | [packages/core](packages/core) | @llmwiki/core | Core wiki operations + MCP server — page I/O, index parsing, log management, lint checks, MCP tool server, ingest pipeline, bulk ingest, search, status. | | [packages/vscode](packages/vscode) | llmwiki | VS Code extension — tree views, command palette, status bar, @wiki chat participant, bulk ingest of files and folders. |
llmwiki (VS Code extension) ──depends-on──▶ @llmwiki/core
Prerequisites
- Node.js v20 or later
- VS Code 1.101 or later
- A GitHub Copilot subscription (the extension uses VS Code's Language Model API for ingestion enrichment)
Installation
# Clone the repository git clone cd llmwiki # Install all workspace dependencies npm ci # Build all packages (core → vscode) npm run build # Package the extension into a .vsix npm run package --workspace=packages/vscode
After packaging, install the generated packages/vscode/llmwiki-0.1.2.vsix via Extensions: Install from VSIX… in the VS Code Command Palette.
VS Code Extension
Open the LLM Wiki icon in the Activity Bar to access:
- Entities — Browse entity pages (people, products, places, organizations).
- Concepts — Browse concept pages (ideas, techniques, patterns).
- Raw Sources — See every file in
raw/with size & date; right-click to remove. - Backlinks — See pages that link to the page you currently have open.
Commands
| Command | Title | Description | |---------|-------|-------------| | llmwiki.init | LLM Wiki: Initialize Wiki | Scaffold the .wiki/ directory structure (raw, wiki, index, log, AGENTS.md). | | llmwiki.ingest | LLM Wiki: Ingest Files or Folder | Bulk-ingest one or many files, or every supported file inside a folder (walked recursively). | | llmwiki.query | LLM Wiki: Query Wiki | Weighted full-text search across index titles, summaries, and page bodies. | | llmwiki.status | LLM Wiki: Show Status | Show page count, source count, coverage %, last ingest date. | | llmwiki.openPage | LLM Wiki: Open Page | Quick-open any wiki page by title. | | llmwiki.search | LLM Wiki: Search Wiki | Filter entities/concepts by title, summary, or tag. | | llmwiki.searchRaw | LLM Wiki: Search Sources | Find a raw source file by name. | | llmwiki.refresh | LLM Wiki: Refresh | Run lint-fix, prune orphaned pages, and refresh all views. | | llmwiki.fix | LLM Wiki: Fix Issues | Open the @wiki /fix chat to interactively resolve lint findings. | | llmwiki.removeSource | LLM Wiki: Remove Source | Delete a raw source plus the wiki pages derived from it. | | llmwiki.scanRaw | LLM Wiki: Scan Sources for New Files | Scan raw/ for files that have no wiki page yet and offer to ingest them. | | llmwiki.selectModel | LLM Wiki: Select Model | Choose which installed GitHub Copilot model family powers ingestion enrichment and @wiki. |
Bulk Ingest
The LLM Wiki: Ingest Files or Folder command supports four invocation modes:
1. Command Palette — first choose Files or Folder mode, then select one or more items in the native picker. (The modes are split because a single OS dialog can't reliably select both files and folders at once.) 2. Explorer context menu — right-click any file or folder anywhere in the Explorer and choose LLM Wiki: Ingest Files or Folder. Multi-selections (Ctrl/Shift-click) are honoured. 3. Raw Sources toolbar — click the + (Ingest Files or Folder) button in the Raw Sources view title bar. 4. Drag-and-drop into `raw/` — files dropped into the Raw Sources view are auto-ingested by the file watcher.
When a folder is selected the extension walks it recursively, skipping .-prefixed entries and common build directories (node_modules, dist, out, build, .wiki). External files are copied into /.wiki/raw/ first, then...
Excerpt shown — open the source for the full document.
Notability
notability 1.0/10New repo with minimal stars