[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1405":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":17,"compositeScore":19,"rankGlobal":9,"rankLanguage":9,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":23,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":44,"readmeContent":45,"aiSummary":46,"trendingCount":15,"starSnapshotCount":15,"syncStatus":47,"lastSyncTime":48,"discoverSource":49},1405,"llm-wiki","Pratiyush\u002Fllm-wiki","Pratiyush","LLM-powered knowledge base from your Claude Code, Codex CLI, Copilot, Cursor & Gemini sessions. Karpathy's LLM Wiki pattern — implemented and shipped.",null,"Python",295,47,6,7,0,4,12,66,5.04,"MIT License",false,"master",true,[25,26,27,28,29,30,31,32,33,34,35,5,36,37,38,39,40,41,42,43],"ai","claude-code","cli","codex-cli","copilot","cursor","developer-tools","gemini-cli","karpathy","knowledge-base","llm","markdown","mcp","obsidian","open-source","python","session-history","static-site","wiki","2026-06-12 02:00:27","# llmwiki\n\n> **LLM-powered knowledge base from your Claude Code, Codex CLI, Cursor, Gemini CLI, and Obsidian sessions.**\n> Built on [Andrej Karpathy's LLM Wiki pattern](https:\u002F\u002Fgist.github.com\u002Fkarpathy\u002F442a6bf555914893e9891c11519de94f).\n\n## 👉 Live demo: **[pratiyush.github.io\u002Fllm-wiki](https:\u002F\u002Fpratiyush.github.io\u002Fllm-wiki\u002F)**\n\nRebuilt on every `master` push from the synthetic sessions in [`examples\u002Fdemo-sessions\u002F`](examples\u002Fdemo-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.\n\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg)](LICENSE)\n[![Python 3.9+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.9+-blue.svg)](https:\u002F\u002Fwww.python.org\u002F)\n[![Version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-v1.3.82-10B981.svg)](CHANGELOG.md)\n[![Tests](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftests-2651%20passing-10B981.svg)](tests\u002F)\n[![CI](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Factions\u002Fworkflows\u002Fci.yml)\n[![Link check](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Factions\u002Fworkflows\u002Flink-check.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Factions\u002Fworkflows\u002Flink-check.yml)\n[![Wiki checks](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Factions\u002Fworkflows\u002Fwiki-checks.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Factions\u002Fworkflows\u002Fwiki-checks.yml)\n[![Docker](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Factions\u002Fworkflows\u002Fdocker-publish.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Fpkgs\u002Fcontainer\u002Fllm-wiki)\n[![Works with Claude Code](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FClaude%20Code-✓-7C3AED.svg)](https:\u002F\u002Fclaude.com\u002Fclaude-code)\n[![Works with Codex CLI](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCodex%20CLI-✓-7C3AED.svg)](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex)\n[![Works with Copilot](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGitHub%20Copilot-✓-7C3AED.svg)](https:\u002F\u002Fgithub.com\u002Ffeatures\u002Fcopilot)\n[![Works with Cursor](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCursor-✓-7C3AED.svg)](https:\u002F\u002Fcursor.com)\n[![Works with Gemini CLI](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGemini%20CLI-✓-7C3AED.svg)](https:\u002F\u002Fai.google.dev\u002Fgemini-api)\n[![Works with Obsidian](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FObsidian-✓-7C3AED.svg)](https:\u002F\u002Fobsidian.md)\n\n---\n\nEvery 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.\n\n**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.\n\n```bash\n.\u002Fsetup.sh                         # one-time install\n.\u002Fbuild.sh && .\u002Fserve.sh           # build + serve at http:\u002F\u002F127.0.0.1:8765\n```\n\n![llmwiki — 70-second demo](docs\u002Fdemo.gif)\n\n\n**Contributing in one line:** read [`CONTRIBUTING.md`](CONTRIBUTING.md), keep PRs focused (one concern each), use `feat:` \u002F `fix:` \u002F `docs:` \u002F `chore:` \u002F `test:` commit prefixes, never commit real session data (`raw\u002F` is gitignored), no new runtime deps. CI must be green to merge.\n\n## Screenshots\n\nAll 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.\n\n### Home — projects overview with activity heatmap\n![llmwiki home page — LLM Wiki header, activity heatmap, and a grid of three demo projects (demo-blog-engine, demo-ml-pipeline, demo-todo-api)](docs\u002Fimages\u002Fhome.png)\n\n### All sessions — filterable table across every project\n![llmwiki sessions index — activity timeline above a table of eight demo sessions with project, model, date, message count, and tool-call columns](docs\u002Fimages\u002Fsessions.png)\n\n### Session detail — full conversation + tool calls\n![llmwiki session detail — Rust blog engine scaffolding session showing summary, breadcrumbs, a TOML Cargo.toml block and a Rust main.rs block, both highlighted by highlight.js](docs\u002Fimages\u002Fsession-rust.png)\n\n### Changelog — renders `CHANGELOG.md` as a first-class page\n![llmwiki changelog page — keep-a-changelog format with colored headings for Added \u002F Fixed \u002F Changed and auto-linked PR references](docs\u002Fimages\u002Fchangelog.png)\n\n### Projects index — freshness badges + per-project stats\n![llmwiki projects index — three demo project cards with green\u002Fyellow\u002Fred freshness badges showing how recently each project was touched](docs\u002Fimages\u002Fprojects.png)\n\n## What you get\n\n### Human-readable\n- **All your sessions**, converted from `.jsonl` to clean, redacted markdown\n- **A Karpathy-style wiki** — `sources\u002F`, `entities\u002F`, `concepts\u002F`, `syntheses\u002F`, `comparisons\u002F`, `questions\u002F` linked with `[[wikilinks]]`\n- **A beautiful static site** you can browse locally or deploy to GitHub Pages\n  - Global search (Cmd+K command palette with fuzzy match over pre-built index)\n  - [highlight.js](https:\u002F\u002Fhighlightjs.org\u002F) client-side syntax highlighting (light + dark themes)\n  - Dark mode (system-aware + manual toggle with `data-theme`)\n  - Keyboard shortcuts: `\u002F` search · `g h\u002Fp\u002Fs` nav · `j\u002Fk` rows · `?` help\n  - Collapsible tool-result sections (auto-expand > 500 chars)\n  - Copy-as-markdown + copy-code buttons\n  - Breadcrumbs + reading progress bar\n  - Filter bar on sessions table (project\u002Fmodel\u002Fdate\u002Ftext)\n  - Reading time estimates (`X min read`)\n  - Related pages panel at the bottom of every session\n  - Activity heatmap on the home page\n  - Model info cards with structured schema (provider, pricing, benchmarks)\n  - Auto-generated vs-comparison pages between AI models\n  - Append-only changelog timeline with pricing sparkline\n  - Project topic chips (GitHub-style tags on project cards)\n  - Agent labels (colored badges: Claude\u002FCodex\u002FCopilot\u002FCursor\u002FGemini)\n  - Recently-updated card on the home page\n  - Dataview-style structured queries in the command palette\n  - Hover-to-preview wikilinks\n  - Deep-link icons next to every heading\n  - Mobile-responsive + print-friendly\n\n### AI-consumable (v0.4)\nEvery HTML page has sibling machine-readable files at the same URL:\n\n- `\u003Cpage>.html` — human HTML with schema.org microdata\n- `\u003Cpage>.txt` — plain text version (no HTML tags)\n- `\u003Cpage>.json` — structured metadata + body\n\nSite-level AI-agent entry points:\n\n| File | What |\n|---|---|\n| [`\u002Fllms.txt`](https:\u002F\u002Fllmstxt.org) | Short index per [llmstxt.org spec](https:\u002F\u002Fllmstxt.org) |\n| `\u002Fllms-full.txt` | Flattened plain-text dump (~5 MB cap) — paste into any LLM's context |\n| `\u002Fgraph.jsonld` | Schema.org JSON-LD entity\u002Fconcept\u002Fsource graph |\n| `\u002Fsitemap.xml` | Standard sitemap with `lastmod` |\n| `\u002Frss.xml` | RSS 2.0 feed of newest sessions |\n| `\u002Frobots.txt` | AI-friendly robots with llms.txt reference |\n| `\u002Fai-readme.md` | AI-specific navigation instructions |\n| `\u002Fmanifest.json` | Build manifest with SHA-256 hashes + perf budget |\n\nEvery page also includes an `\u003C!-- llmwiki:metadata -->` HTML comment that AI agents can parse without fetching the separate `.json` sibling.\n\n#### Recipe — query `graph.jsonld` from your terminal\n\nThe 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:\n\n```bash\npython3 examples\u002Fscripts\u002Ftree_from_graph.py\n```\n\nOutput:\n\n```\n📚 8 sessions across 3 projects\n   (site\u002Fgraph.jsonld v1.3.0)\n\nllmwiki\u002F\n├── demo-blog-engine\u002F  (4 sessions)\n│   ├── 2026-03-12  scaffolding-the-rust-blog-engine\n│   ├── 2026-03-18  adding-syntax-highlighting\n│   ├── 2026-03-25  rss-feed-and-sitemap\n│   └── 2026-04-01  dark-mode-toggle\n├── demo-ml-pipeline\u002F  (2 sessions)\n│   ├── 2026-01-20  training-data-pipeline\n│   └── 2026-02-02  model-training-loop\n└── demo-todo-api\u002F  (2 sessions)\n    ├── 2026-02-08  fastapi-project-bootstrap\n    └── 2026-02-15  adding-oauth-login\n```\n\nThe full script is **stdlib-only** at [`examples\u002Fscripts\u002Ftree_from_graph.py`](examples\u002Fscripts\u002Ftree_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.\n\n### Quality & governance (v1.0)\n- **4-factor confidence scoring** — source count, source quality, recency, cross-references; with Ebbinghaus-inspired decay per content-type\n- **5-state lifecycle machine** — draft → reviewed → verified → stale → archived with 90-day auto-stale\n- **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)\n- **Auto Dream** — MEMORY.md consolidation after 24h + 5 sessions: resolve relative dates, prune outdated, 200-line cap\n- **9 navigation files** — CLAUDE.md, AGENTS.md, MEMORY.md, SOUL.md, CRITICAL_FACTS.md, hints.md, hot.md + per-project hot caches\n\n### Obsidian-native experience (v1.0)\n- **`link-obsidian` CLI** — symlinks the whole project into an Obsidian vault; graph view + backlinks + full-text search just work\n- **Dataview dashboard** — 10 ready-to-use queries (recently updated, by confidence, by lifecycle, by project, by entity type, open questions, stale pages)\n- **Templater templates** — 4 templates for source\u002Fentity\u002Fconcept\u002Fsynthesis pages, seeded with confidence + lifecycle + today's date\n- **Category pages** — tag-based index pages in both Dataview (Obsidian) and static markdown (HTML) modes\n- **Integration guide** — [`docs\u002Fobsidian-integration.md`](docs\u002Fobsidian-integration.md) covers 6 recommended plugins with per-plugin configs\n\n### Automation\n- **SessionStart hook** — auto-syncs new sessions in the background on every Claude Code launch\n- **Auto-build on sync** — `\u002Fwiki-sync` triggers `\u002Fwiki-build` (configurable; default on)\n- **One-shot pipeline** — `llmwiki all` runs build → graph → export → lint in a single command (`--strict` for CI)\n- **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)\n- **Pending ingest queue** — SessionStart hook converts + queues; `\u002Fwiki-sync` processes queue\n- **No servers, no database, no npm** — Python stdlib + `markdown`. Syntax highlighting loads from a highlight.js CDN at view time.\n\n## Tutorial — every command in 90 seconds\n\nA guided tour. Run these in order and you'll have a fully working wiki at `http:\u002F\u002F127.0.0.1:8765\u002F` by the end. Each command is idempotent and prints what it did.\n\nA scripted recording of the same flow ships at [`docs\u002Fvideos\u002Fcli-tutorial.gif`](docs\u002Fvideos\u002Fcli-tutorial.gif) (31 seconds against an 8-session sandbox). The reproducible source is [`docs\u002Fvideos\u002Fcli-tutorial.tape`](docs\u002Fvideos\u002Fcli-tutorial.tape) — re-render anytime with `vhs docs\u002Fvideos\u002Fcli-tutorial.tape`.\n\n```bash\n# 1. One-time scaffold (≈1 sec). Creates raw\u002F, wiki\u002F, site\u002F, seed nav files.\nllmwiki init\n\n# 2. Pull in your sessions (≈1 sec \u002F 100 sessions). Walks every adapter\n#    that's \"available\" on this machine (Claude Code, Codex CLI, Cursor,\n#    Gemini, Obsidian, Copilot Chat \u002F CLI), converts new .jsonl files to\n#    raw\u002Fsessions\u002F*.md, then runs build + lint by default.\nllmwiki sync\n\n# 3. Compile the static HTML site (≈3 sec on a 500-session corpus).\n#    Already runs as part of `sync`; call directly when you're iterating\n#    on a wiki\u002F page and don't need a fresh sync.\nllmwiki build\n\n# 4. Browse it locally. Cmd+K opens the search palette; \u002F focuses the\n#    filter bar on \u002Fsessions\u002F. Press Ctrl+C to stop.\nllmwiki serve\n\n# 5. (Optional) Generate the knowledge graph + AI-consumable exports.\n#    `all` runs build → graph → export → lint in one shot.\nllmwiki graph\nllmwiki export all\nllmwiki all     # one-shot equivalent of build + graph + export + lint\n```\n\nThat's the entire happy path. Two more commands you'll reach for occasionally:\n\n```bash\n# Inspect what's installed + configured. Prints a per-adapter table:\n# (available: yes\u002Fno, configured: yes\u002Fno, session-store path).\nllmwiki adapters\n\n# Lint the wiki. 16 rules — broken wikilinks, orphaned pages, stale\n# summaries, duplicate detection, freshness, missing entities, etc.\n# Runs as part of `sync` by default; call directly for a one-shot check.\nllmwiki lint\n```\n\nThree optional flags you'll discover later:\n\n- `--adapter \u003Cname>` — limit `sync` to one adapter (e.g. `--adapter claude_code`)\n- `--vault PATH` — write into an Obsidian \u002F Logseq vault overlay instead of `wiki\u002F` (#54)\n- `--synthesize` — call out to a local Claude \u002F Ollama backend during `build` for an LLM-generated overview page\n\nEach subcommand has its own `--help` with the rest. The CLI reference table below is the full list.\n\n## How it works\n\n```\n┌─────────────────────────────────────┐\n│  ~\u002F.claude\u002Fprojects\u002F*\u002F*.jsonl       │  ← Claude Code sessions\n│  ~\u002F.codex\u002Fsessions\u002F**\u002F*.jsonl       │  ← Codex CLI sessions\n│  ~\u002FLibrary\u002F...\u002FCursor\u002FworkspaceS…   │  ← Cursor\n│  ~\u002FDocuments\u002FObsidian Vault\u002F        │  ← Obsidian\n│  ~\u002F.gemini\u002F                         │  ← Gemini CLI\n└──────────────┬──────────────────────┘\n               │\n               ▼   python3 -m llmwiki sync\n┌─────────────────────────────────────┐\n│  raw\u002Fsessions\u002F\u003Cproject>\u002F            │  ← immutable markdown (Karpathy layer 1)\n│     2026-04-08-\u003Cslug>.md            │\n└──────────────┬──────────────────────┘\n               │\n               ▼   \u002Fwiki-ingest  (your coding agent)\n┌─────────────────────────────────────┐\n│  wiki\u002Fsources\u002F\u003Cslug>.md             │  ← LLM-generated wiki (Karpathy layer 2)\n│  wiki\u002Fentities\u002F\u003CName>.md            │\n│  wiki\u002Fconcepts\u002F\u003CName>.md            │\n│  wiki\u002Fsyntheses\u002F\u003CName>.md           │\n│  wiki\u002Fcomparisons\u002F\u003CName>.md         │\n│  wiki\u002Fquestions\u002F\u003CName>.md           │\n│  wiki\u002Findex.md, overview.md, log.md │\n└──────────────┬──────────────────────┘\n               │\n               ▼   python3 -m llmwiki build\n┌─────────────────────────────────────┐\n│  site\u002F                              │  ← static HTML + AI exports\n│  ├── index.html, style.css, ...     │\n│  ├── sessions\u002F\u003Cproject>\u002F\u003Cslug>.html │\n│  ├── sessions\u002F\u003Cproject>\u002F\u003Cslug>.txt  │  (AI sibling)\n│  ├── sessions\u002F\u003Cproject>\u002F\u003Cslug>.json │  (AI sibling)\n│  ├── llms.txt, llms-full.txt        │\n│  ├── graph.jsonld                   │\n│  ├── sitemap.xml, rss.xml           │\n│  ├── robots.txt, ai-readme.md       │\n│  ├── manifest.json                  │\n│  └── search-index.json              │\n└─────────────────────────────────────┘\n```\n\nSee [docs\u002Farchitecture.md](docs\u002Farchitecture.md) for the full 3-layer Karpathy + 8-layer build breakdown.\n\n## Documentation\n\nFull production documentation lives under [`docs\u002F`](docs\u002F). The editorial\nhub is **[`docs\u002Findex.md`](docs\u002Findex.md)** — tutorials, per-agent guides,\nreference, and deployment, all in one place.\n\n**Start here:**\n\n| Goal | Read |\n|---|---|\n| Install and build your first site in 10 minutes | [Tutorial 01 → 02](docs\u002Ftutorials\u002F01-installation.md) |\n| Use llmwiki with Claude Code | [Tutorial 03](docs\u002Ftutorials\u002F03-use-with-claude-code.md) |\n| Use llmwiki with Codex CLI | [Tutorial 04](docs\u002Ftutorials\u002F04-use-with-codex-cli.md) |\n| Query \u002F lint \u002F review your wiki daily | [Tutorial 05](docs\u002Ftutorials\u002F05-querying-your-wiki.md) |\n| Point llmwiki at an existing Obsidian \u002F Logseq vault | [Tutorial 06](docs\u002Ftutorials\u002F06-bring-your-obsidian-vault.md) |\n| See four real end-to-end workflows | [Tutorial 07](docs\u002Ftutorials\u002F07-example-workflows.md) |\n\nContributing to docs? See the **[style guide](docs\u002Fstyle-guide.md)**.\n\n## Install\n\n### macOS \u002F Linux\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki.git\ncd llm-wiki\n.\u002Fsetup.sh\n```\n\n### Windows\n\n```cmd\ngit clone https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki.git\ncd llm-wiki\nsetup.bat\n```\n\n### With pip (v0.3+)\n\n```bash\npip install -e .                # basic — everything you need\npip install -e '.[graph]'       # + graphifyy AI-powered graph engine\npip install -e '.[dev]'         # + pytest + ruff\npip install -e '.[e2e]'         # + Playwright + pytest-bdd + pytest-html (E2E)\npip install -e '.[all]'         # graph + everything\n```\n\nSyntax highlighting is now powered by [highlight.js](https:\u002F\u002Fhighlightjs.org\u002F), loaded from a CDN at view time — no optional deps required.\n\n### What setup does\n\n1. Creates `raw\u002F`, `wiki\u002F`, `site\u002F` data directories\n2. Installs the `llmwiki` Python package in-place\n3. Detects your coding agents and enables matching adapters\n4. Optionally offers to install the `SessionStart` hook into `~\u002F.claude\u002Fsettings.json` for auto-sync\n5. Runs a first sync so you see output immediately\n\n## For maintainers\n\nRunning the project? The governance scaffold lives under [`docs\u002Fmaintainers\u002F`](docs\u002Fmaintainers) and is loaded by a dedicated skill:\n\n| File | What it's for |\n|---|---|\n| [`CONTRIBUTING.md`](CONTRIBUTING.md) | Short rules for contributors — read this first |\n| [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) | Contributor Covenant 2.1 |\n| [`SECURITY.md`](SECURITY.md) | Disclosure process for redaction bugs, XSS, data leaks |\n| [`docs\u002Fmaintainers\u002FARCHITECTURE.md`](docs\u002Fmaintainers\u002FARCHITECTURE.md) | One-page system diagram + layer boundaries + what NOT to add |\n| [`docs\u002Fmaintainers\u002FREVIEW_CHECKLIST.md`](docs\u002Fmaintainers\u002FREVIEW_CHECKLIST.md) | Canonical code-review criteria |\n| [`docs\u002Fmaintainers\u002FRELEASE_PROCESS.md`](docs\u002Fmaintainers\u002FRELEASE_PROCESS.md) | Version bump → CHANGELOG → tag → build → publish |\n| [`docs\u002Fmaintainers\u002FTRIAGE.md`](docs\u002Fmaintainers\u002FTRIAGE.md) | Label taxonomy + stale-issue policy |\n| [`docs\u002Fmaintainers\u002FROADMAP.md`](docs\u002Fmaintainers\u002FROADMAP.md) | Near-term plan + release themes |\n| [`docs\u002Fmaintainers\u002FDECLINED.md`](docs\u002Fmaintainers\u002FDECLINED.md) | Graveyard of declined ideas with reasons |\n\nFour Claude Code slash commands automate the common ops:\n\n- `\u002Freview-pr \u003CN>` — apply the REVIEW_CHECKLIST to a PR and post findings\n- `\u002Ftriage-issue \u003CN>` — label + milestone + priority a new issue\n- `\u002Frelease \u003Cversion>` — walk the release process step by step\n- `\u002Fmaintainer` — meta-skill that loads every governance doc as context\n\n## Running E2E tests\n\nThe unit suite (`pytest tests\u002F` — 2,651 tests) runs in seconds and\ncovers every module. The **end-to-end suite** under `tests\u002Fe2e\u002F` is\nseparate: it builds a minimal demo site, serves it on a random port,\ndrives a real browser via [Playwright](https:\u002F\u002Fplaywright.dev\u002Fpython),\nand runs scenarios written in [Gherkin](https:\u002F\u002Fcucumber.io\u002Fdocs\u002Fgherkin\u002F)\nvia [pytest-bdd](https:\u002F\u002Fpytest-bdd.readthedocs.io\u002F).\n\nWhy both? Unit tests lock the contract at the module boundary;\nE2E locks the contract at the **user's browser**. A diff that passes\nunit tests but breaks the Cmd+K palette will fail E2E.\n\nInstall the extras (one-time, several hundred MB for the Chromium binary):\n\n```bash\npip install -e '.[e2e]'\npython -m playwright install chromium\n```\n\nRun the suite:\n\n```bash\npytest tests\u002Fe2e\u002F --browser=chromium\n```\n\nRun a single feature:\n\n```bash\npytest tests\u002Fe2e\u002Ftest_command_palette.py --browser=chromium -v\n```\n\nThe E2E suite is **excluded from the default `pytest tests\u002F` run**\n(see the `--ignore=tests\u002Fe2e` addopt in `pyproject.toml`) so you\ncan iterate on the unit suite without waiting for browser installs.\nCI runs the E2E job as a separate workflow (`.github\u002Fworkflows\u002Fe2e.yml`)\nthat only fires on PRs touching `build.py`, the viz modules, or\n`tests\u002Fe2e\u002F**`.\n\nFeature files live under `tests\u002Fe2e\u002Ffeatures\u002F` — one per UI area\n(homepage, session page, command palette, keyboard nav, mobile nav,\ntheme toggle, copy-as-markdown, **responsive breakpoints**, **edge\ncases**, **accessibility**, **visual regression**). Step definitions\nare all in `tests\u002Fe2e\u002Fsteps\u002Fui_steps.py`. Adding a new scenario is\nusually a 2-line change to a `.feature` file plus maybe one new step.\n\nRun locally with an HTML report:\n\n```bash\npytest tests\u002Fe2e\u002F --browser=chromium \\\n  --html=e2e-report\u002Findex.html --self-contained-html\nopen e2e-report\u002Findex.html     # macOS — opens the browseable report\n```\n\n**Where to see test reports:**\n\n| What | Where |\n|---|---|\n| Unit test results | GitHub Actions → `ci.yml` → latest run → `lint-and-test` job logs |\n| E2E HTML report | GitHub Actions → `e2e.yml` → latest run → Artifacts → `e2e-html-report` (14-day retention) |\n| Visual regression screenshots | Same run → Artifacts → `e2e-screenshots` |\n| Playwright traces (failed runs only) | Same run → Artifacts → `playwright-traces` (open with `playwright show-trace \u003Czip>`) |\n| Demo site deploy status | GitHub Actions → `pages.yml` → latest run |\n\nLocally, the HTML report is one file (`e2e-report\u002Findex.html`) that\nyou can open in any browser — pass\u002Ffail per scenario, duration,\nstdout\u002Fstderr, screenshot on failure.\n\n## Scheduled sync\n\nFor a daily \u002F 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\u002Fsessions_config.json`.\n\n## CLI reference\n\n```bash\nllmwiki init                    # scaffold raw\u002F wiki\u002F site\u002F + seed nav files\nllmwiki sync                    # convert .jsonl → markdown (auto-build + auto-lint if configured)\nllmwiki build                   # compile static HTML + AI exports\nllmwiki serve                   # local HTTP server on 127.0.0.1:8765\nllmwiki adapters                # list available adapters + configured state (v1.0)\nllmwiki graph                   # build knowledge graph (v0.2)\nllmwiki lint                    # 16-rule wiki lint (v1.2)\nllmwiki export \u003Cformat>         # AI-consumable exports (v0.4)\nllmwiki synthesize              # auto-ingest synthesis pipeline (v0.5)\nllmwiki all                     # build → graph → export → lint in one shot (v1.2)\nllmwiki version\n```\n\nEach subcommand has its own `--help`. All commands are also wrapped in one-click shell\u002Fbatch scripts: `sync.sh`\u002F`.bat`, `build.sh`\u002F`.bat`, `serve.sh`\u002F`.bat`, `upgrade.sh`\u002F`.bat`.\n\n## Works with\n\n| Agent | Adapter | Status | Added in |\n|---|---|---|---|\n| [Claude Code](https:\u002F\u002Fclaude.com\u002Fclaude-code) | `llmwiki.adapters.claude_code` | ✅ Production | v0.1 |\n| [Obsidian](https:\u002F\u002Fobsidian.md) (input) | `llmwiki.adapters.obsidian` | ✅ Production | v0.1 |\n| [Obsidian](https:\u002F\u002Fobsidian.md) (output) | `llmwiki.obsidian_output` | ✅ Production | v0.2 |\n| [Codex CLI](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex) | `llmwiki.adapters.codex_cli` | ✅ Production | v0.3 |\n| [Cursor](https:\u002F\u002Fcursor.com) | `llmwiki.adapters.cursor` | 🧪 Beta — needs verification against current Cursor session format | v0.5 |\n| [Gemini CLI](https:\u002F\u002Fai.google.dev\u002Fgemini-api) | `llmwiki.adapters.gemini_cli` | 🧪 Beta — layout TBC | v0.5 |\n| [Copilot Chat](https:\u002F\u002Fgithub.com\u002Ffeatures\u002Fcopilot) | `llmwiki.adapters.copilot_chat` | 🧪 Beta | v0.9 |\n| [Copilot CLI](https:\u002F\u002Fgithub.com\u002Ffeatures\u002Fcopilot) | `llmwiki.adapters.copilot_cli` | 🧪 Beta | v0.9 |\n| OpenCode \u002F OpenClaw | — | ⏸ Deferred | — |\n\nAdding a new agent is [one small file](docs\u002Fframework.md) — subclass `BaseAdapter`, declare `SUPPORTED_SCHEMA_VERSIONS`, ship a fixture + snapshot test.\n\n## MCP server\n\nllmwiki ships its own MCP server (stdio transport, no SDK dependency) so any MCP client can query your wiki directly.\n\n```bash\npython3 -m llmwiki.mcp   # runs on stdin\u002Fstdout\n```\n\nTwelve production tools (7 core + 5 added in v1.0 `#159`):\n\n| Tool | What |\n|---|---|\n| `wiki_query(question, max_pages)` | Keyword search + page content (no LLM synthesis) |\n| `wiki_search(term, include_raw)` | Raw grep over wiki\u002F (+ optional raw\u002F) |\n| `wiki_list_sources(project)` | List raw source files with metadata |\n| `wiki_read_page(path)` | Read one page (path-traversal guarded) |\n| `wiki_lint()` | Orphans + broken-wikilinks report |\n| `wiki_sync(dry_run)` | Trigger the converter |\n| `wiki_export(format)` | Return any AI-consumable export (llms.txt, jsonld, sitemap, rss, manifest) |\n| `wiki_confidence(min, max)` | Pages by confidence range (v1.0) |\n| `wiki_lifecycle(state)` | Pages by draft\u002Freviewed\u002Fverified\u002Fstale\u002Farchived (v1.0) |\n| `wiki_dashboard()` | Health summary: counts by type, lifecycle, confidence (v1.0) |\n| `wiki_entity_search(name, entity_type)` | Search entities by name substring or type (v1.0) |\n| `wiki_category_browse(tag)` | Browse tags with counts, drill into specific tag (v1.0) |\n\nRegister in your MCP client's config — e.g. for Claude Desktop, add to `~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"llmwiki\": {\n      \"command\": \"python3\",\n      \"args\": [\"-m\", \"llmwiki.mcp\"]\n    }\n  }\n}\n```\n\n## Configuration\n\nSingle JSON config at `examples\u002Fsessions_config.json`. Copy to `config.json` and edit:\n\n```json\n{\n  \"filters\": {\n    \"live_session_minutes\": 60,\n    \"exclude_projects\": []\n  },\n  \"redaction\": {\n    \"real_username\": \"YOUR_USERNAME\",\n    \"replacement_username\": \"USER\",\n    \"extra_patterns\": [\n      \"(?i)(api[_-]?key|secret|token|bearer|password)...\",\n      \"sk-[A-Za-z0-9]{20,}\"\n    ]\n  },\n  \"truncation\": {\n    \"tool_result_chars\": 500,\n    \"bash_stdout_lines\": 5\n  },\n  \"adapters\": {\n    \"obsidian\": {\n      \"vault_paths\": [\"~\u002FDocuments\u002FObsidian Vault\"]\n    }\n  }\n}\n```\n\nAll paths, regexes, truncation limits, and per-adapter settings are tunable. See [docs\u002Fconfiguration.md](docs\u002Fconfiguration.md).\n\n## `.llmwikiignore`\n\nGitignore-style pattern file at the repo root. Skip entire projects, dates, or specific sessions without touching config:\n\n```\n# Skip a whole project\nconfidential-client\u002F\n# Skip anything before a date\n*2025-*\n# Keep exception\n!confidential-client\u002Fpublic-*\n```\n\n## Karpathy's LLM Wiki pattern\n\nThis project follows the three-layer structure described in [Karpathy's gist](https:\u002F\u002Fgist.github.com\u002Fkarpathy\u002F442a6bf555914893e9891c11519de94f):\n\n1. **Raw sources** (`raw\u002F`) — immutable. Session transcripts converted from `.jsonl`.\n2. **The wiki** (`wiki\u002F`) — LLM-generated. One page per entity, concept, source. Interlinked via `[[wikilinks]]`.\n3. **The schema** (`CLAUDE.md`, `AGENTS.md`) — tells your agent how to ingest and query.\n\nSee [docs\u002Farchitecture.md](docs\u002Farchitecture.md) for the full breakdown and how it maps to the file tree.\n\n## Design principles\n\n- **Stdlib first** — only mandatory runtime dep is `markdown`. Optional extras (`graph`, `dev`, `e2e`) layer in graph engines, lint\u002Ftest tooling, and Playwright on top.\n- **Works offline** — no Google fonts, no external CSS. Syntax highlighting loads from a highlight.js CDN but degrades gracefully without it.\n- **Redact by default** — username, API keys, tokens, emails all get redacted before entering the wiki.\n- **Idempotent everything** — re-running any command is safe and cheap.\n- **Agent-agnostic core** — the converter doesn't know which agent produced the `.jsonl`; adapters translate.\n- **Privacy by default** — localhost-only binding, no telemetry, no cloud calls.\n- **Dual-format output (v0.4)** — every page ships both for humans (HTML) and AI agents (TXT + JSON + JSON-LD + sitemap + llms.txt).\n\n## Docs\n\n- [Getting started](docs\u002Fgetting-started.md) — 5-minute quickstart\n- **[Setup guide](docs\u002Ftutorials\u002Fsetup-guide.md)** — 15-minute end-to-end tutorial: local setup → deploy to GitHub Pages → customization (v1.0)\n- [Obsidian integration](docs\u002Fobsidian-integration.md) — 5-minute setup, 6 recommended plugins, config recipes (v1.0)\n- [Architecture](docs\u002Farchitecture.md) — Karpathy 3-layer + 8-layer build breakdown\n- [Configuration](docs\u002Fconfiguration.md) — every tuning knob\n- [Privacy](docs\u002Fprivacy.md) — redaction rules + `.llmwikiignore` + localhost binding\n- [Windows setup](docs\u002Fwindows-setup.md) — Windows-specific gotchas\n- [Framework](docs\u002Fframework.md) — Open Source Framework v4.1 adapted for agent-native dev tools\n- [Research](docs\u002Fresearch.md) — Phase 1.25 analysis of 15 prior LLM Wiki implementations\n- [Feature matrix](docs\u002Ffeature-matrix.md) — all 161 features across 16 categories\n- [Roadmap](docs\u002Froadmap.md) — Phase × Layer × Item MoSCoW table\n- **Translations**: [i18n\u002Fzh-CN](docs\u002Fi18n\u002Fzh-CN\u002F), [i18n\u002Fja](docs\u002Fi18n\u002Fja\u002F), [i18n\u002Fes](docs\u002Fi18n\u002Fes\u002F)\n\nPer-adapter docs:\n- [Claude Code adapter](docs\u002Fadapters\u002Fclaude-code.md)\n- [Codex CLI adapter](docs\u002Fadapters\u002Fcodex-cli.md)\n- [Cursor adapter](docs\u002Fadapters\u002Fcursor.md)\n- [Gemini CLI adapter](docs\u002Fadapters\u002Fgemini-cli.md)\n- [Obsidian adapter](docs\u002Fadapters\u002Fobsidian.md)\n- [Copilot adapter (Chat + CLI)](docs\u002Fadapters\u002Fcopilot.md)\n\n## Releases\n\n| Version | Focus | Tag |\n|---|---|---|\n| [v0.1.0](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv0.1.0) | Core release — Claude Code adapter, god-level HTML UI, schema, CI, plugin scaffolding | `v0.1.0` |\n| [v0.2.0](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv0.2.0) | Extensions — 3 new slash commands, 3 new adapters, Obsidian bidirectional, full MCP server | `v0.2.0` |\n| [v0.3.0](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv0.3.0) | PyPI packaging, eval framework, i18n scaffold | `v0.3.0` |\n| [v0.4.0](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv0.4.0) | AI + human dual format — per-page .txt\u002F.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` |\n| 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. | — |\n| [v0.9.1](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv0.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\u002F naming, pending ingest queue, `_context.md` stubs, meeting + Jira adapters, configurable Web Clipper intake, rich log format | `v0.9.1` |\n| [v0.9.2](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv0.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` |\n| [v0.9.3](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv0.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` |\n| [v0.9.4](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv0.9.4) | Session C1 (Sprint 4) — multi-agent skill installer, enhanced search with facets, configurable scheduled sync (launchd\u002Fsystemd\u002FTask Scheduler), CI wiki-checks workflow | `v0.9.4` |\n| [v0.9.5](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv0.9.5) | Docs polish + consistency audit before v1.0.0 | `v0.9.5` |\n| [v1.0.0](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv1.0.0) | Production-ready Obsidian integration — full v1.0 scope | `v1.0.0` |\n| [v1.1.0-rc1](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv1.1.0-rc1) | Solo quick-win sprint — candidates workflow, Ollama scaffold, prompt-cache scaffold | `v1.1.0-rc1` |\n| [v1.1.0-rc2](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv1.1.0-rc2) | Session E — interactive graph viewer + remaining code-only v1.1 work | `v1.1.0-rc2` |\n| [v1.1.0-rc3](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv1.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` |\n| [v1.1.0-rc4](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv1.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` |\n| [v1.1.0-rc5](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv1.1.0-rc5) | Site audit + 5 closed batches — session-local ref stripping (351 → 247 broken), cheatsheet, README\u002FCONTRIBUTING compile, expanded E2E, slash-CLI parity test, 4 adapter docs, Ollama tutorial, dual-mode docs skeleton, `\u002Fwiki-synthesize` slash | `v1.1.0-rc5` |\n| [v1.1.0-rc6](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv1.1.0-rc6) | rc6 batch — fixed adapter tag hardcoded to `claude-code` for every adapter (#346), tutorial UX polish with in-page TOC + prev\u002Fnext + 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` |\n| [v1.1.0-rc7](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv1.1.0-rc7) | rc7 batch — automatic AI-suggested tags during synthesis (#351), link-checker config fix (#348, #350, #353) | `v1.1.0-rc7` |\n| [v1.1.0-rc8](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv1.1.0-rc8) | rc8 batch — complete Mode B agent-delegate backend (#316): new `llmwiki synthesize --list-pending` + `--complete \u003Cuuid>` CLI subcommands, `\u002Fwiki-sync` step 6 auto-detects pending prompts, Mode B ships end-to-end without an API key | `v1.1.0-rc8` |\n| [**v1.2.0**](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Freleases\u002Ftag\u002Fv1.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` |\n\n## Roadmap\n\nShipped milestones:\n\n- **v0.5.0** — Folder-level `_context.md`, auto-ingest, adapter graduations, lazy search index, scheduled sync, WCAG, E2E tests ([milestone](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Fmilestone\u002F4))\n- **v0.6.0** — qmd export, GitLab Pages CI, PyPI release automation, maintainer governance scaffold ([milestone](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Fmilestone\u002F5))\n- **v0.7.0** — Structured model-profile schema, vs-comparison pages, append-only changelog timeline ([milestone](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Fmilestone\u002F7))\n- **v0.8.0** — 365-day activity heatmap, tool-calling bar chart, token usage card, session metrics frontmatter ([milestone](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Fmilestone\u002F8))\n- **v0.9.0** — Project topics, agent labels, Copilot adapters, image pipeline, highlight.js, public demo deployment\n- **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\n\nActive milestones:\n\n| Milestone | Focus | Tracking |\n|---|---|---|\n| **v1.0.0** | Final docs polish + PyPI trusted publisher + release | [Milestone](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Fmilestone\u002F9) |\n| **v1.1.0** | Ollama backend, prompt caching, interactive graph viewer, Homebrew tap | [Milestone](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Fmilestone\u002F10) |\n| **v1.2.0** | ChatGPT + OpenCode adapters, vault-overlay mode, tree-aware search, cache tiers | [Milestone](https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fllm-wiki\u002Fmilestone\u002F11) |\n\n### Deployment targets\n\n- **GitHub Pages** — shipped in v0.1 via `.github\u002Fworkflows\u002Fpages.yml` (triggers on push to master). See [`docs\u002Fdeploy\u002Fgithub-pages.md`](docs\u002Fdeploy\u002Fgithub-pages.md).\n- **Docker \u002F GHCR** — pull and run: `docker compose pull && docker compose up -d`. Image published to `ghcr.io\u002Fpratiyush\u002Fllm-wiki` on every tag push. See [`docs\u002Fdeploy\u002Fdocker.md`](docs\u002Fdeploy\u002Fdocker.md).\n- **GitLab Pages** — copy [`.gitlab-ci.yml.example`](.gitlab-ci.yml.example) → `.gitlab-ci.yml`. See [`docs\u002Fdeploy\u002Fgitlab-pages.md`](docs\u002Fdeploy\u002Fgitlab-pages.md).\n- **Vercel \u002F Netlify** — static deploy after `llmwiki build`. See [`docs\u002Fdeploy\u002Fvercel-netlify.md`](docs\u002Fdeploy\u002Fvercel-netlify.md).\n- **Any static host** — `llmwiki build` writes to `site\u002F`, which you can `rsync`\u002F`scp` anywhere.\n\n## Acknowledgements\n\n- [Andrej Karpathy](https:\u002F\u002Ftwitter.com\u002Fkarpathy) for [the LLM Wiki idea](https:\u002F\u002Fgist.github.com\u002Fkarpathy\u002F442a6bf555914893e9891c11519de94f)\n- [SamurAIGPT\u002Fllm-wiki-agent](https:\u002F\u002Fgithub.com\u002FSamurAIGPT\u002Fllm-wiki-agent), [lucasastorian\u002Fllmwiki](https:\u002F\u002Fgithub.com\u002Flucasastorian\u002Fllmwiki), [xoai\u002Fsage-wiki](https:\u002F\u002Fgithub.com\u002Fxoai\u002Fsage-wiki), and [bashiraziz\u002Fllm-wiki-template](https:\u002F\u002Fgithub.com\u002Fbashiraziz\u002Fllm-wiki-template) — prior art that shaped this.\n- [Python Markdown](https:\u002F\u002Fpython-markdown.github.io\u002F) for the rendering pipeline, and [highlight.js](https:\u002F\u002Fhighlightjs.org\u002F) for client-side syntax highlighting.\n- [llmstxt.org](https:\u002F\u002Fllmstxt.org) for the llms.txt spec used in v0.4.\n\n## License\n\n[MIT](LICENSE) © Pratiyush\n","llmwiki 是一个基于大型语言模型（LLM）的知识库，能够从你的 Claude Code、Codex CLI、Copilot、Cursor 和 Gemini 会话中生成可搜索和互链的知识库。其核心功能包括将这些工具的会话记录转化为结构化的知识，并提供活动热图、工具图表、令牌使用情况、模型信息卡片等功能。该项目使用 Python 编写，遵循 MIT 许可证，支持 Docker 部署。它适合开发者或团队希望从日常使用的 AI 工具中提取并组织知识，以便于后续查询和利用。通过简单的命令行操作即可在本地构建和运行知识库，同时也支持导出为多种格式供其他 AI 系统直接查询。",2,"2026-06-11 02:43:33","CREATED_QUERY"]