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…
LLM Wiki — persistent, compounding knowledge base inside Obsidian.
$ npx skills add ekadetov/llm-wiki --skill wiki -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ekadetov/llm-wiki 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/ekadetov/llm-wiki.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/wiki .claude/skills/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 "wiki" agent skill from https://github.com/ekadetov/llm-wiki/tree/main/skills/wiki into .claude/skills/wiki/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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/ekadetov/llm-wiki/tree/main/skills/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 ekadetov/llm-wiki --skill wiki -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ekadetov/llm-wiki wiki --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ekadetov/llm-wiki.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/wiki .agents/skills/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 "wiki" agent skill from https://github.com/ekadetov/llm-wiki/tree/main/skills/wiki into .agents/skills/wiki/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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 ekadetov/llm-wiki --skill wiki -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ekadetov/llm-wiki wiki --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ekadetov/llm-wiki.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/wiki .cursor/skills/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 "wiki" agent skill from https://github.com/ekadetov/llm-wiki/tree/main/skills/wiki into .cursor/skills/wiki/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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/ekadetov/llm-wiki.git --path skills/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 ekadetov/llm-wiki --skill wiki -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ekadetov/llm-wiki wiki --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ekadetov/llm-wiki.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/wiki .gemini/skills/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 "wiki" agent skill from https://github.com/ekadetov/llm-wiki/tree/main/skills/wiki into .gemini/skills/wiki/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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 ekadetov/llm-wiki 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 ekadetov/llm-wiki --skill wiki -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ekadetov/llm-wiki.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/wiki .github/skills/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 "wiki" agent skill from https://github.com/ekadetov/llm-wiki/tree/main/skills/wiki into .github/skills/wiki/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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 ekadetov/llm-wiki --skill 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 ekadetov/llm-wiki wiki --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ekadetov/llm-wiki.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/wiki .opencode/skills/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 "wiki" agent skill from https://github.com/ekadetov/llm-wiki/tree/main/skills/wiki into .opencode/skills/wiki/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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.
wikiLLM Wiki — persistent, compounding knowledge base inside Obsidian.
Wiki is an agent skill from ekadetov/llm-wiki. LLM Wiki — persistent, compounding knowledge base inside Obsidian. Use when the user says "/llm-wiki:wiki", "wiki init", "wiki ingest", "wiki query", "wiki lint", or asks about managing a knowledge base wiki.
Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/compilation-guide.md` and `references/frontmatter-schemas.md`).
It sits in Knowledge Management, covering LLM wikis. It works with Obsidian. The repository describes itself as: LLM Wiki — Claude Code plugin for persistent, compounding knowledge bases in Obsidian. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 5e49545. 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.
Shell commands in SKILL.md call:
gitpython3From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
obsidian.mdFrom 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.
Wiki loads about 4.3k tokens when it runs, and up to ~5k if it reads all its reference files. Until then it costs about 53 tokens; SKILL.md has 1,254 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); files beside SKILL.md are not scanned.
The full file from ekadetov/llm-wiki at commit 5e49545, republished under its MIT licence (© ekadetov). 1,254 words, ~4,271 tokens.
.claude/skills/wiki/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Persistent, compounding knowledge base inside an Obsidian vault.
/llm-wiki:wiki init my-topic
/llm-wiki:wiki ingest ~/ObsidianVault/03-Resources/my-topic/raw/article.md
/llm-wiki:wiki ingest https://example.com/article
/llm-wiki:wiki query "What is X?"
/llm-wiki:wiki lintWalk up from cwd looking for a directory containing both CLAUDE.md and a wiki/ subfolder.
cwd. Check if CLAUDE.md and wiki/ exist in the current directory.CLAUDE.md for schema."Which wiki should I use?" List available wikis by running:
ls -d ~/ObsidianVault/03-Resources/*/wiki 2>/dev/nulland presenting the parent directory names.
Reference paths used throughout this skill:
QMD="env -u BUN_INSTALL ${CLAUDE_PLUGIN_DATA}/node_modules/.bin/qmd"
MARP="${CLAUDE_PLUGIN_DATA}/node_modules/.bin/marp"Check: Test if "${CLAUDE_PLUGIN_DATA}/node_modules/.bin/qmd" exists and is executable via Bash: test -x "${CLAUDE_PLUGIN_DATA}/node_modules/.bin/qmd".
Important: Always invoke qmd via env -u BUN_INSTALL to force Node.js runtime. If BUN_INSTALL is set in the environment, qmd runs under Bun, which uses a SQLite build without extension loading support and cannot load sqlite-vec.
query and embed operations. ALWAYS use the full path — never bare qmd.wiki/index.md manually and grepping wiki files.init <name>Create a new wiki scaffold under the Obsidian vault.
Check if wiki already exists:
If ~/ObsidianVault/03-Resources/<name>/ exists, abort with:
"Wiki '<name>' already exists at ~/ObsidianVault/03-Resources/<name>/. Use wiki remove <name> first, or choose a different name."
Create directory structure:
mkdir -p ~/ObsidianVault/03-Resources/<name>/raw/articles
mkdir -p ~/ObsidianVault/03-Resources/<name>/raw/attachments
mkdir -p ~/ObsidianVault/03-Resources/<name>/wiki/queries
mkdir -p ~/ObsidianVault/03-Resources/<name>/outputs/reportsWrite ~/ObsidianVault/03-Resources/<name>/CLAUDE.md using the CLAUDE.md template below (fill in <name>).
Write ~/ObsidianVault/03-Resources/<name>/wiki/index.md using the index.md template below.
Write ~/ObsidianVault/03-Resources/<name>/log.md using the log.md template below.
Write ~/ObsidianVault/03-Resources/<name>/.gitignore using the .gitignore template below.
Write ~/ObsidianVault/03-Resources/<name>/qmd.yml using the qmd.yml template below.
Commit to vault git:
git -C ~/ObsidianVault add "03-Resources/<name>/" && git -C ~/ObsidianVault commit -m "init: <name> wiki"If qmd available:
"${QMD}" collection add ~/ObsidianVault/03-Resources/<name>/wiki --name <name> && "${QMD}" embed --collection <name>Print Web Clipper setup instruction:
Obsidian Web Clipper setup:
1. Install: https://obsidian.md/clipper
2. In clipper settings, set Destination folder to:
03-Resources/<name>/raw/articles
3. Set filename template to: {{date:YYYY-MM-DD}}-{{title}}
4. After clipping, run: /llm-wiki:wiki ingest ~/ObsidianVault/03-Resources/<name>/raw/articles/<clipped-file>.mdingest <path|url>Acquire a source and save it to the raw library. Does NOT create wiki pages — use compile for that.
Detect active wiki (see Active Wiki Detection). Read CLAUDE.md for schema.
Acquire source:
raw/ directly (not in a subdirectory), read it from there. Sources saved before the raw/articles/ convention are still valid.Classify the source as one of: article | paper | transcript | conversation | image-set.
Save to raw library: Write to raw/articles/YYYY-MM-DD-<slug>.md with frontmatter:
---
date: YYYY-MM-DD
source-type: <classification>
source-url: <original URL or file path>
title: <extracted or inferred title>
compiled: false
---If input was a file path already in raw/, skip this step (source is already saved).
Append to log.md:
## [YYYY-MM-DD] ingest | <title>
Saved <source-type> from <source> to raw/articles/.Commit:
git -C ~/ObsidianVault add "03-Resources/<wiki-name>/" && git -C ~/ObsidianVault commit -m "ingest: <title>"Print: "Source saved to raw/articles/<filename>. Run wiki compile to integrate into the wiki."
compile [<path>]Read raw sources and create/update wiki pages with entity extraction and cross-references.
<path> is given: compile that specific raw source.raw/articles/ for sources without a corresponding source-summary page in wiki/, and compile those.Detect active wiki. Read CLAUDE.md for schema and templates.
Identify sources to compile:
raw/articles/. For each, check if a corresponding source-summary page exists in wiki/ (match by slug or title). Compile any source without a matching summary.For each source to compile:
a. Read the raw source content.
b. Write or update source-summary page in wiki/ using the source-summary template from CLAUDE.md. Filename: <slug>.md.
c. Entity extraction: For each mentioned entity (person, concept, event):
wiki/.concept.md or person.md).[[wikilinks]] to related pages in both directions.d. Backlink audit (CRITICAL — do not skip):
grep -rln "<new page title>" wiki/ For each file that mentions the new page title but does NOT contain [[new-page-name]]:
add a [[wikilink]] at the first mention.
Update wiki/index.md with new/updated entries under the appropriate domain heading.
Append to log.md:
## [YYYY-MM-DD] compile | <N> sources → <M> pages
Compiled <source-titles>. Created/updated M pages.Commit:
git -C ~/ObsidianVault add "03-Resources/<wiki-name>/" && git -C ~/ObsidianVault commit -m "compile: <summary>"If qmd available:
"${QMD}" embed --collection <name>query <question>Answer a question using wiki knowledge, with citations.
Detect active wiki. Read CLAUDE.md.
Find relevant pages:
"${QMD}" query "<question>" --collection <name>wiki/index.md and identify relevant pages by title/description matching.Read all relevant pages. Follow one level of [[wikilinks]] if targets look relevant to the question.
Synthesize answer with [[wikilinks]] as citations. Format rules:
marp: true frontmatter. Render with: "${MARP}" <file> -o output.htmlFile the answer to wiki/queries/<slug>.md using the query-output frontmatter schema. Always file — no prompt.
Ask: "Promote this answer to wiki/<slug>.md as a concept page? (y/n)"
wiki/queries/ to wiki/, update frontmatter status from filed to promoted, and append to log.md:## [YYYY-MM-DD] promote | <slug>
Promoted query answer to concept page.Append to log.md:
## [YYYY-MM-DD] query | <question-slug>
Answered question. Referenced N pages. Filed to queries/<slug>.md.Commit:
git -C ~/ObsidianVault add "03-Resources/<wiki-name>/" && git -C ~/ObsidianVault commit -m "query: <slug>"lintAudit wiki integrity and fix issues.
Read all files in wiki/.
Build a link graph: for each [[wikilink]] on each page, record the edge (source → target).
Run deterministic lint script if available:
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/lint-wiki.py" <wiki-root>/wiki/Report and fix:
| Check | Action |
|---|---|
| Orphan pages (no inbound links) | List them. Suggest adding links from related pages. |
Dead links ([[wikilinks]] to nonexistent files) | Create stub pages with appropriate template. |
| Unlinked concept mentions | Scan pages for proper nouns and technical terms appearing in prose without [[wikilinks]]. If a corresponding page exists, add the wikilink at first mention. If no page exists, flag as a candidate for a new page. |
| Contradictions | Scan for [!WARNING] markers. List them. |
| Missing "Counter-Arguments and Gaps" sections | Add empty ## Counter-Arguments and Gaps section. |
| Stale pages | Flag pages with status: stale in frontmatter. |
| Index drift | Compare index.md entries vs actual files. Add missing, remove dead. |
Suggest growth opportunities: Based on the wiki's current content and the gaps found in step 4, generate:
wiki query)Write lint report to outputs/reports/YYYY-MM-DD-lint.md:
# Lint Report — YYYY-MM-DD
**Wiki:** <name> | **Issues found:** N | **Fixed:** M
## Issues
<full issue table from step 4>
## Next Steps
<growth suggestions from step 5>Append to log.md:
## [YYYY-MM-DD] lint | N issues found, M fixed
<summary of issues>Commit:
git -C ~/ObsidianVault commit -am "lint: YYYY-MM-DD"remove <name>Delete a wiki and all its contents.
Resolve wiki path: ~/ObsidianVault/03-Resources/<name>/
Verify it exists. If not, abort: "Wiki '<name>' does not exist."
Confirm with user: List the directory contents and ask "This will permanently delete the '<name>' wiki and all its contents. Proceed? (y/n)"
Remove qmd collection (if qmd available):
"${QMD}" collection remove <name>Remove from git and filesystem:
git -C ~/ObsidianVault rm -rf "03-Resources/<name>/" && git -C ~/ObsidianVault commit -m "remove: <name> wiki"Confirm: "Wiki '<name>' has been removed."
Handle these failure modes gracefully:
| Situation | Action |
|---|---|
| No active wiki found | List available wikis in ~/ObsidianVault/03-Resources/*/wiki. Suggest wiki init <name> if none exist. |
| qmd not available | Fall back to wiki/index.md for search. Warn: "qmd unavailable — using index.md fallback." |
| Network error on URL ingest | Retry once. If still failing, report the error and suggest saving content manually to raw/articles/. |
| Git commit fails | Warn: "Git commit failed: <error>. Changes are saved but not committed." Continue with remaining steps. |
| Wiki already exists (on init) | Abort with message referencing wiki remove. |
| Raw source too large (>50KB) | Warn: "Large source detected. Entity extraction may be incomplete. Consider splitting." Proceed anyway. |
| log.md missing | Create fresh log.md from template at topic root. Warn: "log.md was missing — created a new one." |
| No uncompiled sources (on compile) | Report: "All sources are already compiled. Nothing to do." Stop. |
| qmd collection not found | Warn and continue without search indexing. |
Used by the init operation. Apply verbatim, replacing <name> with the wiki name.
# <name> Wiki Schema
## Directory Layout
- raw/ -- immutable source drops. Never edit files here.
- raw/articles/ -- text source documents (articles, papers, transcripts).
- raw/attachments/ -- images and binary attachments.
- wiki/ -- LLM-owned pages. You have full write access here.
- wiki/index.md -- catalog. Read this FIRST before opening any other page.
- wiki/queries/ -- filed query answers. Promote to wiki/ when durable.
- outputs/reports/ -- dated lint reports and other artifacts.
- log.md -- append-only operation log. Never edit existing entries.
## Entity Types and Templates
### concept.md
---
date: YYYY-MM-DD
tags: [domain]
type: concept
status: active
---
# Concept Name
<one-paragraph summary>
## Details
...
## See Also
- [[related-concept]]
## Counter-Arguments and Gaps
...
### person.md
---
date: YYYY-MM-DD
tags: [domain, person]
type: person
status: active
---
# Person Name
Role / affiliation.
## Key Contributions
...
## See Also
- [[related-concept]]
### source-summary.md
---
date: YYYY-MM-DD
tags: [domain]
type: source-summary
source-url: https://...
---
# Source Title
One-paragraph summary.
## Key Points
...
## Entities Mentioned
- [[person-or-concept]]
## Slides
To export as a Marp slide deck, add `marp: true` to frontmatter and run:
"${MARP}" wiki/<filename>.md -o output.html
### query-output.md
---
date: YYYY-MM-DD
tags: [domain]
type: query-output
question: "<original question>"
status: filed
---
# <Question as title>
<synthesized answer>
## Sources
- [[page-1]]
- [[page-2]]
## Naming Conventions
- All filenames: lowercase-kebab-case.md
- Wikilinks: [[filename-without-extension]]
- Never use standard markdown links for internal links
## Log Format
Append to log.md after every operation. Format:
## [YYYY-MM-DD] <operation> | <title>
<one-line description>
Operations: ingest | compile | query | lint | promote | remove
## Index Format
wiki/index.md is a human- and LLM-readable catalog. Format:
## Domain Name
- [[page-name]] -- one-line description (YYYY-MM-DD)
Keep entries under 80 chars. Update after every ingest.
## Cross-Reference Rules
- Every page must link to at least one other page when content warrants it
- When creating or updating a concept page, scan index.md for related entities and add [[wikilinks]]
- Flag contradictions inline: > [!WARNING] Contradiction with [[other-page]]
## Ingest Rules
1. Acquire the source (URL or file)
2. Classify the source type
3. Save to raw/articles/ with frontmatter (compiled: false)
4. Append to log.md
5. Commit
Ingest does NOT create wiki pages. Use compile for that.
## Compile Rules
1. Identify uncompiled raw sources (no matching source-summary in wiki/)
2. For each source: write source-summary, extract entities, create/update pages
3. Backlink audit: grep existing pages for mentions of new titles
4. Update wiki/index.md
5. Append to log.md
6. Commit
One source typically touches 5-15 pages. This is normal.
## Query Rules
1. Read wiki/index.md first
2. Open relevant pages
3. Synthesize answer with [[wikilinks]] as citations
4. Always file answer to wiki/queries/ (mandatory, no prompt)
5. Offer promotion to wiki/ as a concept page (y/n)
6. Append to log.md (both query and optional promote events)
7. Commit changes
## Lint Rules
Scan all pages in wiki/ and report:
- Contradictions between pages
- Orphan pages (no inbound [[links]])
- Pages with status: stale older than 90 days
- Missing Counter-Arguments and Gaps section
- Index entries pointing to missing files
After fixing, append to log.md and commit..DS_Store
*.sqlite
*.sqlite-wal
*.sqlite-shmcollections:
<name>:
path: ./wiki
pattern: "**/*.md"# <name> Wiki Index
Last updated: YYYY-MM-DD
<!-- Add entries after each ingest. Format:
## Domain
- [[page-name]] -- description (YYYY-MM-DD)
--># <name> Wiki Log
<!-- Append only. Never edit existing entries. Format:
## [YYYY-MM-DD] ingest | Title
One-line description.
-->© ekadetov, 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 2 other files (references) in skills/wiki of ekadetov/llm-wiki.
Open the folder on GitHubat commit 5e49545
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 |
|---|---|---|---|---|---|---|
| Wiki this skillekadetov/llm-wiki | 110 | — | ~4.3k | Automated safety check: Pass | MIT | |
| LLM Wikilewislulu/llm-wiki-skill | 655 | — | ~3.7k | Automated safety check: Pass | None | |
| Codex History IngestAr9av/obsidian-wiki | 3.5k | — | ~2.2k | Automated safety check: Notes | MIT | |
| LLM Wikizosmaai/pi-llm-wiki | 608 | — | ~4.4k | Automated safety check: Pass | MIT | |
| LLM Wikipraneybehl/llm-wiki-plugin | 118 | — | ~5.7k | Automated safety check: Pass | MIT | |
| Hermes History IngestAr9av/obsidian-wiki | 3.5k | — | ~2.2k | Automated safety check: Notes | MIT |
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…
Ar9av/obsidian-wiki
Ingest Codex CLI conversation/session history into Obsidian as distilled knowledge.
zosmaai/pi-llm-wiki
Build and maintain a persistent, interlinked Obsidian-compatible markdown wiki using Karpathy's LLM Wiki pattern.
praneybehl/llm-wiki-plugin
Build and maintain an LLM-curated knowledge base from papers, articles, transcripts, notes and project findings.
Ar9av/obsidian-wiki
Ingest Hermes agent history into Obsidian as distilled knowledge.
SherwinQ/karpathy-wiki
A skill your agent uses when building or maintaining a personal knowledge base with LLM assistance.
Works with
Categories
LLM Wiki — persistent, compounding knowledge base inside Obsidian. Wiki is an agent skill from ekadetov/llm-wiki. LLM Wiki — persistent, compounding knowledge base inside Obsidian.
Wiki fits situations like: the user says /llm-wiki:wiki; asks about managing a knowledge base wiki.
Run `npx skills add ekadetov/llm-wiki --skill wiki -a claude-code`. Or copy the skill folder (skills/wiki in ekadetov/llm-wiki) into .claude/skills/wiki in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ekadetov/llm-wiki --skill wiki -a codex`. Or copy the skill folder (skills/wiki in ekadetov/llm-wiki) into .agents/skills/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 ekadetov/llm-wiki --skill 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/wiki, .gemini/skills/wiki, .github/skills/wiki and .opencode/skills/wiki in your project.
Going by SKILL.md and its folder, Wiki needs the command-line tools its instructions call (git and python3). Our summary lists: Python 3; Node.js.
SKILL.md names 1 domain. As links in the text: obsidian.md. 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. Review the folder before installing.
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 4.3k tokens (SKILL.md is roughly 17k 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 750 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Wiki: LLM Wiki (lewislulu/llm-wiki-skill, 655 stars), Codex History Ingest (Ar9av/obsidian-wiki, 3.5k stars), LLM Wiki (zosmaai/pi-llm-wiki, 608 stars) and LLM Wiki (praneybehl/llm-wiki-plugin, 118 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ekadetov (a GitHub user) maintains it in ekadetov/llm-wiki, which has 110 GitHub stars. The repository was last updated on April 6, 2026.
Source: ekadetov/llm-wiki on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.