llmwiki
LLM wiki kit
Created by Pratiyush
Published in Pratiyush/llm-wiki. Publisher page
401 GitHub stars
What it is
> **LLM-powered knowledge base from your Claude Code, Codex CLI, Cursor, Gemini CLI, and Obsidian sessions.** > Built on [Andrej Karpathy's LLM Wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f).
AutoGineer overview, from the brain’s own files
llmwiki is a tool designed to convert dormant AI agent session transcripts from tools like Claude Code, Codex CLI, Cursor, and Gemini CLI into a structured, Karpathy-style knowledge base. It operates locally without requiring a database or cloud service, organizing data into three layers: raw session transcripts, an LLM-generated wiki, and a static site. The system provides a comprehensive suite of features including activity heatmaps, global search, and AI-consumable exports like JSON-LD graphs and llms.txt, enabling other AI agents to query the wiki directly. It also supports deep integration with Obsidian, allowing users to manage their knowledge base within a familiar vault environment.
How it works
Memory model: LLM wiki
AutoGineer overview, from the brain’s own files
The system ingests session logs from various AI agent directories and converts them into immutable markdown files in a raw folder. These are then processed into a structured wiki containing sources, entities, concepts, and syntheses. Finally, a build command compiles these into a static HTML site with machine-readable metadata, search indexes, and RSS feeds. It uses a command-line interface for syncing, building, and serving the wiki, and provides an MCP server for agents to interact with the knowledge base.
| Folder | Role | Files |
|---|---|---|
| .claude | agent-config | 25 |
| .github | agent-config | 29 |
| .kiro | agent-config | 3 |
| docs | docs | 99 |
| examples | examples | 18 |
| scripts | scripts | 11 |
| tests | tests | 205 |
| wiki | wiki | 23 |
| .claude-plugin | folder | 2 |
| homebrew | folder | 1 |
| integrations | folder | 8 |
| llmwiki | folder | 97 |
| specs | folder | 10 |
The agent reads
- AGENTS.md evidence: AGENTS.md
- CLAUDE.md evidence: AGENTS.md
- wiki/index.md evidence: AGENTS.md
- wiki/overview.md evidence: AGENTS.md
- CONTRIBUTING.md evidence: README.md
The agent writes
- wiki/index.md evidence: AGENTS.md
- wiki/overview.md evidence: AGENTS.md
- wiki/ evidence: README.md
Requirements
Apps: Docker
Runtimes: Node.js, Python >=3.9
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Google Antigravity, Kiro, OpenCode, Amp, Roo Code, Cline, JetBrains Junie, Devin (ex-Windsurf)
Set it up
This brain runs code automatically: 1 script. Review setup.sh before opening the folder in Claude Code. No step below turns a hook on for you.
setup.sh:sh setup.sh
Clone the repository at the commit AutoGineer scanned:
git clone https://github.com/Pratiyush/llm-wiki.git && cd llm-wiki && git checkout b1088890ee0743810a92577aecad946c6b3eb2d2Claude Code reads CLAUDE.md from this folder automatically.
cd llm-wiki && claude
AutoGineer scanned these files at commit b108889.
- Not scanned by AutoGineerThe author’s README also describes installing it with Docker Compose. Read its install section: AutoGineer did not scan that path. https://github.com/Pratiyush/llm-wiki/blob/b1088890ee0743810a92577aecad946c6b3eb2d2/README.md#deployment-targets
- Not scanned by AutoGineerThe author’s README also describes installing it from a clone of its repository. Read its install section: AutoGineer did not scan that path. https://github.com/Pratiyush/llm-wiki/blob/b1088890ee0743810a92577aecad946c6b3eb2d2/README.md#install
- Not scanned by AutoGineerIts setup steps could not be read from the brain’s own files. https://github.com/Pratiyush/llm-wiki/tree/b1088890ee0743810a92577aecad946c6b3eb2d2
- Not scanned by AutoGineerIts dependencies are installed by pip or uv when you run it and were not scanned by AutoGineer (1 declared). https://pypi.org/project/llm-notebook/
Created by Pratiyush. Published in Pratiyush/llm-wiki. Licence: MIT License.
Usage
AutoGineer overview, from the brain’s own files
- Syncing session history from multiple AI agents into a local wiki
- Generating AI-consumable knowledge graphs for agent RAG
- Browsing session history with a searchable, static web interface
- Integrating session knowledge into an Obsidian vault
- Running automated linting and quality checks on knowledge base content
- “llmwiki sync”
- Imports new session transcripts from configured agent directories and updates the raw markdown files.
- “llmwiki all --with-synth”
- Runs the full pipeline: synthesizes summaries, builds the static site, generates the knowledge graph, and lints the wiki.
Documentation by Pratiyush
llmwiki
LLM-powered knowledge base from your Claude Code, Codex CLI, Cursor, Gemini CLI, and Obsidian sessions. Built on Andrej Karpathy's LLM Wiki pattern.
👉 Live demo: pratiyush.github.io/llm-wiki
Rebuilt on every master push from the synthetic sessions in examples/demo-sessions/. No personal data. Shows every feature of the real tool (activity heatmap, tool charts, token usage, model info cards, vs-comparisons, project topics) running against safe reference data.
Image: License: MIT Image: Python 3.9+ Image: Version Image: Tests Image: CI Image: Link check Image: Wiki checks Image: Docker Image: Works with Claude Code Image: Works with Codex CLI Image: Works with Copilot Image: Works with Cursor Image: Works with Gemini CLI Image: Works with Obsidian
Every Claude Code, Codex CLI, Copilot, Cursor, and Gemini CLI session writes a full transcript to disk. You already have hundreds of them and never look at them again.
llmwiki turns that dormant history into a beautiful, searchable, interlinked knowledge base — locally, in two commands. Plus, it produces AI-consumable exports (llms.txt, llms-full.txt, JSON-LD graph, per-page .txt + .json siblings) so other AI agents can query your wiki directly.
./setup.sh # one-time install
./build.sh && ./serve.sh # build + serve at http://127.0.0.1:8765Want LLM-enriched wiki pages from the CLI? After ./setup.sh, llmwiki sync only fills raw/. To populate wiki/sources/ (semantic summaries), set synthesis.backend in examples/sessions_config.json (ollama for local Ollama, or keep dummy for stubs), then run llmwiki synthesize or chain it with llmwiki all --with-synth. See docs/modes/api/ and llmwiki sync --status for the current backend hint.
llmwiki sync
llmwiki all --with-synth --graph-engine builtin # synthesize → build → graph → export → lintImage: llmwiki — 70-second demo
Contributing in one line: read CONTRIBUTING.md, keep PRs focused (one concern each), use feat: / fix: / docs: / chore: / test: commit prefixes, never commit real session data (raw/ is gitignored), no new runtime deps. CI must be green to merge.
Screenshots
All screenshots below are from the public demo site which is built on every master push from the dummy example sessions. Your own wiki will look identical — just with your real work.
Home — projects overview with activity heatmap
All sessions — filterable table across every project
Session detail — full conversation + tool calls
Changelog — renders CHANGELOG.md as a first-class page
Projects index — freshness badges + per-project stats
What you get
Human-readable
All your sessions, converted from
.jsonlto clean, redacted markdownA Karpathy-style wiki —
sources/,entities/,concepts/,syntheses/,comparisons/,questions/linked with[[wikilinks]]A beautiful static site you can browse locally or deploy to GitHub Pages
Global search (Cmd+K command palette with fuzzy match over pre-built index)
highlight.js client-side syntax highlighting (light + dark themes)
Dark mode (system-aware + manual toggle with
data-theme)Keyboard shortcuts:
/search ·g h/p/snav ·j/krows ·?helpCollapsible tool-result sections (auto-expand > 500 chars)
Copy-as-markdown + copy-code buttons
Breadcrumbs + reading progress bar
Filter bar on sessions table (project/model/date/text)
Reading time estimates (
X min read)Related pages panel at the bottom of every session
Activity heatmap on the home page
Model info cards with structured schema (provider, pricing, benchmarks)
Auto-generated vs-comparison pages between AI models
Append-only changelog timeline with pricing sparkline
Project topic chips (GitHub-style tags on project cards)
Agent labels (colored badges: Claude/Codex/Copilot/Cursor/Gemini)
Recently-updated card on the home page
Dataview-style structured queries in the command palette
Hover-to-preview wikilinks
Deep-link icons next to every heading
Mobile-responsive + print-friendly
AI-consumable (v0.4)
Every HTML page has sibling machine-readable files at the same URL:
<page>.html— human HTML with schema.org microdata<page>.txt— plain text version (no HTML tags)<page>.json— structured metadata + body
Site-level AI-agent entry points:
| File | What |
|---|---|
/llms.txt | Short index per llmstxt.org spec |
/llms-full.txt | Flattened plain-text dump (~5 MB cap) — paste into any LLM's context |
/graph.jsonld | Schema.org JSON-LD entity/concept/source graph |
/sitemap.xml | Standard sitemap with lastmod |
/rss.xml | RSS 2.0 feed of newest sessions |
/robots.txt | AI-friendly robots with llms.txt reference |
/ai-readme.md | AI-specific navigation instructions |
/manifest.json | Build manifest with SHA-256 hashes + perf budget |
Every page also includes an <!-- llmwiki:metadata --> HTML comment that AI agents can parse without fetching the separate .json sibling.
Recipe — query graph.jsonld from your terminal
The JSON-LD graph isn't just for crawlers — you can ask quick questions about your wiki without leaving the shell. Example: print every session as a tree, grouped by project:
python3 examples/scripts/tree_from_graph.pyOutput:
📚 8 sessions across 3 projects
(site/graph.jsonld v1.3.0)
llmwiki/
├── demo-blog-engine/ (4 sessions)
│ ├── 2026-03-12 scaffolding-the-rust-blog-engine
│ ├── 2026-03-18 adding-syntax-highlighting
│ ├── 2026-03-25 rss-feed-and-sitemap
│ └── 2026-04-01 dark-mode-toggle
├── demo-ml-pipeline/ (2 sessions)
│ ├── 2026-01-20 training-data-pipeline
│ └── 2026-02-02 model-training-loop
└── demo-todo-api/ (2 sessions)
├── 2026-02-08 fastapi-project-bootstrap
└── 2026-02-15 adding-oauth-loginThe full script is stdlib-only at examples/scripts/tree_from_graph.py. Same recipe pattern works for any aggregation question — count sessions per model, find the largest project by token usage, list every entity that appears in 3+ sessions, etc. The graph is yours to slice.
Quality & governance (v1.0)
4-factor confidence scoring — source count, source quality, recency, cross-references; with Ebbinghaus-inspired decay per content-type
5-state lifecycle machine — draft → reviewed → verified → stale → archived with 90-day auto-stale
16 lint rules — 8 structural (frontmatter, link integrity, orphans, freshness, duplicates, index sync…) + 3 LLM-powered (contradictions, claim verification, summary accuracy) + stale_candidates (#51) + tags_topics_convention (#302) + stale_reference_detection (#303) + frontmatter_count_consistency (#378) + tools_consistency (#378)
Auto Dream — MEMORY.md consolidation after 24h + 5 sessions: resolve relative dates, prune outdated, 200-line cap
9 navigation files — CLAUDE.md, AGENTS.md, MEMORY.md, SOUL.md, CRITICAL_FACTS.md, hints.md, hot.md + per-project hot caches
Obsidian-native experience (v1.0)
link-obsidianCLI — symlinks the whole project into an Obsidian vault; graph view + backlinks + full-text search just workDataview dashboard — 10 ready-to-use queries (recently updated, by confidence, by lifecycle, by project, by entity type, open questions, stale pages)
Templater templates — 4 templates for source/entity/concept/synthesis pages, seeded with confidence + lifecycle + today's date
Category pages — tag-based index pages in both Dataview (Obsidian) and static markdown (HTML) modes
Integration guide —
docs/obsidian-integration.mdcovers 6 recommended plugins with per-plugin configs
Automation
SessionStart hook — auto-syncs new sessions in the background on every Claude Code launch
Auto-build on sync —
/wiki-synctriggers/wiki-build(configurable; default on)One-shot pipeline —
llmwiki allruns build → graph → export → lint in a single command (--strictfor CI)MCP server — 12 production tools (query, search, list, read, lint, sync, export, + confidence, lifecycle, dashboard, entity search, category browse) queryable from any MCP client (Claude Desktop, Cline, Cursor, ChatGPT desktop)
Pending ingest queue — SessionStart hook converts + queues;
/wiki-syncprocesses queueNo servers, no database, no npm — Python stdlib +
markdown. Syntax highlighting loads from a highlight.js CDN at view time.
Tutorial — every command in 90 seconds
A guided tour. Run these in order and you'll have a fully working wiki at http://127.0.0.1:8765/ by the end. Each command is idempotent and prints what it did.
A scripted recording of the same flow ships at docs/videos/cli-tutorial.gif (31 seconds against an 8-session sandbox). The reproducible source is docs/videos/cli-tutorial.tape — re-render anytime with vhs docs/videos/cli-tutorial.tape.
# 1. One-time scaffold (≈1 sec). Creates raw/, wiki/, site/, seed nav files.
llmwiki init
# 2. Pull in your sessions (≈1 sec / 100 sessions). Walks every adapter
# that's "available" on this machine (Claude Code, Codex CLI, Cursor,
# Gemini, Obsidian, Copilot Chat / CLI), converts new .jsonl files to
# raw/sessions/*.md, then runs build + lint by default.
llmwiki sync
# 3. Compile the static HTML site (≈3 sec on a 500-session corpus).
# Already runs as part of `sync`; call directly when you're iterating
# on a wiki/ page and don't need a fresh sync.
llmwiki build
# 4. Browse it locally. Cmd+K opens the search palette; / focuses the
# filter bar on /sessions/. Press Ctrl+C to stop.
llmwiki serve
# 5. (Optional) Generate the knowledge graph + AI-consumable exports.
# `all` runs build → graph → export → lint in one shot.
llmwiki graph
llmwiki export all
llmwiki all # one-shot equivalent of build + graph + export + lintThat's the entire happy path. Two more commands you'll reach for occasionally:
# Inspect what's installed + configured. Prints a per-adapter table:
# (available: yes/no, configured: yes/no, session-store path).
llmwiki adapters
# Lint the wiki. 16 rules — broken wikilinks, orphaned pages, stale
# summaries, duplicate detection, freshness, missing entities, etc.
# Runs as part of `sync` by default; call directly for a one-shot check.
llmwiki lintThree optional flags you'll discover later:
--adapter <name>— limitsyncto one adapter (e.g.--adapter claude_code)--vault PATH— write into an Obsidian / Logseq vault overlay instead ofwiki/(#54)--synthesize— call out to a local Claude / Ollama backend duringbuildfor an LLM-generated overview page
Each subcommand has its own --help with the rest. The CLI reference table below is the full list.
How it works
┌─────────────────────────────────────┐
│ ~/.claude/projects/*/*.jsonl │ ← Claude Code sessions
│ ~/.codex/sessions/**/*.jsonl │ ← Codex CLI sessions
│ ~/Library/.../Cursor/workspaceS… │ ← Cursor
│ ~/Documents/Obsidian Vault/ │ ← Obsidian
│ ~/.gemini/ │ ← Gemini CLI
└──────────────┬──────────────────────┘
│
▼ python3 -m llmwiki sync
┌─────────────────────────────────────┐
│ raw/sessions/<project>/ │ ← immutable markdown (Karpathy layer 1)
│ 2026-04-08-<slug>.md │
└──────────────┬──────────────────────┘
│
▼ /wiki-ingest (your coding agent)
┌─────────────────────────────────────┐
│ wiki/sources/<slug>.md │ ← LLM-generated wiki (Karpathy layer 2)
│ wiki/entities/<Name>.md │
│ wiki/concepts/<Name>.md │
│ wiki/syntheses/<Name>.md │
│ wiki/comparisons/<Name>.md │
│ wiki/questions/<Name>.md │
│ wiki/index.md, overview.md, log.md │
└──────────────┬──────────────────────┘
│
▼ python3 -m llmwiki build
┌─────────────────────────────────────┐
│ site/ │ ← static HTML + AI exports
│ ├── index.html, style.css, ... │
│ ├── sessions/<project>/<slug>.html │
│ ├── sessions/<project>/<slug>.txt │ (AI sibling)
│ ├── sessions/<project>/<slug>.json │ (AI sibling)
│ ├── llms.txt, llms-full.txt │
│ ├── graph.jsonld │
│ ├── sitemap.xml, rss.xml │
│ ├── robots.txt, ai-readme.md │
│ ├── manifest.json │
│ └── search-index.json │
└─────────────────────────────────────┘See docs/architecture.md for the full 3-layer Karpathy + 8-layer build breakdown.
Documentation
Full production documentation lives under docs/. The editorial
hub is docs/index.md — tutorials, per-agent guides,
reference, and deployment, all in one place.
Start here:
| Goal | Read |
|---|---|
| Install and build your first site in 10 minutes | Tutorial 01 → 02 |
| Use llmwiki with Claude Code | Tutorial 03 |
| Use llmwiki with Codex CLI | Tutorial 04 |
| Query / lint / review your wiki daily | Tutorial 05 |
| Point llmwiki at an existing Obsidian / Logseq vault | Tutorial 06 |
| See four real end-to-end workflows | Tutorial 07 |
Contributing to docs? See the style guide.
Install
macOS / Linux
git clone https://github.com/Pratiyush/llm-wiki.git
cd llm-wiki
./setup.shWindows
git clone https://github.com/Pratiyush/llm-wiki.git
cd llm-wiki
setup.batWith pip (v0.3+)
pip install -e . # basic — everything you need
pip install -e '.[graph]' # + graphifyy AI-powered graph engine
pip install -e '.[dev]' # + pytest + ruff
pip install -e '.[e2e]' # + Playwright + pytest-bdd + pytest-html (E2E)
pip install -e '.[all]' # graph + everythingSyntax highlighting is now powered by highlight.js, loaded from a CDN at view time — no optional deps required.
What setup does
Creates
raw/,wiki/,site/data directoriesInstalls the
llmwikiPython package in-placeDetects your coding agents and enables matching adapters
Optionally offers to install the
SessionStarthook into~/.claude/settings.jsonfor auto-syncRuns a first sync so you see output immediately
For maintainers
Running the project? The governance scaffold lives under docs/maintainers/ and is loaded by a dedicated skill:
| File | What it's for |
|---|---|
CONTRIBUTING.md | Short rules for contributors — read this first |
CODE_OF_CONDUCT.md | Contributor Covenant 2.1 |
SECURITY.md | Disclosure process for redaction bugs, XSS, data leaks |
docs/maintainers/ARCHITECTURE.md | One-page system diagram + layer boundaries + what NOT to add |
docs/maintainers/REVIEW_CHECKLIST.md | Canonical code-review criteria |
docs/maintainers/RELEASE_PROCESS.md | Version bump → CHANGELOG → tag → build → publish |
docs/maintainers/TRIAGE.md | Label taxonomy + stale-issue policy |
docs/maintainers/ROADMAP.md | Near-term plan + release themes |
docs/maintainers/DECLINED.md | Graveyard of declined ideas with reasons |
Four Claude Code slash commands automate the common ops:
/review-pr <N>— apply the REVIEW_CHECKLIST to a PR and post findings/triage-issue <N>— label + milestone + priority a new issue/release <version>— walk the release process step by step/maintainer— meta-skill that loads every governance doc as context
Running E2E tests
The unit suite (pytest tests/ — 2,651 tests) runs in seconds and
covers every module. The end-to-end suite under tests/e2e/ is
separate: it builds a minimal demo site, serves it on a random port,
drives a real browser via Playwright,
and runs scenarios written in Gherkin
via pytest-bdd.
Why both? Unit tests lock the contract at the module boundary; E2E locks the contract at the user's browser. A diff that passes unit tests but breaks the Cmd+K palette will fail E2E.
Install the extras (one-time, several hundred MB for the Chromium binary):
pip install -e '.[e2e]'
python -m playwright install chromiumRun the suite:
pytest tests/e2e/ --browser=chromiumRun a single feature:
pytest tests/e2e/test_command_palette.py --browser=chromium -vThe E2E suite is excluded from the default pytest tests/ run
(see the --ignore=tests/e2e addopt in pyproject.toml) so you
can iterate on the unit suite without waiting for browser installs.
CI runs the E2E job as a separate workflow (.github/workflows/e2e.yml)
that only fires on PRs touching build.py, the viz modules, or
tests/e2e/**.
Feature files live under tests/e2e/features/ — one per UI area
(homepage, session page, command palette, keyboard nav, mobile nav,
theme toggle, copy-as-markdown, responsive breakpoints, edge
cases, accessibility, visual regression). Step definitions
are all in tests/e2e/steps/ui_steps.py. Adding a new scenario is
usually a 2-line change to a .feature file plus maybe one new step.
Run locally with an HTML report:
pytest tests/e2e/ --browser=chromium \
--html=e2e-report/index.html --self-contained-html
open e2e-report/index.html # macOS — opens the browseable reportWhere to see test reports:
| What | Where |
|---|---|
| Unit test results | GitHub Actions → ci.yml → latest run → lint-and-test job logs |
| E2E HTML report | GitHub Actions → e2e.yml → latest run → Artifacts → e2e-html-report (14-day retention) |
| Visual regression screenshots | Same run → Artifacts → e2e-screenshots |
| Playwright traces (failed runs only) | Same run → Artifacts → playwright-traces (open with playwright show-trace <zip>) |
| Demo site deploy status | GitHub Actions → pages.yml → latest run |
Locally, the HTML report is one file (e2e-report/index.html) that
you can open in any browser — pass/fail per scenario, duration,
stdout/stderr, screenshot on failure.
Scheduled sync
For a daily / weekly cron-style sync, schedule llmwiki sync directly via your OS's native job runner (launchd on macOS, systemd on Linux, Task Scheduler on Windows). Paths and adapter selection come from examples/sessions_config.json.
CLI reference
llmwiki init # scaffold raw/ wiki/ site/ + seed nav files
llmwiki sync # convert .jsonl → markdown (auto-build + auto-lint if configured)
llmwiki build # compile static HTML + AI exports
llmwiki serve # local HTTP server on 127.0.0.1:8765
llmwiki adapters # list available adapters + configured state (v1.0)
llmwiki graph # build knowledge graph (v0.2)
llmwiki lint # 16-rule wiki lint (v1.2)
llmwiki export <format> # AI-consumable exports (v0.4)
llmwiki synthesize # auto-ingest synthesis pipeline (v0.5)
llmwiki all # build → graph → export → lint in one shot (v1.2)
llmwiki versionEach subcommand has its own --help. All commands are also wrapped in one-click shell/batch scripts: sync.sh/.bat, build.sh/.bat, serve.sh/.bat, upgrade.sh/.bat.
Works with
| Agent | Adapter | Status | Added in |
|---|---|---|---|
| Claude Code | llmwiki.adapters.claude_code | ✅ Production | v0.1 |
| Obsidian (input) | llmwiki.adapters.obsidian | ✅ Production | v0.1 |
| Obsidian (output) | llmwiki.obsidian_output | ✅ Production | v0.2 |
| Codex CLI | llmwiki.adapters.codex_cli | ✅ Production | v0.3 |
| Cursor | llmwiki.adapters.cursor | 🧪 Beta — needs verification against current Cursor session format | v0.5 |
| Gemini CLI | llmwiki.adapters.gemini_cli | 🧪 Beta — layout TBC | v0.5 |
| Copilot Chat | llmwiki.adapters.copilot_chat | 🧪 Beta | v0.9 |
| Copilot CLI | llmwiki.adapters.copilot_cli | 🧪 Beta | v0.9 |
| OpenCode / OpenClaw | — | ⏸ Deferred | — |
Adding a new agent is one small file — subclass BaseAdapter, declare SUPPORTED_SCHEMA_VERSIONS, ship a fixture + snapshot test.
MCP server
llmwiki ships its own MCP server (stdio transport, no SDK dependency) so any MCP client can query your wiki directly.
python3 -m llmwiki.mcp # runs on stdin/stdoutTwelve production tools (7 core + 5 added in v1.0 #159):
| Tool | What |
|---|---|
wiki_query(question, max_pages) | Keyword search + page content (no LLM synthesis) |
wiki_search(term, include_raw) | Raw grep over wiki/ (+ optional raw/) |
wiki_list_sources(project) | List raw source files with metadata |
wiki_read_page(path) | Read one page (path-traversal guarded) |
wiki_lint() | Orphans + broken-wikilinks report |
wiki_sync(dry_run) | Trigger the converter |
wiki_export(format) | Return any AI-consumable export (llms.txt, jsonld, sitemap, rss, manifest) |
wiki_confidence(min, max) | Pages by confidence range (v1.0) |
wiki_lifecycle(state) | Pages by draft/reviewed/verified/stale/archived (v1.0) |
wiki_dashboard() | Health summary: counts by type, lifecycle, confidence (v1.0) |
wiki_entity_search(name, entity_type) | Search entities by name substring or type (v1.0) |
wiki_category_browse(tag) | Browse tags with counts, drill into specific tag (v1.0) |
Register in your MCP client's config — e.g. for Claude Desktop, add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"llmwiki": {
"command": "python3",
"args": ["-m", "llmwiki.mcp"]
}
}
}Configuration
Single JSON config at examples/sessions_config.json. Copy to config.json and edit:
{
"filters": {
"live_session_minutes": 60,
"exclude_projects": []
},
"redaction": {
"real_username": "YOUR_USERNAME",
"replacement_username": "USER",
"extra_patterns": [
"(?i)(api[_-]?key|secret|token|bearer|password)...",
"sk-[A-Za-z0-9]{20,}"
]
},
"truncation": {
"tool_result_chars": 500,
"bash_stdout_lines": 5
},
"adapters": {
"obsidian": {
"vault_paths": ["~/Documents/Obsidian Vault"]
}
}
}All paths, regexes, truncation limits, and per-adapter settings are tunable. See docs/configuration.md.
.llmwikiignore
Gitignore-style pattern file at the repo root. Skip entire projects, dates, or specific sessions without touching config:
# Skip a whole project
confidential-client/
# Skip anything before a date
*2025-*
# Keep exception
!confidential-client/public-*Karpathy's LLM Wiki pattern
This project follows the three-layer structure described in Karpathy's gist:
Raw sources (
raw/) — immutable. Session transcripts converted from.jsonl.The wiki (
wiki/) — LLM-generated. One page per entity, concept, source. Interlinked via[[wikilinks]].The schema (
CLAUDE.md,AGENTS.md) — tells your agent how to ingest and query.
See docs/architecture.md for the full breakdown and how it maps to the file tree.
Design principles
Stdlib first — only mandatory runtime dep is
markdown. Optional extras (graph,dev,e2e) layer in graph engines, lint/test tooling, and Playwright on top.Works offline — no Google fonts, no external CSS. Syntax highlighting loads from a highlight.js CDN but degrades gracefully without it.
Redact by default — username, API keys, tokens, emails all get redacted before entering the wiki.
Idempotent everything — re-running any command is safe and cheap.
Agent-agnostic core — the converter doesn't know which agent produced the
.jsonl; adapters translate.Privacy by default — localhost-only binding, no telemetry, no cloud calls.
Dual-format output (v0.4) — every page ships both for humans (HTML) and AI agents (TXT + JSON + JSON-LD + sitemap + llms.txt).
Docs
Getting started — 5-minute quickstart
Setup guide — 15-minute end-to-end tutorial: local setup → deploy to GitHub Pages → customization (v1.0)
Obsidian integration — 5-minute setup, 6 recommended plugins, config recipes (v1.0)
Architecture — Karpathy 3-layer + 8-layer build breakdown
Configuration — every tuning knob
Privacy — redaction rules +
.llmwikiignore+ localhost bindingWindows setup — Windows-specific gotchas
Framework — Open Source Framework v4.1 adapted for agent-native dev tools
Research — Phase 1.25 analysis of 15 prior LLM Wiki implementations
Feature matrix — all 161 features across 16 categories
Roadmap — Phase × Layer × Item MoSCoW table
Translations: i18n/zh-CN, i18n/ja, i18n/es
Per-adapter docs:
Releases
| Version | Focus | Tag |
|---|---|---|
| v0.1.0 | Core release — Claude Code adapter, god-level HTML UI, schema, CI, plugin scaffolding | v0.1.0 |
| v0.2.0 | Extensions — 3 new slash commands, 3 new adapters, Obsidian bidirectional, full MCP server | v0.2.0 |
| v0.3.0 | PyPI packaging, eval framework, i18n scaffold | v0.3.0 |
| v0.4.0 | AI + human dual format — per-page .txt/.json siblings, llms.txt, JSON-LD graph, sitemap, RSS, schema.org microdata, reading time, related pages, activity heatmap, deep-link anchors, build manifest, link checker, wiki_export MCP tool | v0.4.0 |
| v0.5.0 – v0.9.0 | Internal sprint milestones — features (_context.md, auto-ingest, qmd export, model-profile schema, activity heatmap, Copilot adapters, etc.) shipped consolidated under the v0.9.x line. No standalone tags were published. | — |
| v0.9.1 | Sprint 1 & 2 foundation — link-obsidian CLI, 4-factor confidence scoring, 5-state lifecycle machine, llmbook-reference skill, 7 entity types, flat raw/ naming, pending ingest queue, _context.md stubs, meeting + Jira adapters, configurable Web Clipper intake, rich log format | v0.9.1 |
| v0.9.2 | Sprint 3 quality — 11 lint rules (8 basic + 3 LLM-powered), Auto Dream MEMORY.md consolidation, Dataview dashboard template, category pages (Dataview + static), auto-build on sync + configurable lint schedule | v0.9.2 |
| v0.9.3 | Sprint 3 polish — Obsidian Templater templates, integration guide, two-way editing tests, MCP server 7→12 tools, adapter config validation, pipeline fix (sigstore, PyPI gate) | v0.9.3 |
| v0.9.4 | Session C1 (Sprint 4) — multi-agent skill installer, enhanced search with facets, configurable scheduled sync (launchd/systemd/Task Scheduler), CI wiki-checks workflow | v0.9.4 |
| v0.9.5 | Docs polish + consistency audit before v1.0.0 | v0.9.5 |
| v1.0.0 | Production-ready Obsidian integration — full v1.0 scope | v1.0.0 |
| v1.1.0-rc1 | Solo quick-win sprint — candidates workflow, Ollama scaffold, prompt-cache scaffold | v1.1.0-rc1 |
| v1.1.0-rc2 | Session E — interactive graph viewer + remaining code-only v1.1 work | v1.1.0-rc2 |
| v1.1.0-rc3 | Gap-sweep bundle — state portability, quarantine, sync --status, log CLI, synthesize --estimate breakdown, tag family, stale references, graph context menu, raw immutability, AI-sessions default | v1.1.0-rc3 |
| v1.1.0-rc4 | Navigation + quality — graph site_url resolver (99.7% → 0% dead clicks), llmwiki backlinks CLI (95% → 0% orphan pages), source-code → GitHub link rewriter (471 → 100 broken), verify-before-fixing contribution rule | v1.1.0-rc4 |
| v1.1.0-rc5 | Site audit + 5 closed batches — session-local ref stripping (351 → 247 broken), cheatsheet, README/CONTRIBUTING compile, expanded E2E, slash-CLI parity test, 4 adapter docs, Ollama tutorial, dual-mode docs skeleton, /wiki-synthesize slash | v1.1.0-rc5 |
| v1.1.0-rc6 | rc6 batch — fixed adapter tag hardcoded to claude-code for every adapter (#346), tutorial UX polish with in-page TOC + prev/next + edit-on-GitHub (#282), command palette now indexes 107 doc pages + 17 slash commands (#277), content-hash cache for md_to_html (#283) | v1.1.0-rc6 |
| v1.1.0-rc7 | rc7 batch — automatic AI-suggested tags during synthesis (#351), link-checker config fix (#348, #350, #353) | v1.1.0-rc7 |
| v1.1.0-rc8 | rc8 batch — complete Mode B agent-delegate backend (#316): new llmwiki synthesize --list-pending + --complete <uuid> CLI subcommands, /wiki-sync step 6 auto-detects pending prompts, Mode B ships end-to-end without an API key | v1.1.0-rc8 |
| v1.2.0 | First stable on the 1.x line — llmwiki all one-shot pipeline runner, Playwright + axe-core E2E suite (#384), project-stub auto-seeding, 2 new lint rules, critical export-fidelity + sync-collision fixes, 10 UX-critique items (#387). PyPI distribution name: llm-notebook. | v1.2.0 |
Roadmap
Shipped milestones:
v0.5.0 — Folder-level
_context.md, auto-ingest, adapter graduations, lazy search index, scheduled sync, WCAG, E2E tests (milestone)v0.6.0 — qmd export, GitLab Pages CI, PyPI release automation, maintainer governance scaffold (milestone)
v0.7.0 — Structured model-profile schema, vs-comparison pages, append-only changelog timeline (milestone)
v0.8.0 — 365-day activity heatmap, tool-calling bar chart, token usage card, session metrics frontmatter (milestone)
v0.9.0 — Project topics, agent labels, Copilot adapters, image pipeline, highlight.js, public demo deployment
v0.9.x — Sprint 1-4 foundation for v1.0.0 Obsidian integration: confidence scoring, lifecycle state machine, 9 navigation files, 11 lint rules, Auto Dream, Dataview dashboard, multi-agent skills, 12-tool MCP server, meeting + Jira adapters
Active milestones:
| Milestone | Focus | Tracking |
|---|---|---|
| v1.0.0 | Final docs polish + PyPI trusted publisher + release | Milestone |
| v1.1.0 | Ollama backend, prompt caching, interactive graph viewer, Homebrew tap | Milestone |
| v1.2.0 | ChatGPT + OpenCode adapters, vault-overlay mode, tree-aware search, cache tiers | Milestone |
Deployment targets
GitHub Pages — shipped in v0.1 via
.github/workflows/pages.yml(triggers on push to master). Seedocs/deploy/github-pages.md.Docker / GHCR — pull and run:
docker compose pull && docker compose up -d. Image published toghcr.io/pratiyush/llm-wikion every tag push. Seedocs/deploy/docker.md.GitLab Pages — copy
.gitlab-ci.yml.example→.gitlab-ci.yml. Seedocs/deploy/gitlab-pages.md.Vercel / Netlify — static deploy after
llmwiki build. Seedocs/deploy/vercel-netlify.md.Any static host —
llmwiki buildwrites tosite/, which you canrsync/scpanywhere.
Acknowledgements
SamurAIGPT/llm-wiki-agent, lucasastorian/llmwiki, xoai/sage-wiki, and bashiraziz/llm-wiki-template — prior art that shaped this.
Python Markdown for the rendering pipeline, and highlight.js for client-side syntax highlighting.
llmstxt.org for the llms.txt spec used in v0.4.
License
MIT © Pratiyush
docs/research.md
Phase 1.25 — Research Report
Date: 2026-04-08
Method: Cloned every referenced implementation from Karpathy's gist and the top related GitHub searches into .temp/ (gitignored) for side-by-side comparison.
This document is the deliverable for Phase 1.25 Research, a new phase added to the llmwiki framework (see docs/framework.md). It is the source of truth for prior-art analysis and the 10x gap that llmwiki targets.
Summary
15 reference implementations were cloned and analysed. They fall into four clusters:
| Cluster | What they do | Examples | llmwiki differentiation |
|---|---|---|---|
| Pure-markdown skills | A Claude Code skill/plugin + CLAUDE.md schema; rely on the agent to do all writes | kfchou/wiki-skills, Astro-Han/karpathy-llm-wiki, bashiraziz/llm-wiki-template | ✅ Same base + native .jsonl → markdown + static HTML + multi-agent |
| Markdown-first + light Python | Schema + a few Python scripts for ingest/query/lint | SamurAIGPT/llm-wiki-agent, Ss1024sS/LLM-wiki, hsuanguo/llm-wiki | ✅ Same shape + session-transcript adapter + beautiful static site |
| Obsidian-coupled | Wiki lives inside an Obsidian vault; user views via Obsidian | AgriciDaniel/claude-obsidian, louiswang524/llm-knowledge-base, kytmanov/obsidian-llm-wiki-local, remember-md/remember | 🔀 Obsidian as one of many connectors (input adapter) — not the only view |
| Heavy Python / hosted | Backend services, databases, hosted demos | lucasastorian/llmwiki (Apache, Supabase + MCP, hosted at llmwiki.app), bitsofchris/openaugi | ❌ Too heavy — violates llmwiki's stdlib-first rule |
| Session browsers (not wikis) | Search/TUI over raw .jsonl; no wiki compilation | raine/claude-history, sinzin91/search-sessions | 🔀 Complementary — they search raw; llmwiki builds the wiki on top |
Per-repo analysis
Pure-markdown skills
kfchou/wiki-skills
Shape: Claude Code plugin. 6 markdown files, 0 Python files.
Strength: Minimal, well-scoped. Pure schema + slash commands.
Gap: No static HTML output. No multi-agent support. No session-transcript adapter — input is "any markdown".
Lesson: The "Claude Code plugin" distribution mode is clean — ship as a plugin + a few .md files, zero runtime deps.
Astro-Han/karpathy-llm-wiki
Shape: "One skill" marketed as Agent Skills-compatible. 6 markdown, MIT.
Strength: Explicitly targets the Agent Skills ecosystem.
Gap: Same as above — no session-aware ingestion, no HTML rendering.
Lesson: There's a clean "one-skill" positioning angle (minimal cognitive footprint) that resonates.
bashiraziz/llm-wiki-template
Shape: Template with 26 markdown files + 3 Python scripts. MIT.
Strength: Template layout is clean and opinionated.
Gap: Template alone — no session transcripts, no HTML, no adapters.
Lesson: A template-first distribution is a lower-effort entry point than a full tool.
Markdown-first + light Python
SamurAIGPT/llm-wiki-agent
Shape: 11 markdown + 4 Python scripts. MIT.
Strength: The best-documented schema I've read.
/wiki-ingest,/wiki-query,/wiki-lint,/wiki-graphslash commands.build_graph.pygenerates a vis.js knowledge graph.Gap: Input is "drop markdown in
raw/" — no knowledge of session transcripts. No dark mode. No search. No HTML output beyond the graph HTML.Lesson: This is the closest prior art. llmwiki inherits its directory layout and slash-command naming (
/wiki-*).
Ss1024sS/LLM-wiki
Shape: 25 markdown + 4 Python. Generates 30 files including stale-reporting scripts.
Strength: Explicitly covers the "AI remembers nothing in new sessions" pain point in its README.
Gap: No HTML viewer. No multi-agent.
Lesson: The stale-reporting idea is worth borrowing — llmwiki should ship
/wiki-lintwith "stale pages" detection baked in.
hsuanguo/llm-wiki
Shape: 13 markdown + 9 Python. Has a logo, more polish.
Strength: The most Python-heavy of the markdown-first implementations — suggests the author hit real scale issues.
Gap: Not session-aware.
Lesson: Once you reach ~10 Python files, you're building a CLI. llmwiki leans into that explicitly.
Obsidian-coupled
AgriciDaniel/claude-obsidian
Shape: 50 markdown files, 0 Python. The wiki itself is real content living in Obsidian.
Strength: Treats Obsidian as a first-class viewer. The
meta/folder contains a cover GIF — good product presentation.Gap: 100% Obsidian-locked. If you don't use Obsidian, this is useless.
Lesson: Obsidian is a compelling viewer for many users — llmwiki should ship an Obsidian connector as an optional input/output, not the only path.
kytmanov/obsidian-llm-wiki-local
Shape: 2 markdown + 25 Python files. Uses a local LLM (no cloud API calls).
Strength: Privacy angle — everything runs locally, no OpenAI/Anthropic API calls.
Gap: Requires running a local model — heavy prerequisite.
Lesson: Privacy-first positioning resonates. llmwiki's no-telemetry + local-only rules align with this.
louiswang524/llm-knowledge-base
Shape: 10 markdown + 1 Python. Claude Code + Obsidian.
Strength: Clean coupling between Claude Code (writer) and Obsidian (viewer).
Gap: Assumes Obsidian is installed.
Lesson: "Writer/viewer split" is a useful mental model.
remember-md/remember
Shape: 23 markdown, 0 Python. Obsidian-compatible memory for OpenClaw + Claude Code.
Strength: "Tool-portable memory" framing — "one brain, every AI tool".
Gap: Focused on memory/decisions rather than wiki compilation.
Lesson: The multi-agent portability angle is strong. llmwiki's adapter pattern delivers this.
Heavy Python / hosted
lucasastorian/llmwiki
Shape: 1 markdown + 47 Python files. Apache 2.0. Hosted demo at llmwiki.app.
Strength: Has a real backend (Supabase + S3), MCP server, hosted UI. Production-grade infra.
Gap: Requires Supabase + S3 + Node + MCP server to self-host. Violates llmwiki's stdlib rule hard.
Lesson: This is the "full-stack" approach. llmwiki is explicitly the opposite — zero infra, all local.
bitsofchris/openaugi
Shape: 27 markdown + 48 Python files. "Your augmented knowledge base for Agentic work."
Strength: Covers agent-centric use cases well.
Gap: Very heavy.
Lesson: There's room for a lighter alternative — which is llmwiki's niche.
Session browsers (complementary, not competitors)
raine/claude-history
Shape: TUI app. 3 markdown + 0 Python.
Strength: "Best thing ever" user quote in the README. Clear UX.
Gap: Search-only, no wiki building.
Lesson: Users love the ability to search their session history. llmwiki's wiki is additive — it compiles search-ready content.
sinzin91/search-sessions
Shape: CLI binary. 13 markdown + 0 Python (Go).
Strength: Sub-300ms search across all sessions.
Gap: Same — search only.
Lesson: llmwiki could call out to search-sessions as an optional backend for its Cmd+K search.
Not cloned (mentioned but out of scope)
tobi/qmd — personal wiki format, broader than llmwiki
silverbulletmd/silverbullet — extensible notes platform
swarmclawai/swarmvault — multi-agent vault
anzal1/quicky-wiki — small-scale wiki
Houseofmvps/codesight — different domain
milla-jovovich/mempalace — memory palace
MetamusicX/llm-research-wiki — research-only
The 10x gap (feature matrix)
| Feature | Most existing | llmwiki |
|---|---|---|
Ingests .jsonl session transcripts | ❌ (generic markdown only) | ✅ |
| Claude Code adapter | Some | ✅ |
| Codex CLI adapter | None | ✅ stub (v0.2) |
| Multi-agent adapter pattern | None | ✅ |
Pure stdlib + markdown (no DB, no MCP, no Node) | ~50% | ✅ |
| Beautiful static HTML viewer | ❌ | ✅ god-level UI |
| Global search (Cmd+K) | ❌ | ✅ client-side index |
| Syntax highlighting | Rarely | ✅ highlight.js (CDN) |
| Redaction by default | ❌ | ✅ username + API keys + tokens + emails |
| Live-session detection | ❌ | ✅ skips <60min old |
| Idempotent incremental sync | Some | ✅ mtime state file |
Windows .bat scripts | Rarely | ✅ |
| Obsidian connector | Some (only input) | ✅ input and output |
| No cloud, no telemetry, no auth | Some | ✅ hard rule |
Build time <15s for 300 sessions | Varies | ✅ 9s measured |
Borrowed ideas (with attribution)
Directory layout (
raw/,wiki/,index.md,log.md,overview.md) — Karpathy's gist + SamurAIGPT/llm-wiki-agentSlash commands (
/wiki-ingest,/wiki-query,/wiki-lint,/wiki-graph) — SamurAIGPT/llm-wiki-agentStale-page detection — Ss1024sS/LLM-wiki
Local-LLM privacy angle — kytmanov/obsidian-llm-wiki-local
Writer/viewer split — louiswang524/llm-knowledge-base
Multi-tool portable memory framing — remember-md/remember
Hosted-demo angle (to be used for Phase 6.5 Self-Demo, not the tool itself) — lucasastorian/llmwiki
Single-skill marketing — Astro-Han/karpathy-llm-wiki
Decisions informed by this research
Keep llmwiki stdlib-first.
lucasastorian/llmwikishows the "full-stack" approach exists; llmwiki is the local alternative.Ship an Obsidian adapter in v0.1. Four of 15 reference implementations use Obsidian — clearly important to users. Make it an optional input adapter, not the only path.
Ship the HTML viewer as the hero feature. None of the reference implementations have a beautiful static HTML output. This is llmwiki's most visible 10x.
Keep the slash commands compatible with SamurAIGPT/llm-wiki-agent and kfchou/wiki-skills. Users can switch between implementations.
Use Karpathy's three-layer structure exactly (
raw/immutable,wiki/LLM-maintained, schema in CLAUDE.md/AGENTS.md). No deviations.Build-time redaction is non-negotiable — none of the reference implementations do this, and session transcripts leak PII by default.
References
Tolkien Gateway — example of a user-maintained wiki Karpathy cites for structure
All 15 cloned repos listed above (under
.temp/, gitignored)
512 files · 468 not served here
- .claude-plugin/marketplace.json (not served here)
- .claude-plugin/plugin.json
- .claude/commands/maintainer.md (not served here)
- .claude/commands/release.md (not served here)
- .claude/commands/review-pr.md (not served here)
- .claude/commands/triage-issue.md (not served here)
- .claude/commands/wiki-all.md (not served here)
- .claude/commands/wiki-build.md (not served here)
- .claude/commands/wiki-candidates.md (not served here)
- .claude/commands/wiki-export-marp.md (not served here)
- .claude/commands/wiki-graph.md (not served here)
- .claude/commands/wiki-ingest.md (not served here)
- .claude/commands/wiki-init.md (not served here)
- .claude/commands/wiki-lint.md (not served here)
- .claude/commands/wiki-query.md (not served here)
- .claude/commands/wiki-reflect.md (not served here)
- .claude/commands/wiki-serve.md (not served here)
- .claude/commands/wiki-sync.md (not served here)
- .claude/commands/wiki-synthesize.md (not served here)
- .claude/commands/wiki-update.md (not served here)
- .claude/launch.json (not served here)
- .claude/skills/llmwiki-ingest/SKILL.md (not served here)
- .claude/skills/llmwiki-query/SKILL.md (not served here)
- .claude/skills/llmwiki-sync/SKILL.md (not served here)
- .claude/skills/project-maintainer/SKILL.md (not served here)
- .claude/skills/self-learn/SKILL.md (not served here)
- .claude/skills/wiki-all/SKILL.md (not served here)
- .editorconfig (not served here)
- .github/CODEOWNERS (not served here)
- .github/FUNDING.yml (not served here)
- .github/ISSUE_TEMPLATE/adapter_request.md (not served here)
- .github/ISSUE_TEMPLATE/bug_report.yml (not served here)
- .github/ISSUE_TEMPLATE/chore.yml (not served here)
- .github/ISSUE_TEMPLATE/feature_request.yml (not served here)
- .github/PULL_REQUEST_TEMPLATE.md (not served here)
- .github/dependabot.yml (not served here)
- .github/release-drafter.yml (not served here)
- .github/synthetic-failure-template.md (not served here)
- .github/workflows/agents-e2e.yml (not served here)
- .github/workflows/agents-healer.yml (not served here)
- .github/workflows/ci.yml (not served here)
- .github/workflows/claude-code-review.yml (not served here)
- .github/workflows/claude.yml (not served here)
- .github/workflows/cross-browser.yml (not served here)
- .github/workflows/docker-publish.yml (not served here)
- .github/workflows/e2e.yml (not served here)
- .github/workflows/gitleaks.yml (not served here)
- .github/workflows/homebrew-bump.yml (not served here)
- .github/workflows/link-check.yml (not served here)
- .github/workflows/llmwiki-action.yml (not served here)
- .github/workflows/pages.yml (not served here)
- .github/workflows/pr-lint.yml (not served here)
- .github/workflows/regen-screenshots.yml (not served here)
- .github/workflows/release-drafter.yml (not served here)
- .github/workflows/release.yml (not served here)
- .github/workflows/synthetic.yml (not served here)
- .github/workflows/wiki-checks.yml (not served here)
- .gitignore (not served here)
- .gitlab-ci.yml.example (not served here)
- .kiro/steering/contributing-rules.md
- .kiro/steering/page-format.md
- .kiro/steering/verification-rules.md
- .llmwiki-synth-state.json (not served here)
- AGENTS.md
- ATTRIBUTION.md
- AUTOGINEER-RUNS.md
- CHANGELOG.md
- CLAUDE.md
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- Dockerfile (not served here)
- LICENSE
- README.md
- RELEASE-NOTES-v1.2.0.md
- SECURITY.md
- action.yml (not served here)
- build.bat (not served here)
- build.sh (not served here)
- docker-compose.yml (not served here)
- docs/UPGRADING.md
- docs/accessibility-report.md
- docs/accessibility.md
- docs/adapter-authoring.md
- docs/adapters/chatgpt.md (not served here)
- docs/adapters/claude-code.md (not served here)
- docs/adapters/codex-cli.md (not served here)
- docs/adapters/copilot.md (not served here)
- docs/adapters/cursor.md (not served here)
- docs/adapters/gemini-cli.md (not served here)
- docs/adapters/obsidian.md (not served here)
- docs/adapters/opencode.md (not served here)
- docs/api-guide.md
- docs/architecture.md
- docs/benchmarks.md
- docs/cheatsheet.md
- docs/competitor-landscape.md
- docs/configuration-reference.md
- docs/configuration.md
- docs/demo.gif (not served here)
- docs/deploy/docker.md (not served here)
- docs/deploy/github-pages.md (not served here)
- docs/deploy/gitlab-pages.md (not served here)
- docs/deploy/homebrew-setup.md (not served here)
- docs/deploy/pypi-publishing.md (not served here)
- docs/deploy/vercel-netlify.md (not served here)
- docs/design/brand-system.md (not served here)
- docs/faq.md
- docs/feature-matrix.md
- docs/framework.md
- docs/getting-started.md
- docs/guides/existing-vault.md (not served here)
- docs/i18n/README.md (not served here)
- docs/i18n/es/getting-started.md (not served here)
- docs/i18n/ja/getting-started.md (not served here)
- docs/i18n/zh-CN/getting-started.md (not served here)
- docs/images/changelog.png (not served here)
- docs/images/compare.png (not served here)
- docs/images/home.png (not served here)
- docs/images/llmwiki-combined-4up.png (not served here)
- docs/images/llmwiki-linkedin-square.png (not served here)
- docs/images/model.png (not served here)
- docs/images/project-detail.png (not served here)
- docs/images/projects.png (not served here)
- docs/images/session-code.png (not served here)
- docs/images/session-detail.png (not served here)
- docs/images/session-rust.png (not served here)
- docs/images/session.png (not served here)
- docs/images/sessions.png (not served here)
- docs/index.md
- docs/maintainers/ADR-001-playwright-stack.md (not served here)
- docs/maintainers/ARCHITECTURE.md (not served here)
- docs/maintainers/DECLINED.md (not served here)
- docs/maintainers/README.md (not served here)
- docs/maintainers/RELEASE_PROCESS.md (not served here)
- docs/maintainers/REVIEW_CHECKLIST.md (not served here)
- docs/maintainers/ROADMAP.md (not served here)
- docs/maintainers/TRIAGE.md (not served here)
- docs/maintainers/playwright-agents-bootstrap.md (not served here)
- docs/modes/agent/backend.md (not served here)
- docs/modes/agent/index.md (not served here)
- docs/modes/api/index.md (not served here)
- docs/modes/index.md (not served here)
- docs/monthly-report-template.md
- docs/multi-agent-setup.md
- docs/obsidian-integration.md
- docs/privacy.md
- docs/public-roadmap.md
- docs/reference/cache-tiers.md (not served here)
- docs/reference/cli.md (not served here)
- docs/reference/entity-schema.md (not served here)
- docs/reference/prompt-caching.md (not served here)
- docs/reference/reader-api.md (not served here)
- docs/reference/reader-shell.md (not served here)
- docs/reference/slash-commands.md (not served here)
- docs/reference/ui.md (not served here)
- docs/research.md
- docs/roadmap.md
- docs/seo.md
- docs/social-preview.svg (not served here)
- docs/star-history.md
- docs/style-guide.md
- docs/troubleshooting.md
- docs/tutorials/00-quickstart-walkthrough.md (not served here)
- docs/tutorials/01-installation.md (not served here)
- docs/tutorials/02-first-sync.md (not served here)
- docs/tutorials/03-use-with-claude-code.md (not served here)
- docs/tutorials/04-use-with-codex-cli.md (not served here)
- docs/tutorials/05-querying-your-wiki.md (not served here)
- docs/tutorials/06-bring-your-obsidian-vault.md (not served here)
- docs/tutorials/07-example-workflows.md (not served here)
- docs/tutorials/08-synthesize-with-ollama.md (not served here)
- docs/tutorials/setup-guide.md (not served here)
- docs/uptime.md
- docs/videos/cli-tutorial.gif (not served here)
- docs/videos/cli-tutorial.mp4 (not served here)
- docs/videos/cli-tutorial.tape (not served here)
- docs/videos/demo.mp4 (not served here)
- docs/windows-setup.md
- examples/.llmwikiignore (not served here)
- examples/demo-sessions/demo-blog-engine/2026-03-12-scaffolding-the-rust-blog-engine.md (not served here)
- examples/demo-sessions/demo-blog-engine/2026-03-18-adding-syntax-highlighting.md (not served here)
- examples/demo-sessions/demo-blog-engine/2026-03-25-rss-feed-and-sitemap.md (not served here)
- examples/demo-sessions/demo-blog-engine/2026-04-01-dark-mode-toggle.md (not served here)
- examples/demo-sessions/demo-ml-pipeline/2026-01-20-training-data-pipeline.md (not served here)
- examples/demo-sessions/demo-ml-pipeline/2026-02-02-model-training-loop.md (not served here)
- examples/demo-sessions/demo-todo-api/2026-02-08-fastapi-project-bootstrap.md (not served here)
- examples/demo-sessions/demo-todo-api/2026-02-15-adding-oauth-login.md (not served here)
- examples/obsidian-templates/README.md (not served here)
- examples/obsidian-templates/concept-template.md (not served here)
- examples/obsidian-templates/entity-template.md (not served here)
- examples/obsidian-templates/source-template.md (not served here)
- examples/obsidian-templates/synthesis-template.md (not served here)
- examples/scripts/README.md (not served here)
- examples/scripts/tree_from_graph.py (not served here)
- examples/sessions_config.json (not served here)
- examples/wiki_dashboard.md (not served here)
- flake.nix (not served here)
- homebrew/llmwiki.rb (not served here)
- integrations/README.md (not served here)
- integrations/obsidian/README.md (not served here)
- integrations/obsidian/main.ts (not served here)
- integrations/obsidian/manifest.json (not served here)
- integrations/vscode/README.md (not served here)
- integrations/vscode/package.json (not served here)
- integrations/vscode/src/extension.ts (not served here)
- integrations/vscode/tsconfig.json (not served here)
- llmwiki/__init__.py (not served here)
- llmwiki/__main__.py (not served here)
- llmwiki/_frontmatter.py (not served here)
- llmwiki/_system_pages.py (not served here)
- llmwiki/adapter_config.py (not served here)
- llmwiki/adapters/__init__.py (not served here)
- llmwiki/adapters/base.py (not served here)
- llmwiki/adapters/claude_code.py (not served here)
- llmwiki/adapters/codex_cli.py (not served here)
- llmwiki/adapters/contrib/__init__.py (not served here)
- llmwiki/adapters/contrib/chatgpt.py (not served here)
- llmwiki/adapters/contrib/copilot_chat.py (not served here)
- llmwiki/adapters/contrib/copilot_cli.py (not served here)
- llmwiki/adapters/contrib/cursor.py (not served here)
- llmwiki/adapters/contrib/gemini_cli.py (not served here)
- llmwiki/adapters/contrib/obsidian.py (not served here)
- llmwiki/adapters/contrib/opencode.py (not served here)
- llmwiki/adapters/status.py (not served here)
- llmwiki/backlinks.py (not served here)
- llmwiki/build.py (not served here)
- llmwiki/cache.py (not served here)
- llmwiki/candidates.py (not served here)
- llmwiki/categories.py (not served here)
- llmwiki/changelog_timeline.py (not served here)
- llmwiki/cli.py (not served here)
- llmwiki/compare.py (not served here)
- llmwiki/completion.py (not served here)
- llmwiki/confidence.py (not served here)
- llmwiki/config_schedule.py (not served here)
- llmwiki/context_md.py (not served here)
- llmwiki/convert.py (not served here)
- llmwiki/docs_pages.py (not served here)
- llmwiki/exporters.py (not served here)
- llmwiki/freshness.py (not served here)
- llmwiki/graph.py (not served here)
- llmwiki/graphify_bridge.py (not served here)
- llmwiki/ingest_queue.py (not served here)
- llmwiki/lifecycle.py (not served here)
- llmwiki/link_checker.py (not served here)
- llmwiki/lint/__init__.py (not served here)
- llmwiki/lint/rules/__init__.py (not served here)
- llmwiki/lint/rules/_helpers.py (not served here)
- llmwiki/lint/rules/claim_verification.py (not served here)
- llmwiki/lint/rules/content_freshness.py (not served here)
- llmwiki/lint/rules/contradiction_detection.py (not served here)
- llmwiki/lint/rules/duplicate_detection.py (not served here)
- llmwiki/lint/rules/entity_consistency.py (not served here)
- llmwiki/lint/rules/frontmatter_completeness.py (not served here)
- llmwiki/lint/rules/frontmatter_count_consistency.py (not served here)
- llmwiki/lint/rules/frontmatter_validity.py (not served here)
- llmwiki/lint/rules/index_sync.py (not served here)
- llmwiki/lint/rules/link_integrity.py (not served here)
- llmwiki/lint/rules/orphan_detection.py (not served here)
- llmwiki/lint/rules/stale_candidates.py (not served here)
- llmwiki/lint/rules/stale_reference_detection.py (not served here)
- llmwiki/lint/rules/summary_accuracy.py (not served here)
- llmwiki/lint/rules/tags_topics_convention.py (not served here)
- llmwiki/lint/rules/tools_consistency.py (not served here)
- llmwiki/log_reader.py (not served here)
- llmwiki/manifest.py (not served here)
- llmwiki/mcp/__init__.py (not served here)
- llmwiki/mcp/__main__.py (not served here)
- llmwiki/mcp/server.py (not served here)
- llmwiki/models_page.py (not served here)
- llmwiki/obsidian_output.py (not served here)
- llmwiki/pipeline.py (not served here)
- llmwiki/project_topics.py (not served here)
- llmwiki/py.typed (not served here)
- llmwiki/quarantine.py (not served here)
- llmwiki/queue.py (not served here)
- llmwiki/references.py (not served here)
- llmwiki/render/__init__.py (not served here)
- llmwiki/render/css.py (not served here)
- llmwiki/render/docs_css.py (not served here)
- llmwiki/render/js.py (not served here)
- llmwiki/schema.py (not served here)
- llmwiki/search_facets.py (not served here)
- llmwiki/search_tree.py (not served here)
- llmwiki/serve.py (not served here)
- llmwiki/skill_installer.py (not served here)
- llmwiki/sync/__init__.py (not served here)
- llmwiki/sync/status.py (not served here)
- llmwiki/synth/__init__.py (not served here)
- llmwiki/synth/agent_delegate.py (not served here)
- llmwiki/synth/base.py (not served here)
- llmwiki/synth/cli_helpers.py (not served here)
- llmwiki/synth/estimate.py (not served here)
- llmwiki/synth/ollama.py (not served here)
- llmwiki/synth/pipeline.py (not served here)
- llmwiki/synth/prompts/source_page.md (not served here)
- llmwiki/tag_utils.py (not served here)
- llmwiki/tags.py (not served here)
- llmwiki/vault.py (not served here)
- llmwiki/viz_heatmap.py (not served here)
- llmwiki/viz_tokens.py (not served here)
- llmwiki/viz_tools.py (not served here)
- llmwiki/watch.py (not served here)
- lychee.toml (not served here)
- package-lock.json (not served here)
- package.json (not served here)
- playwright.config.ts (not served here)
- pyproject.toml (not served here)
- scripts/add_missing_metadata.py (not served here)
- scripts/bump-homebrew-formula.sh (not served here)
- scripts/check-release-artifacts.sh (not served here)
- scripts/demo-record.sh (not served here)
- scripts/fix_model_metadata.py (not served here)
- scripts/fix_session_titles.py (not served here)
- scripts/healer-comment.js (not served here)
- scripts/normalize_wikilinks.py (not served here)
- scripts/preview_serve.py (not served here)
- scripts/record_demo.py (not served here)
- scripts/regen_docs_screenshots.py (not served here)
- serve.bat (not served here)
- serve.sh (not served here)
- setup.bat (not served here)
- setup.sh (not served here)
- specs/README.md (not served here)
- specs/docs-hub.md (not served here)
- specs/docs-page.md (not served here)
- specs/graph.md (not served here)
- specs/home.md (not served here)
- specs/project-detail.md (not served here)
- specs/projects-index.md (not served here)
- specs/session-detail.md (not served here)
- specs/sessions-index.md (not served here)
- specs/theme-toggle.md (not served here)
- sync.bat (not served here)
- sync.sh (not served here)
- tests/__init__.py (not served here)
- tests/agents/seed.spec.ts (not served here)
- tests/conftest.py (not served here)
- tests/e2e/__init__.py (not served here)
- tests/e2e/conftest.py (not served here)
- tests/e2e/features/accessibility.feature (not served here)
- tests/e2e/features/command_palette.feature (not served here)
- tests/e2e/features/copy_markdown.feature (not served here)
- tests/e2e/features/edge_cases.feature (not served here)
- tests/e2e/features/graph_viewer.feature (not served here)
- tests/e2e/features/homepage.feature (not served here)
- tests/e2e/features/keyboard_nav.feature (not served here)
- tests/e2e/features/mobile_nav.feature (not served here)
- tests/e2e/features/regression.feature (not served here)
- tests/e2e/features/responsive.feature (not served here)
- tests/e2e/features/session_page.feature (not served here)
- tests/e2e/features/theme_toggle.feature (not served here)
- tests/e2e/features/visual_regression.feature (not served here)
- tests/e2e/findings.md (not served here)
- tests/e2e/steps/__init__.py (not served here)
- tests/e2e/steps/ui_steps.py (not served here)
- tests/e2e/test_accessibility.py (not served here)
- tests/e2e/test_axe_a11y.py (not served here)
- tests/e2e/test_axe_a11y_broadened.py (not served here)
- tests/e2e/test_build_artifacts.py (not served here)
- tests/e2e/test_cli_smoke.py (not served here)
- tests/e2e/test_command_palette.py (not served here)
- tests/e2e/test_copy_markdown.py (not served here)
- tests/e2e/test_cross_browser_smoke.py (not served here)
- tests/e2e/test_dark_mode_persistence.py (not served here)
- tests/e2e/test_e2e_edge_cases.py (not served here)
- tests/e2e/test_graph_viewer.py (not served here)
- tests/e2e/test_homepage.py (not served here)
- tests/e2e/test_i18n_smoke.py (not served here)
- tests/e2e/test_keyboard_coverage.py (not served here)
- tests/e2e/test_keyboard_nav.py (not served here)
- tests/e2e/test_mobile_nav.py (not served here)
- tests/e2e/test_navigation_404.py (not served here)
- tests/e2e/test_perf_budgets.py (not served here)
- tests/e2e/test_print_stylesheet.py (not served here)
- tests/e2e/test_responsive.py (not served here)
- tests/e2e/test_search_index_validation.py (not served here)
- tests/e2e/test_search_palette.py (not served here)
- tests/e2e/test_session_page.py (not served here)
- tests/e2e/test_theme_toggle.py (not served here)
- tests/e2e/test_user_journey.py (not served here)
- tests/e2e/test_ux_microcopy.py (not served here)
- tests/e2e/test_visual_regression.py (not served here)
- tests/e2e/visual_baselines/README.md (not served here)
- tests/e2e/visual_baselines/home-desktop-dark.png (not served here)
- tests/e2e/visual_baselines/home-desktop-light.png (not served here)
- tests/e2e/visual_baselines/home-laptop-dark.png (not served here)
- tests/e2e/visual_baselines/home-laptop-light.png (not served here)
- tests/e2e/visual_baselines/home-phone-dark.png (not served here)
- tests/e2e/visual_baselines/home-phone-light.png (not served here)
- tests/e2e/visual_baselines/home-tablet-dark.png (not served here)
- tests/e2e/visual_baselines/home-tablet-light.png (not served here)
- tests/e2e/visual_baselines/session-desktop-dark.png (not served here)
- tests/e2e/visual_baselines/session-laptop-dark.png (not served here)
- tests/e2e/visual_baselines/session-phone-light.png (not served here)
- tests/e2e/visual_baselines/session-tablet-light.png (not served here)
- tests/fixtures/claude_code/minimal.jsonl (not served here)
- tests/fixtures/demo/demo-alpha/2026-04-01-curious-parsing-ada.md (not served here)
- tests/fixtures/demo/demo-alpha/2026-04-02-playful-writing-lovelace.md (not served here)
- tests/fixtures/demo/demo-beta/2026-04-03-gentle-planning-hopper.md (not served here)
- tests/fixtures/demo/demo-beta/2026-04-05-radiant-implementing-knuth.md (not served here)
- tests/fixtures/pdf/sample.pdf (not served here)
- tests/perf-budgets.json (not served here)
- tests/test_activity_timeline_label.py (not served here)
- tests/test_adapter_config.py (not served here)
- tests/test_adapter_graduation.py (not served here)
- tests/test_adapter_is_available_unified.py (not served here)
- tests/test_adapter_tag.py (not served here)
- tests/test_adapters.py (not served here)
- tests/test_agent_delegate.py (not served here)
- tests/test_ai_suggested_tags.py (not served here)
- tests/test_backlinks.py (not served here)
- tests/test_brand_system_doc.py (not served here)
- tests/test_cache.py (not served here)
- tests/test_candidates.py (not served here)
- tests/test_categories.py (not served here)
- tests/test_changelog_page.py (not served here)
- tests/test_changelog_timeline.py (not served here)
- tests/test_chatgpt_adapter.py (not served here)
- tests/test_chip_contrast.py (not served here)
- tests/test_ci_workflow.py (not served here)
- tests/test_cli.py (not served here)
- tests/test_cli_doc_parity.py (not served here)
- tests/test_cli_observability.py (not served here)
- tests/test_cmd_all_parser.py (not served here)
- tests/test_cmd_graph_fallback.py (not served here)
- tests/test_collision_retry.py (not served here)
- tests/test_compare.py (not served here)
- tests/test_completion.py (not served here)
- tests/test_confidence.py (not served here)
- tests/test_context_md.py (not served here)
- tests/test_convert.py (not served here)
- tests/test_convert_no_op_perf.py (not served here)
- tests/test_convert_state_and_coerce.py (not served here)
- tests/test_converter_metrics.py (not served here)
- tests/test_copilot_adapters.py (not served here)
- tests/test_cross_platform_paths.py (not served here)
- tests/test_dashboard.py (not served here)
- tests/test_default_redaction.py (not served here)
- tests/test_docker.py (not served here)
- tests/test_docs_structure.py (not served here)
- tests/test_edge_cases.py (not served here)
- tests/test_edge_cases_unit.py (not served here)
- tests/test_editorconfig_lychee.py (not served here)
- tests/test_filter_slug_label.py (not served here)
- tests/test_flat_naming.py (not served here)
- tests/test_force_counters.py (not served here)
- tests/test_freshness.py (not served here)
- tests/test_frontmatter_consolidation.py (not served here)
- tests/test_frontmatter_shared.py (not served here)
- tests/test_gap_fixes.py (not served here)
- tests/test_github_link_rewriter.py (not served here)
- tests/test_graph_context_menu.py (not served here)
- tests/test_graph_site_url.py (not served here)
- tests/test_graph_theme_sync.py (not served here)
- tests/test_graph_top_nav.py (not served here)
- tests/test_graph_viewer.py (not served here)
- tests/test_graphify_bridge.py (not served here)
- tests/test_healer_comment.py (not served here)
- tests/test_highlightjs.py (not served here)
- tests/test_home_card_date_range.py (not served here)
- tests/test_homebrew_tap.py (not served here)
- tests/test_ignore.py (not served here)
- tests/test_ingest_queue_shim.py (not served here)
- tests/test_is_subagent.py (not served here)
- tests/test_issue_383_pipeline.py (not served here)
- tests/test_lifecycle.py (not served here)
- tests/test_light_mode_polish.py (not served here)
- tests/test_lint_perf.py (not served here)
- tests/test_lint_rules.py (not served here)
- tests/test_lint_windows_paths.py (not served here)
- tests/test_log_reader.py (not served here)
- tests/test_mcp_byte_cap.py (not served here)
- tests/test_mcp_enhanced.py (not served here)
- tests/test_mcp_protocol.py (not served here)
- tests/test_mcp_read_page_allowlist.py (not served here)
- tests/test_mcp_safety.py (not served here)
- tests/test_md_cache.py (not served here)
- tests/test_mobile_hamburger_nav.py (not served here)
- tests/test_models_page.py (not served here)
- tests/test_no_phantom_adapters.py (not served here)
- tests/test_obsidian_docs.py (not served here)
- tests/test_obsidian_templates.py (not served here)
- tests/test_ollama_backend.py (not served here)
- tests/test_opencode_adapter.py (not served here)
- tests/test_palette_dialog_a11y.py (not served here)
- tests/test_palette_indexes.py (not served here)
- tests/test_parse_jsonl_oserror.py (not served here)
- tests/test_path_traversal.py (not served here)
- tests/test_post_review_remediation.py (not served here)
- tests/test_pr_template.py (not served here)
- tests/test_project_stubs.py (not served here)
- tests/test_project_topics.py (not served here)
- tests/test_quarantine.py (not served here)
- tests/test_queue.py (not served here)
- tests/test_raw_immutability.py (not served here)
- tests/test_reader_api_doc.py (not served here)
- tests/test_readme_badges.py (not served here)
- tests/test_reference_coverage.py (not served here)
- tests/test_references.py (not served here)
- tests/test_release_pipeline.py (not served here)
- tests/test_render_is_subagent.py (not served here)
- tests/test_render_split.py (not served here)
- tests/test_schedule_config.py (not served here)
- tests/test_schema.py (not served here)
- tests/test_schema_entity_types.py (not served here)
- tests/test_search_facets.py (not served here)
- tests/test_search_tree.py (not served here)
- tests/test_serve_smoke.py (not served here)
- tests/test_session_description.py (not served here)
- tests/test_session_ref_stripper.py (not served here)
- tests/test_sessions_index_no_date_dup.py (not served here)
Advantages
- Supports multiple AI agent session formats including Claude Code, Codex CLI, Cursor, and Gemini CLI. evidence: README.md
- Produces machine-readable exports like JSON-LD and llms.txt for direct AI agent consumption. evidence: README.md
Limitations
- Requires manual setup and maintenance of the local Python environment. evidence: README.md
- Relies on local file system access, which may be restricted in some cloud-based development environments. evidence: README.md
Security
Risk level: Medium risk
This brain runs
MCP servers (2)
.claude-plugin/plugin.json(llmwiki):python3 -m llmwiki.mcpREADME.md(llmwiki):python3 -m llmwiki.mcp
Agent instructions that run or fetch something (101)
.claude/commands/maintainer.md:Run this once at the start of a maintainer session..claude/commands/maintainer.md:**Check current state** — run these in parallel so you know what the queue looks like:.claude/commands/maintainer.md:gh run list --branch master --limit 5.claude/commands/maintainer.md:Run `/review-pr <N>` to review a specific PR against the canonical checklist.claude/commands/maintainer.md:Run `/triage-issue <N>` to apply the label taxonomy to an untriaged issue.claude/commands/maintainer.md:Run `/release <version>` to walk the release process for a new version bump.claude/commands/release.md:**Run the pre-flight** — confirm all of:.claude/commands/release.md:Master is green (`gh run list --branch master --limit 5`).claude/commands/release.md:`python3 -m pytest tests/ -q` passes on a clean checkout.claude/commands/release.md:`python3 -m llmwiki build` completes without new warnings.claude/commands/release.md:`README.md` → version badge (`Version-v<NEW>-7C3AED.svg`) Run `python3 -m llmwiki --version` to confirm..claude/commands/release.md:Run `gh pr list --state merged --limit 30` and cross-reference..claude/commands/release.md:git add llmwiki/__init__.py pyproject.toml README.md CHANGELOG.md.claude/commands/release.md:git commit -m "release(v<NEW>): bump version + CHANGELOG".claude/commands/release.md:git tag v<NEW>.claude/commands/release.md:git push origin master v<NEW>· uses the network.claude/commands/release.md:gh run list --workflow=pages.yml --limit=3.claude/commands/release.md:Visit `https://pratiyush.github.io/llm-wiki/` and confirm the new version badge is visible.· uses the network.claude/commands/review-pr.md:Run the canonical llmwiki code review against a pull request and post findings..claude/commands/review-pr.md:**Run the checklist** — apply every section of `REVIEW_CHECKLIST.md` to the diff:.claude/commands/review-pr.md:Tests (happy + edge, descriptive names, regression, tmp_path, run locally).claude/commands/triage-issue.md:**Check for duplicates** — before labeling, run:.claude/commands/wiki-all.md:Run the full llmwiki pipeline end-to-end: build → graph → export all → lint..claude/commands/wiki-all.md:`$ARGUMENTS` is forwarded verbatim to `python3 -m llmwiki all`..claude/commands/wiki-all.md:`--graph-engine builtin` — skip optional Graphify (use when `pip install llm-notebook[graph]` has not been run).claude/commands/wiki-all.md:`--with-synth` — run `synthesize` before build (fills `wiki/sources/` from `raw/`;.claude/commands/wiki-all.md:Run:.claude/commands/wiki-all.md:python3 -m llmwiki all $ARGUMENTS.claude/commands/wiki-all.md:**lint** — run every registered lint rule against the wiki.claude/commands/wiki-all.md:It is the canonical one-shot "CI-ready site" command to run after `/wiki-sync`..claude/commands/wiki-build.md:Run:.claude/commands/wiki-build.md:python3 -m llmwiki build $ARGUMENTS.claude/commands/wiki-candidates.md:python3 -m llmwiki candidates list.claude/commands/wiki-candidates.md:python3 -m llmwiki candidates list --stale.claude/commands/wiki-candidates.md:python3 -m llmwiki candidates promote --slug MyEntity.claude/commands/wiki-candidates.md:python3 -m llmwiki candidates merge --slug DuplicateFoo --into Foo.claude/commands/wiki-candidates.md:python3 -m llmwiki candidates discard --slug BogusEntity \.claude/commands/wiki-candidates.md:After any promote/merge, run `/wiki-lint` to catch broken wikilinks from pages that used to point at the candidate location..claude/commands/wiki-export-marp.md:Run: `python3 -m llmwiki export-marp --topic "$ARGUMENTS"`.claude/commands/wiki-graph.md:Run:.claude/commands/wiki-graph.md:python3 -m llmwiki graph $ARGUMENTS.claude/commands/wiki-graph.md:If the user asked for `html` or `both`, offer to open `graph/graph.html` locally with `python3 -m llmwiki serve --dir graph --port 8766`..claude/commands/wiki-init.md:Run:.claude/commands/wiki-init.md:python3 -m llmwiki init.claude/commands/wiki-reflect.md:Run a self-reflection pass over the whole wiki — look for patterns, gaps, and improvement opportunities..claude/commands/wiki-serve.md:Run:.claude/commands/wiki-serve.md:python3 -m llmwiki serve --port ${ARGUMENTS:-8765}.claude/commands/wiki-sync.md:Steps (run in this order, report progress to the user):.claude/commands/wiki-sync.md:python3 -m llmwiki sync $ARGUMENTS.claude/commands/wiki-sync.md:Run:.claude/commands/wiki-sync.md:python3 -m llmwiki synthesize --list-pending.claude/commands/wiki-sync.md:python3 -m llmwiki synthesize --complete <uuid> --page wiki/sources/<project>/<date>-<slug>.md --body /tmp/synth-<uuid>.md.claude/commands/wiki-sync.md:**Done.** Run `/wiki-build` if the caller asked for fresh HTML..claude/commands/wiki-synthesize.md:Wraps: `python3 -m llmwiki synthesize`.claude/commands/wiki-synthesize.md:| You say | Runs | |---|---| | "just show me what it would cost" | `python3 -m llmwiki synthesize --estimate` | | "preview without writing" | `python3 -m llmwiki synthesize --dry-run` | | "check the backend is reachable" | `python3 -m llmwiki synthesize --check` | | "force re-synthesiz …[+391 chars].claude/commands/wiki-synthesize.md:First run on a fresh corpus (dummy backend):.claude/commands/wiki-synthesize.md:Re-run on unchanged tree:.claude/skills/llmwiki-query/SKILL.md:**Locate the llmwiki install** (see `llmwiki-sync` skill for the fallback search order)..claude/skills/llmwiki-sync/SKILL.md:Asks a knowledge question that would benefit from the latest sessions ("what have I been working on this week?") — run sync first, then `/wiki-query`.claude/skills/llmwiki-sync/SKILL.md:**Locate the llmwiki install.** Check the current working directory and common locations:.claude/skills/llmwiki-sync/SKILL.md:**Run the converter** (idempotent — safe to re-run):.claude/skills/llmwiki-sync/SKILL.md:python3 -m llmwiki sync.claude/skills/llmwiki-sync/SKILL.md:python3 -m llmwiki sync --project <substring> # only one project.claude/skills/llmwiki-sync/SKILL.md:python3 -m llmwiki sync --since 2026-04-01 # only recent.claude/skills/llmwiki-sync/SKILL.md:python3 -m llmwiki sync --include-current # include <60min live.claude/skills/llmwiki-sync/SKILL.md:python3 -m llmwiki sync --force # ignore state, reconvert all.claude/skills/llmwiki-sync/SKILL.md:python3 -m llmwiki sync --dry-run # preview without writing.claude/skills/llmwiki-sync/SKILL.md:If the user wants the converter to run automatically on every Claude Code session start, offer to add this to `~/.claude/settings.json`:.claude/skills/project-maintainer/SKILL.md:| Phase | The Maintainer's job in this phase | |---|---| | **0 Capture** | Verify `idea-brief.md` exists and names target users + the 10x mechanism | | **1 Validate** | Verify scorecard /25 is in `_progress.md` and ≥20 | | **1.25 Research** | Verify `.temp/` has at least 10 cloned ref …[+1141 chars].claude/skills/project-maintainer/SKILL.md:**Run stale checks:**.claude/skills/project-maintainer/SKILL.md:**Run CI gates locally** (if configured):.claude/skills/project-maintainer/SKILL.md:Link check: `python3 -m llmwiki lint-docs` (when implemented).claude/skills/self-learn/SKILL.md:Added **"no AI co-authored-by"** rule to `.kiro/steering/contributing-rules.md` after a first-run slip..claude/skills/wiki-all/SKILL.md:**lint** — run 14 quality rules, report issues.claude/skills/wiki-all/SKILL.md:Run each step in order..claude/skills/wiki-all/SKILL.md:python3 -m llmwiki init.claude/skills/wiki-all/SKILL.md:python3 -m llmwiki sync --no-auto-build --no-auto-lint.claude/skills/wiki-all/SKILL.md:python3 -m llmwiki graph.claude/skills/wiki-all/SKILL.md:python3 -c ".claude/skills/wiki-all/SKILL.md:python3 -m llmwiki build.claude/skills/wiki-all/SKILL.md:python3 -m llmwiki lint.claude/skills/wiki-all/SKILL.md:python3 -m llmwiki serve --open.claude/skills/wiki-all/SKILL.md:| Step | Result | |------|--------| | init | N dirs, M seed files | | sync | N converted, M unchanged | | graph | N nodes, M edges, K communities | | build | N HTML files, M MB | | lint | N issues (E errors, W warnings) | | serve | http://127.0.0.1:8765 |· uses the network.kiro/steering/contributing-rules.md:`git config user.name` = `Pratiyush`.kiro/steering/contributing-rules.md:`git config user.email` = `[e-mail address: https://github.com/Pratiyush/llm-wiki]`.kiro/steering/contributing-rules.md:**Run privacy grep before committing**: `grep -r "<your_username>" .` should return zero hits outside `.gitignore`d paths..kiro/steering/verification-rules.md:[ ] `python3 -m llmwiki --version` prints the version.kiro/steering/verification-rules.md:[ ] `python3 -m llmwiki adapters` lists the expected adapters.kiro/steering/verification-rules.md:[ ] All tests pass: `python3 -m pytest tests/ -q`.kiro/steering/verification-rules.md:[ ] Every internal link resolves (`python3 -m llmwiki lint-docs` or grep).kiro/steering/verification-rules.md:[ ] `setup.sh` runs clean on a fresh `git clone`· uses the network.kiro/steering/verification-rules.md:[ ] `git tag v<version>` is signed (optional for 0.x).kiro/steering/verification-rules.md:If the underlying agent schema changed (Claude Code version bump, Codex CLI release), re-run the fixture snapshot tests and update `SUPPORTED_SCHEMA_VERSIONS`.AGENTS.md:The CLI auto-detects which adapter(s) to run.AGENTS.md:Run from inside the repo:AGENTS.md:python3 -m llmwiki sync # convert new .jsonl → raw/sessions/*.mdAGENTS.md:python3 -m llmwiki build # compile site/ from raw/ + wiki/AGENTS.md:python3 -m llmwiki serve # local HTTP server on 127.0.0.1:8765AGENTS.md:python3 -m llmwiki init # scaffold raw/, wiki/, site/ directoriesCLAUDE.md:| Command | Intent | Workflow | |---|---|---| | `/wiki-sync` | Convert new `.jsonl` sessions into `raw/sessions/` AND ingest them into `wiki/` | Runs `python3 -m llmwiki sync`, then executes the Ingest Workflow below for each new file | | `/wiki-ingest <path>` | Ingest one source or fo …[+756 chars]CLAUDE.md:Use `python3 -c "from llmwiki.context_md import find_uncontexted_folders;
Install scripts (1)
setup.sh:sh setup.sh
- Medium risk: runs-instruction-instruction-network (.claude/commands/release.md:48)
- Medium risk: runs-instruction-instruction-network (.claude/commands/release.md:63)
- Medium risk: runs-instruction-instruction-network (.kiro/steering/verification-rules.md:63)
- Low risk: network-instructions (.claude/commands/wiki-all.md:7)
- Low risk: network-instructions (pyproject.toml:55)
- Low risk: scripts-present (setup.sh)
Attribution and licence
- Created by
- Pratiyush
- Declared authors
- Pratiyush (declared in .claude-plugin/plugin.json)
- Pratiyush (declared in pyproject.toml)
- Publisher
- Pratiyush Kumar Singh (Community)
- Source
- Pratiyush/llm-wiki · commit b108889
- Licence
- MIT License (files served here)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Pratiyush.
Install from source
468 of its files are not served here, so there is no ZIP. Pratiyush/llm-wiki at b108889