Noureddine RAMDI / Inside llm_wiki: a desktop app for building persistent LLM-powered personal wikis

Created Mon, 04 May 2026 10:05:49 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

nashsu/llm_wiki

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

  1. Open chrome://extensions
  2. Enable “Developer mode”
  3. Click “Load unpacked”
  4. Select the extension/ directory

Using the app

  1. Launch the app and create a new project by choosing a template.
  2. Configure your LLM provider in Settings by adding your API key and selecting a model.
  3. Import your documents (PDF, DOCX, MD, etc.) under Sources.
  4. The Activity Panel will show the LLM building wiki pages incrementally.
  5. Query your knowledge base via the Chat interface.
  6. Explore relationships in the Knowledge Graph.
  7. Review flagged items in Review.
  8. 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.


→ GitHub Repo: nashsu/llm_wiki ⭐ 5,655 · TypeScript