# LLM Wiki

Self-maintaining personal Wikipedia: an agent ingests your sources over MCP and compiles the wiki.

LLM Wiki stores documents, clippings, and notes, and exposes an MCP server through which Claude (or any MCP client) ingests sources, writes and lints wiki pages, and answers questions against the compiled wiki. A Next.js app and a Chrome extension are the human side. Apache-2.0, with a free hosted edition at llmwiki.app and a zero-config local mode.

- Capabilities: adaptable, operable
- Vertical: notes-knowledge
- Shape: business-app
- Form factor: web-app
- Execution model: hybrid
- Provenance: unknown (recorded, never ranked)
- Repo: https://github.com/lucasastorian/llmwiki (Apache-2.0), 1563 stars, last commit 2026-08-09
- Last activity: 2026-08-09
- Page: apps/lucasastorian--llmwiki.html
- JSON: apps/lucasastorian--llmwiki.json

## Use it when

- you read a lot and want a wiki of what you have read that Claude keeps up to date on a nightly routine
- your team wants institutional memory compiled from documents rather than written by hand

## Gotchas

- Local mode is loopback-only by design; no LAN or remote binding
- Remote self-hosting needs four external services before the first page appears
- LibreOffice is required to extract Word and PowerPoint files
- Young project (1.5k stars, 26 open issues); the nightly compile depends on a Claude Routine you schedule

## Editions

- Free (local or self-hosted): Free, open source
  - source: https://github.com/lucasastorian/llmwiki
  - installable: ./llmwiki open ~/research
  - container: https://github.com/lucasastorian/llmwiki/blob/main/docker-compose.yml
- Hosted: Free, open source
  - hosted: https://llmwiki.app

## Adaptable: make it yours

Effort: config-only (26 things to edit)

Local mode needs no config: ./llmwiki open &lt;folder> indexes any folder of PDFs, Office files, and markdown and serves on loopback. Remote (self-hosted) mode is driven by .env.example: DATABASE_URL and SUPABASE_URL for storage and auth, S3_BUCKET with AWS keys for files, VOYAGE_API_KEY and TURBOPUFFER_API_KEY for embeddings and vector search, MCP_URL and NEXT_PUBLIC_MCP_URL to wire the MCP endpoint, CONVERTER_URL for Office conversion, QUIZ_GRADE_DAILY_LIMIT. The agent's operating instructions live in mcp/tools/guide.py.

- Env vars: APP_URL, DATABASE_URL, SUPABASE_URL, NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, S3_BUCKET, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, VOYAGE_API_KEY, TURBOPUFFER_API_KEY, MISTRAL_API_KEY, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_AI_GATEWAY_ID, CLOUDFLARE_AUTH_TOKEN, MCP_URL, NEXT_PUBLIC_MCP_URL, NEXT_PUBLIC_API_URL, CONVERTER_URL, CONVERTER_SECRET, QUIZ_GRADE_DAILY_LIMIT, LOCAL_EXTENSION_ORIGINS, STAGE
- Config files: .env, docker-compose.yml, mcp/railway.toml
- Prompt files: mcp/tools/guide.py
- Accounts you'll need: Supabase, S3, Voyage, and Turbopuffer (remote self-host only); Mistral (optional OCR); llmwiki.app account (hosted edition)

## Operable: what an agent can drive

Operability: native. Interface: mcp at https://github.com/lucasastorian/llmwiki/tree/main/mcp (published by the builder, both).

### Reach (partial coverage)

- Ingest documents and clippings into the raw store: reachable. mcp/tools/ingest.py
- Write and update wiki pages with citations: reachable. mcp/tools/write.py; frontmatter and footnote helpers
- Query the compiled wiki: reachable. mcp/tools/search.py and read.py
- Lint for inconsistencies, orphans, and missing links: reachable. mcp/tools/lint.py and quiz_lint.py
- Backlinks and references: reachable. mcp/tools/references.py get_backlinks_summary
- Read and reply to highlights and comments from the extension: reachable. mcp/tools/comments.py and reply.py
- Delete pages: reachable. mcp/tools/delete.py
- Quizzes over the wiki: reachable. quiz_lint.py; QUIZ_GRADE_DAILY_LIMIT
- Graph viewer and visualizations: not reachable. web app feature; pages can embed Mermaid and SVG the agent writes
- Clip pages from the browser: not reachable. Chrome extension; the agent ingests through the ingest tool instead

## Code stack

- Languages: Python, TypeScript
- Frameworks: Next.js, FastMCP
- Package manager: pip, npm
- Database: PostgreSQL (Supabase, remote mode), local files
- Hosting target: local, docker, railway

## Model stack

- Providers: any MCP client (Claude.ai, Claude Code, Codex), Voyage (embeddings, remote mode), Mistral (OCR, optional), Cloudflare AI Gateway (remote mode)
- Models: none
- Keys you need (names only): VOYAGE_API_KEY, TURBOPUFFER_API_KEY, MISTRAL_API_KEY, CLOUDFLARE_AUTH_TOKEN
- Prompts live in: mcp/tools/guide.py
- Tools: ingest, read, write, search, list, lint, quiz_lint, references, comments, reply, delete, guide

## Evidence and confidence

- formFactor: README: Next.js web app plus Python API and MCP server (confidence 0.85)
- executionModel: the agent does the synthesis over MCP; OCR and quiz grading call models server-side (confidence 0.7)
- operability: mcp/ directory in the repo; README 'built and maintained by AI' with MCP as the write path (confidence 0.85)
- effort: .env.example names; README local quick start needs no config (confidence 0.85)
- editions: llmwiki.app: 'Free & open source · Apache 2.0', 'Get started free'; no price list found (confidence 0.7)
- active: pushedAt 2026-08-09
- provenance: no authorship statement; no agent markers (confidence 0.3)
- reach:  (confidence 0.85)

## Open questions

- Does llmwiki.app have paid tiers or limits?
- Which tool names are registered (file names were read, decorators were not)

## Sources

- https://github.com/lucasastorian/llmwiki (sourcing:notes-knowledge:github)
- https://llmwiki.app (analysis)
