Personal knowledge bases often rely on dynamic retrieval methods like Retrieval-Augmented Generation (RAG), which fetch documents on demand for each query. llm_wiki takes a different path: it incrementally builds a persistent wiki from your source documents, turning scattered knowledge into a structured, interconnected markdown vault. The key innovation is its two-step chain-of-thought ingest pipeline — separating analysis and generation phases — which improves output quality and efficiency through incremental caching.
What llm_wiki does and how it’s built
llm_wiki is a cross-platform desktop application built with TypeScript and Tauri, designed to implement Andrej Karpathy’s llm-wiki pattern for knowledge management. Instead of querying a document store on each question, it processes source documents once, generating a wiki of markdown pages that stay updated as you add sources.
The architecture is a three-layer pipeline:
- Immutable raw sources: your uploaded documents (PDFs, DOCX, MD, etc.) stored in a read-only folder.
- LLM-generated wiki pages: markdown files generated by a two-step ingest pipeline, organized into folders like entities, concepts, and synthesis.
- Schema and rules configuration: defines how pages are structured and linked, plus a purpose.md file providing project context.
Under the hood, it uses a 4-signal knowledge graph relevance model for ranking content, Louvain community detection to discover clusters in the knowledge graph automatically, and LanceDB for vector semantic search. Full Obsidian vault compatibility means you can use standard markdown tools and workflows to interact with your knowledge base.
Why the two-step chain-of-thought ingest pipeline stands out
The main technical strength here is the separation of ingest into two distinct LLM calls: analysis followed by generation. Many systems try to combine understanding and writing in one step, which risks lower quality or inefficient LLM usage.
In llm_wiki, the analysis step parses and extracts structured insights from source documents, while the generation step composes coherent wiki pages using those insights. This separation:
- Improves quality by allowing the model to focus on distinct tasks sequentially.
- Enables incremental caching with SHA256 hashes, so unchanged sources don’t trigger redundant processing.
- Makes the pipeline more transparent and easier to debug.
The codebase also incorporates a 4-signal relevance model that weighs multiple factors in the knowledge graph to prioritize content, and Louvain community detection to identify clusters of related concepts automatically. These enhance navigation and discovery within the wiki.
The tradeoff is the added complexity of managing a multi-step pipeline and caching layer, which may increase initial setup complexity. However, this pays off in long-term efficiency and output quality.
From a DX perspective, the project is opinionated but practical, combining a modern TypeScript frontend with Tauri’s Rust-powered backend for a native desktop experience without Electron bloat.
Quick start with llm_wiki
Pre-built binaries
Download installers for macOS (.dmg), Windows (.msi), and Linux (.deb or .AppImage) from the project’s GitHub Releases page.
Build from source
# Prerequisites: Node.js 20+, Rust 1.70+
git clone https://github.com/nashsu/llm_wiki.git
cd llm_wiki
npm install
npm run tauri dev # Development
npm run tauri build # Production build
Chrome extension
- Open
chrome://extensions - Enable “Developer mode”
- Click “Load unpacked”
- Select the
extension/directory
Using the app
- Launch the app and create a new project by choosing a template.
- Configure your LLM provider in Settings by adding your API key and selecting a model.
- Import your documents (PDF, DOCX, MD, etc.) under Sources.
- The Activity Panel will show the LLM building wiki pages incrementally.
- Query your knowledge base via the Chat interface.
- Explore relationships in the Knowledge Graph.
- Review flagged items in Review.
- Run Lint periodically to keep the wiki healthy.
The project structure reflects the layered architecture with folders for raw sources, generated wiki content subdivided by type, and configuration files for schema and purpose, plus Obsidian vault integration.
Verdict: who should consider llm_wiki?
llm_wiki is a solid choice if you want a personal knowledge base that goes beyond simple document search or ephemeral retrieval. Its persistent, incrementally updated wiki model supports better long-term knowledge organization and exploration.
It’s particularly relevant for developers and researchers who handle diverse document types and want to maintain a structured, interconnected markdown vault compatible with Obsidian.
The tradeoff is the upfront complexity of setting up the multi-step ingest pipeline and understanding its architecture. It’s less suitable if you need on-the-fly retrieval for ad hoc queries without the overhead of building a persistent wiki.
Overall, the repo offers a practical pattern for improving LLM document processing pipelines by splitting analysis and generation phases, combined with thoughtful engineering around relevance modeling and clustering. Worth exploring if you build or maintain LLM-powered knowledge management tools.
Related Articles
- Jan: a local-first desktop app for large language models with Tauri and Rust — Jan is an open-source desktop app that runs large language models locally using Tauri, Node.js, and Rust. It offers priv
- Pathway LLM App: unified pipelines for scalable retrieval-augmented generation and AI search — Pathway LLM App provides integrated pipelines for scalable RAG and AI search, combining vector and full-text indexing wi
- A hands-on course for mastering large language models: fine-tuning, quantization, and tooling — Explore a comprehensive LLM course with practical notebooks on fine-tuning (QLoRA, DPO), quantization (GPTQ), and tools
→ GitHub Repo: nashsu/llm_wiki ⭐ 5,655 · TypeScript