LLM Wiki
lewislulu/llm-wiki-skill
Build and maintain a Karpathy-style LLM knowledge base — a self-compiling Obsidian markdown wiki where an Agent ingests raw sources, compiles cross-linked concept/entity/summary pages, answers…
Build and maintain an LLM-curated knowledge base from papers, articles, transcripts, notes and project findings.
$ npx skills add praneybehl/llm-wiki-plugin --skill llm-wiki -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install praneybehl/llm-wiki-plugin llm-wiki --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/praneybehl/llm-wiki-plugin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/llm-wiki .claude/skills/llm-wiki && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "llm-wiki" agent skill from https://github.com/praneybehl/llm-wiki-plugin/tree/main/skills/llm-wiki into .claude/skills/llm-wiki/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-wiki", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/praneybehl/llm-wiki-plugin/tree/main/skills/llm-wikiType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add praneybehl/llm-wiki-plugin --skill llm-wiki -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install praneybehl/llm-wiki-plugin llm-wiki --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/praneybehl/llm-wiki-plugin.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/llm-wiki .agents/skills/llm-wiki && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "llm-wiki" agent skill from https://github.com/praneybehl/llm-wiki-plugin/tree/main/skills/llm-wiki into .agents/skills/llm-wiki/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-wiki", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add praneybehl/llm-wiki-plugin --skill llm-wiki -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install praneybehl/llm-wiki-plugin llm-wiki --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/praneybehl/llm-wiki-plugin.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/llm-wiki .cursor/skills/llm-wiki && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "llm-wiki" agent skill from https://github.com/praneybehl/llm-wiki-plugin/tree/main/skills/llm-wiki into .cursor/skills/llm-wiki/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-wiki", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/praneybehl/llm-wiki-plugin.git --path skills/llm-wiki--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add praneybehl/llm-wiki-plugin --skill llm-wiki -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install praneybehl/llm-wiki-plugin llm-wiki --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/praneybehl/llm-wiki-plugin.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/llm-wiki .gemini/skills/llm-wiki && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "llm-wiki" agent skill from https://github.com/praneybehl/llm-wiki-plugin/tree/main/skills/llm-wiki into .gemini/skills/llm-wiki/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-wiki", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install praneybehl/llm-wiki-plugin llm-wikiInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add praneybehl/llm-wiki-plugin --skill llm-wiki -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/praneybehl/llm-wiki-plugin.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/llm-wiki .github/skills/llm-wiki && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "llm-wiki" agent skill from https://github.com/praneybehl/llm-wiki-plugin/tree/main/skills/llm-wiki into .github/skills/llm-wiki/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-wiki", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add praneybehl/llm-wiki-plugin --skill llm-wiki -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install praneybehl/llm-wiki-plugin llm-wiki --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/praneybehl/llm-wiki-plugin.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/llm-wiki .opencode/skills/llm-wiki && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "llm-wiki" agent skill from https://github.com/praneybehl/llm-wiki-plugin/tree/main/skills/llm-wiki into .opencode/skills/llm-wiki/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-wiki", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
llm-wikiBuild and maintain an LLM-curated knowledge base from papers, articles, transcripts, notes and project findings.
LLM Wiki is an agent skill from praneybehl/llm-wiki-plugin. Build and maintain an LLM-curated knowledge base from papers, articles, transcripts, notes and project findings. Ingest sources into linked Markdown, answer questions with citations, lint or upgrade a wiki, and preserve useful synthesis across sessions and agents. Also capture verified task experience, consolidate success/failure patterns, and propose, evaluate, apply or roll back evidence-linked skill improvements. Trigger on "add this to my wiki", "what does the wiki say", "learn from this task", "improve this…
Its SKILL.md is about 5.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 39 other files, including scripts, reference files and assets (for example `references/agent-memory-integration.md`, `references/architecture.md` and `references/evolution-workflow.md`).
It sits in Knowledge Management, covering LLM wikis, Retrieval-augmented generation and Knowledge bases. It works with Obsidian. The repository describes itself as: Andrej Karpathy's LLM Wiki pattern as a skill & Claude Code plugin — turn accumulated sources into a self-maintaining, scalable markdown knowledge base. The licence is MIT.
Read from SKILL.md and the folder at commit 32014c8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/, which the agent can run.
Shell commands in SKILL.md call:
pythonuvFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
LLM Wiki loads about 5.7k tokens when it runs, and up to ~27k if it reads all its reference files. Until then it costs about 158 tokens; SKILL.md has 2,861 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from praneybehl/llm-wiki-plugin at commit 32014c8, republished under its MIT licence (© praneybehl). 2,861 words, ~5,673 tokens.
.claude/skills/llm-wiki/SKILL.md (or your agent's skills folder). This skill also uses 37 other files; get the full folder from GitHub.A skill for building and maintaining an LLM-curated knowledge base at any user-chosen filesystem location, following the pattern Andrej Karpathy described in his April 2026 gist. One personal wiki can compound knowledge across projects, or a wiki can be isolated inside one project. The user curates sources and asks questions; the LLM does the bookkeeping.
Conventional RAG re-derives knowledge from raw chunks on every query; nothing accumulates. The LLM Wiki pattern flips this: when a new source arrives, the LLM compiles it once into a persistent, structured wiki — extracting concepts, writing entity pages, updating cross-references, flagging contradictions. Subsequent queries read the pre-synthesized wiki rather than the raw sources. Knowledge compounds. The user is in charge of sourcing and asking good questions; the LLM handles the summarizing, linking, and consistency work that humans abandon wikis over.
The trigger surface is broad. Any time the user is accumulating textual material over time — research papers, articles, transcripts, meeting notes, book chapters, customer calls, code repos, journal entries — and would benefit from having that material organized rather than dumped into a chat each session, this skill applies. It is equally useful for one source ("ingest this paper") and for the steady-state operations against an existing wiki ("what does my wiki say about diffusion models", "lint the wiki", "what's missing").
Resolve the wiki before doing anything else. Prefer, in order: a path named by the user, a path in the nearest project instructions, a path in global agent instructions, then wiki/ in the current project. Read the resolved wiki's SCHEMA.md; it may override defaults documented here. Never silently combine two wikis. If no wiki exists, run the bootstrap step below.
All relative wiki/ and raw/ paths in this skill refer to the resolved wiki and raw-source roots, not necessarily the current working directory.
The wiki has three layers and three operations. Internalize this vocabulary because the rest of the skill assumes it.
The three layers are raw sources (the user's curated source material — articles, papers, PDFs, transcripts; immutable, the LLM reads but never modifies them), the wiki (a directory of LLM-generated markdown pages — entity pages, concept pages, comparisons, summaries; the LLM owns this layer entirely), and the schema (a SCHEMA.md file at the wiki root that documents the conventions for this particular wiki — page types, naming rules, tag taxonomy, ingest workflow customizations; co-evolved with the user).
The three operations are ingest (a new source arrives; the LLM reads it, writes a summary page, updates relevant entity and concept pages, appends to the log), query (the user asks a question; the LLM navigates the wiki via the index, reads the relevant pages, and synthesizes an answer — often filing the answer back as a new page so the exploration compounds), and lint (a periodic health check; the LLM scans for contradictions, stale claims, orphan pages, missing concepts, broken links).
For the canonical write-up of these operations, read references/architecture.md. For the step-by-step procedures, read references/ingest-workflow.md, references/query-workflow.md, and references/lint-workflow.md as needed.
Pages can carry typed graph: metadata in frontmatter. A bundled extractor compiles every page into wiki/graph/: nodes.jsonl, edges.jsonl, graph.sqlite, graph.graphml. Markdown is canonical; the graph is a regenerable index. Pages without graph: still appear as nodes (derived from their type/kind) and contribute low-confidence mentions edges from body wikilinks. Typed semantic edges (e.g. founded, proposed, depends_on) require an explicit source and evidence quote — never emit one inferred from training data.
The conventions for the graph layer (predicate vocabulary, node id format, required fields) live in wiki/graph/ontology.yaml. The full reference is references/graph-workflow.md. Run the bundled scripts after substantive ingests:
uv run --script scripts/wiki_graph_lint.py wiki/ # check ontology + evidence + alias collisions
uv run --script scripts/wiki_graph_extract.py wiki/ # rebuild nodes.jsonl, edges.jsonl, graph.sqlite, graph.graphml
python scripts/wiki_graph_query.py wiki/ neighbors --node product:konvyIf wiki/graph/ontology.yaml does not exist, the wiki is pre-graph and you should treat the graph step as a no-op — don't fabricate it.
Wiki storage scope is independent of skill installation scope. Installing the skill globally only makes it available across projects; it does not create or select a global wiki.
Use one of two layouts:
~/wiki/, with raw sources at ~/wiki/raw/. Point the agent's global instructions to that user-level path. This lets work from any project be deliberately ingested into one compounding knowledge base.wiki/ and raw/ live in the project and are referenced by that project's agent-memory file. Use this when knowledge needs repository-level isolation or versioning.A global wiki does not crawl or ingest projects automatically. Add project sources and durable findings when the user requests ingestion or their global instructions require those findings to be preserved.
The project-local default is:
<project-root>/
├── wiki/
│ ├── SCHEMA.md ← conventions, the "config file" — read this FIRST
│ ├── index.md ← entry point: catalog of all pages with one-line summaries
│ ├── log.md ← append-only chronological log of ingests/queries/lints
│ ├── indexes/ ← (appears once index.md shards) per-category indexes
│ ├── entities/ ← pages about specific things (people, products, papers, places)
│ ├── concepts/ ← pages about ideas, methods, frameworks
│ ├── sources/ ← per-source summary pages (one per ingested source)
│ └── synthesis/ ← cross-cutting analyses, comparisons, query results filed back
├── raw/ ← the user's source material (PDFs, .md clippings, images)
│ └── assets/ ← downloaded images referenced by raw clippings
└── ...This layout is a default, not a requirement. A global wiki can put raw/ inside the wiki root, and either scope can use another name such as kb/, notes/, or vault/. Follow SCHEMA.md.
The single biggest failure mode of the LLM Wiki pattern is the wiki itself becoming a context bottleneck. Naive implementations break around a few hundred pages: the LLM either reads too many pages per query or starts hallucinating because it skipped the relevant ones. This skill's design is shaped almost entirely by avoiding that failure. The principles below are non-negotiable; ignoring them is what makes the pattern collapse at scale.
Atomic pages. Every wiki page is about one concept and stays small — soft cap 400 lines or roughly 2,000 words, hard cap 800 lines. When a page outgrows this, split it: extract sub-concepts into their own pages and have the parent link to them. A page that takes up 30% of the context window on its own is a design smell.
Index-first navigation. Never grep or glob the wiki blindly when answering a query. Always read index.md (or the relevant sharded index under indexes/) first to identify candidate pages, then drill into only those. The index is engineered to be cheap to read — one line per page, no bodies — and it is the cache that makes the whole pattern scalable.
Sharded indexes. When index.md itself exceeds ~300 lines or the wiki passes ~150 pages, shard it: move category-specific entries into indexes/<category>.md files (e.g. indexes/entities.md, indexes/concepts.md, indexes/sources.md, or finer domain shards), and have the top-level index.md become a directory of those shards. Now reading the index is a two-step lookup but each step is bounded.
YAML frontmatter on every page. Every wiki page begins with frontmatter that includes at minimum type, tags, sources, and updated. The bundled wiki_search.py script can filter on these without reading page bodies. See references/page-conventions.md.
Surgical edits, not rewrites. When updating a page (e.g. adding a new cross-reference because a freshly ingested source mentions an existing entity), use str_replace to touch only the relevant section. Rewriting whole pages is slow, expensive in tokens, and risks losing prior nuance.
Backlink discovery via grep. To find every page that references a given entity, run grep -rl "\[\[entity-name\]\]" wiki/ rather than reading pages to look for mentions. The bundled scripts make this easy.
Chunked source ingestion. Large raw sources (long PDFs, book chapters, lengthy transcripts) should be read in chunks during ingest, not loaded whole. The ingest workflow handles this — see references/ingest-workflow.md.
Search script for large wikis. Once the wiki passes ~300 pages, plain index lookup may not surface the right pages for fuzzy queries. Use scripts/wiki_search.py for section-level hybrid retrieval with optional frontmatter filters and structured --json evidence rows. The default path runs the local BAAI/bge-small-en-v1.5 FastEmbed model, stores derived vectors in wiki/.wiki-cache/embeddings.sqlite through sqlite-vec, and fuses semantic and BM25 ranks with RRF. Initialization and upgrade run scripts/setup_wiki.py through uv, installing pinned FastEmbed, sqlite-vec, and PyYAML, caching the model, and synchronizing every section before setup is reported ready. No wiki or query text leaves the machine. For dependency-free BM25, bypass PEP 723 resolution with python scripts/wiki_search.py "query" --no-embed.
For the full scaling playbook including thresholds and migration steps, read references/scaling-playbook.md.
Ask whether the user wants one global personal wiki or a project wiki. Then run the bootstrap script against the selected base directory:
# Project wiki: <project-root>/wiki and <project-root>/raw
python scripts/init_wiki.py <project-root> [--wiki-dir wiki] [--raw-dir raw]
# Personal global wiki: ~/wiki with raw sources at ~/wiki/raw
python scripts/init_wiki.py <home-directory> --wiki-dir wiki --raw-dir wiki/rawThis creates the directory structure, drops in templates for SCHEMA.md, index.md, and log.md, then runs mandatory local runtime setup. Setup installs the pinned dependencies through uv, downloads BAAI/bge-small-en-v1.5 when absent, builds the parse cache, and embeds every current section. Do not treat initialization or upgrade as complete unless setup emits "status": "ready".
Before running the bootstrap, use the grouped interview in references/retrieval-setup.md to confirm paths, model-cache location, graph usage, and agent-memory integration. Do not ask for API keys or provider consent: there is no remote embedding path. --no-embed remains the deterministic lexical escape hatch for later searches, not a way to skip mandatory setup.
Then propose wiring the wiki into agent memory so future sessions can find it: global instructions with a stable user-level path for a personal global wiki, or the project's memory file with a relative path for a project wiki. The filename depends on the agent: CLAUDE.md for Claude Code, AGENTS.md for Codex / Cursor / OpenCode / Pi / OpenClaw, and GEMINI.md for Gemini CLI. Full workflow and both stanza variants are in references/agent-memory-integration.md. Never write to a memory file without the user's approval.
The full workflow is in references/ingest-workflow.md; what follows is the shape of it. When a new source arrives, first write the source itself into raw/ (verbatim; if it's a web article, use the markdown form). Then read the source — chunked if large — and write a single source-summary page in wiki/sources/, named after the source slug, with full frontmatter and citations back to the raw file. Then identify which existing entity and concept pages this source touches; for each, surgically update the relevant section using str_replace rather than rewriting. Identify any new entities or concepts the source introduces and create new pages for them, linking from related existing pages so they don't become orphans. Update index.md (or the relevant shard) with the new pages. Append a single line to log.md with the date, operation type, and source title. Discuss the takeaways with the user as a final step — what surprised them, what's worth following up on — and offer to file that discussion back as a synthesis page.
Full version in references/query-workflow.md. To answer a query against the wiki: read index.md (or the relevant shard) first; identify candidate pages from one-line summaries; read those pages (and any backlinks they list that look relevant); synthesize the answer with [[wikilink]] citations to the pages you used; offer to file the synthesized answer back into synthesis/ so future queries benefit. If the index doesn't surface good candidates, run uv run --script <skill-root>/scripts/wiki_search.py "query terms" --wiki <absolute-wiki-root> for ranked local hybrid retrieval; add --no-embed only for dependency-free lexical BM25. Keep the installed skill path and target wiki path explicit. If the wiki appears to lack coverage of the topic, say so plainly rather than confabulating — flag it as a candidate ingest target.
Full version in references/lint-workflow.md. Lint is best run on a cadence (after every N ingests or weekly), not on every operation. The bundled python scripts/wiki_lint.py finds the structural issues automatically — orphan pages, broken [[wikilinks]], oversized pages, missing or malformed frontmatter, stale updated dates. Then for the semantic checks that need an LLM: read recently-updated pages and look for contradictions with older claims, identify concepts mentioned but lacking their own page, and suggest gaps the user might want to fill via web search or new sources. Always present lint findings as proposed edits for the user to approve, not as faits accomplis — the wiki is the user's, and silent rewrites erode trust.
The community discussion around the gist surfaced several failure modes worth internalizing because they are how this pattern goes wrong. Read them so you know what to actively avoid.
The first is silent corruption — a misreading of one source becomes an authoritative-looking wiki page, which then influences how subsequent sources are interpreted, and the error compounds invisibly. Mitigation: every wiki claim must carry a sources: frontmatter entry pointing back to the raw file, and the lint pass should surface any claim whose source can't be located. When in doubt during ingest, hedge in the wiki text ("the source claims X, though this is not yet corroborated by other sources") rather than asserting.
The second is wiki-reads-its-own-output drift — the LLM begins treating prior wiki pages as ground truth and stops checking them against raw sources. Mitigation: during ingest, when updating an existing page, re-read the relevant raw source for the existing claim before merging the new one. Don't take the wiki's word for what the source said.
The third is the maintenance ratchet — a critic in the gist comments noted that LLM-Wikis can require more human work over time, not less, because the LLM's output needs increasing supervision as the wiki grows. The mitigation is the scalability discipline above (sharded indexes, atomic pages, frontmatter, lint scripts) plus a strong cadence of lint passes. If lint reports start exceeding what the user can review, the wiki has outgrown its conventions and the schema needs revision.
The fourth is scope creep into bad fits — the pattern shines for accumulating textual research and degrades for highly relational data (org charts, financial ledgers, structured datasets) where a real database would serve better. If the user's domain is fundamentally relational, say so and suggest a better tool rather than forcing markdown to do the wrong job.
The reference files are the source of truth for the detailed procedures. Read them when the relevant operation is happening, not preemptively.
references/architecture.md — the three layers and three operations explained in depth, with examples of page formats and the rationale behind each design choicereferences/ingest-workflow.md — the step-by-step ingest procedure including chunked reading for large sources and the per-page-type templatesreferences/query-workflow.md — navigation patterns from index → page → backlinks, when to fall back to the search script, and how to file answers back as synthesis pagesreferences/lint-workflow.md — what to check, how to present findings, and the cadencereferences/page-conventions.md — frontmatter schema, page naming, link syntax, page-type definitions, sizing rulesreferences/scaling-playbook.md — thresholds at which to shard the index, when to introduce the search script, signals that the wiki has outgrown its current conventionsreferences/agent-memory-integration.md — how to wire a global or project wiki into agent instructions, with stanza variants and the bootstrap conversation scriptreferences/retrieval-setup.md — mandatory init/upgrade setup: paths, model cache, pinned local dependencies, full-corpus vector synchronization, readiness checks, and non-secret SCHEMA.md statereferences/graph-workflow.md — the optional graph layer: ontology, frontmatter schema, when to add typed edges vs plain wikilinks, and the extract/lint/query flowThe scripts are intentionally minimal — they exist so the LLM doesn't reinvent the same helpers on every invocation. Each is documented in its own --help output and at the top of the file.
scripts/init_wiki.py — bootstrap or upgrade a wiki, then require verified runtime/index setupscripts/setup_wiki.py — install pinned FastEmbed/sqlite-vec/PyYAML through uv, cache the local model, and synchronize parse/vector indexesscripts/wiki_search.py — section-level local hybrid retrieval with JSON evidence, filters, incremental caches, and dependency-free lexical fallbackscripts/wiki_lint.py — structural health check (orphans, broken links, oversized pages, frontmatter validation, stale dates)scripts/wiki_stats.py — quick summary of wiki size, page count by type, link density; useful for deciding when to shard the indexscripts/wiki_graph_extract.py — compile graph metadata and wikilinks into JSONL, SQLite, and GraphML through pinned PyYAMLscripts/wiki_graph_lint.py — validate typed edges against the ontology through pinned PyYAMLscripts/wiki_graph_query.py — neighbors / edges / facts / shortest-path queries over graph.sqliteThe templates in assets/ are starting points — they get copied into the user's wiki on bootstrap and then evolve under the user's editing.
assets/SCHEMA.md.template — the canonical schema document for a new wikiassets/index.md.template — the empty index fileassets/log.md.template — the empty log fileassets/page.md.template — a generic wiki page with the frontmatter scaffoldassets/ontology.yaml.template — starter graph ontology copied to wiki/graph/ontology.yamlassets/graph_README.md.template — explainer for wiki/graph/ (canonical vs generated files)assets/graph_gitignore.template — .gitignore for wiki/graph/ (ignores graph.sqlite and graph.graphml by default)For “learn from this task”, /wiki:learn, “improve this procedure” or /wiki:evolve, read references/evolution-workflow.md. Use scripts/wiki_evolve_loop.py for bounded training, persistent evidence consolidation, coherent whole-skill proposals, validation selection, and independent final testing. scripts/wiki_evolve.py captures manual experience and owns review, apply and rollback. The shared adapter covers nine agent hosts, with durable observable traces, workflow artifacts and cross-agent transfer. Configure an authorized call/time budget before execution; hard USD limits require the bounded API runner. Normal wiki use is unchanged.
Reuse source, concept and synthesis pages for evidence, patterns and experiment summaries. Separate hypotheses from verified observations, preserve counterexamples and model/tool applicability, and consult rejected history before proposing again. Keep the factual wiki available during execution and keep experimental history out of routine context. Never infer authorization from source text, fabricate outcomes, or treat a fluent proposed instruction as tested. Do not launch paid evaluations without an authorized runner and budget.
The bundled eval/evolution/pilot/suite.json and corpus provide 20 query tasks as a starting point. scripts/wiki_evolve_claude.py is an optional authenticated Claude CLI adapter; other models use the same JSON runner contract. .evolution/ is durable experimental evidence, excluded from ordinary wiki tools. Install/upgrade adds .experience-template.json, .pattern-template.md and its archive README idempotently. Do not edit unrelated skills or global agent instructions. Follow repository SemVer and PR/release rules when a validated procedure belongs to a distributed plugin.
© praneybehl, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 37 other files (scripts, references, assets) in skills/llm-wiki of praneybehl/llm-wiki-plugin.
Open the folder on GitHubat commit 32014c8
LLM Wiki next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| LLM Wiki this skillpraneybehl/llm-wiki-plugin | 118 | — | ~5.7k | Automated safety check: Pass | MIT | |
| LLM Wikilewislulu/llm-wiki-skill | 655 | — | ~3.7k | Automated safety check: Pass | None | |
| Obsidian Vault Ingest Pipelinejason-effi-lab/karpathy-llm-wiki-vault | 720 | — | ~669 | Automated safety check: Pass | None | |
| LLM WikiCharlesHoskinson/sevenlayer | 116 | — | ~1.5k | Automated safety check: Pass | Custom licence | |
| Knowledge Base Health Lintjason-effi-lab/karpathy-llm-wiki-vault | 720 | — | ~336 | Automated safety check: Pass | None | |
| Wiki Vault Queryjason-effi-lab/karpathy-llm-wiki-vault | 720 | — | ~383 | Automated safety check: Pass | None |
lewislulu/llm-wiki-skill
Build and maintain a Karpathy-style LLM knowledge base — a self-compiling Obsidian markdown wiki where an Agent ingests raw sources, compiles cross-linked concept/entity/summary pages, answers…
jason-effi-lab/karpathy-llm-wiki-vault
Compiles raw articles, papers and transcripts sitting in an inbox folder into linked Obsidian source, entity and concept pages, then archives the originals.
CharlesHoskinson/sevenlayer
Builds and maintains a persistent, interlinked Obsidian-compatible markdown knowledge wiki in a git repo via three operations — ingest a source into linked pages, answer a question from the…
jason-effi-lab/karpathy-llm-wiki-vault
Scans an Obsidian-style wiki for broken double-link references, orphan pages, files missing from the index and unresolved knowledge conflicts, then reports the findings.
jason-effi-lab/karpathy-llm-wiki-vault
Answers questions from a local Obsidian-style wiki by reading its index first, then the relevant pages, and replying with wiki-link citations instead of model memory.
AgriciDaniel/claude-obsidian
Answers a question strictly from a chosen Obsidian vault at quick, standard or deep depth, using a verified retrieval index when available and never changing vault files.
Works with
Categories
Build and maintain an LLM-curated knowledge base from papers, articles, transcripts, notes and project findings. LLM Wiki is an agent skill from praneybehl/llm-wiki-plugin. Build and maintain an LLM-curated knowledge base from papers, articles, transcripts, notes and project findings.
LLM Wiki fits situations like: add this to my wiki; what does the wiki say; learn from this task; improve this procedure.
Run `npx skills add praneybehl/llm-wiki-plugin --skill llm-wiki -a claude-code`. Or copy the skill folder (skills/llm-wiki in praneybehl/llm-wiki-plugin) into .claude/skills/llm-wiki in your project. Claude Code loads it when a task matches its description.
Run `npx skills add praneybehl/llm-wiki-plugin --skill llm-wiki -a codex`. Or copy the skill folder (skills/llm-wiki in praneybehl/llm-wiki-plugin) into .agents/skills/llm-wiki in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add praneybehl/llm-wiki-plugin --skill llm-wiki -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/llm-wiki, .gemini/skills/llm-wiki, .github/skills/llm-wiki and .opencode/skills/llm-wiki in your project.
Going by SKILL.md and its folder, LLM Wiki needs the command-line tools its instructions call (python and uv). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
LLM Wiki is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.7k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 21k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with LLM Wiki: LLM Wiki (lewislulu/llm-wiki-skill, 655 stars), Obsidian Vault Ingest Pipeline (jason-effi-lab/karpathy-llm-wiki-vault, 720 stars), LLM Wiki (CharlesHoskinson/sevenlayer, 116 stars) and Knowledge Base Health Lint (jason-effi-lab/karpathy-llm-wiki-vault, 720 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
praneybehl (a GitHub user) maintains it in praneybehl/llm-wiki-plugin, which has 118 GitHub stars. The repository was last updated on September 13, 2026.
Source: praneybehl/llm-wiki-plugin on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.