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…
Runs a deterministic, read-only health check on an Obsidian vault, reporting dead or ambiguous links, orphan pages, missing frontmatter, empty sections and stale index entries.
$ npx skills add AgriciDaniel/claude-obsidian --skill wiki-lint -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AgriciDaniel/claude-obsidian wiki-lint --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/AgriciDaniel/claude-obsidian.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/wiki-lint .claude/skills/wiki-lint && 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-lint" agent skill from https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/wiki-lint into .claude/skills/wiki-lint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wiki-lint", 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/AgriciDaniel/claude-obsidian/tree/main/skills/wiki-lintType 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 AgriciDaniel/claude-obsidian --skill wiki-lint -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AgriciDaniel/claude-obsidian wiki-lint --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-obsidian.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/wiki-lint .agents/skills/wiki-lint && 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-lint" agent skill from https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/wiki-lint into .agents/skills/wiki-lint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wiki-lint", 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 AgriciDaniel/claude-obsidian --skill wiki-lint -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AgriciDaniel/claude-obsidian wiki-lint --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-obsidian.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/wiki-lint .cursor/skills/wiki-lint && 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-lint" agent skill from https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/wiki-lint into .cursor/skills/wiki-lint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wiki-lint", 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/AgriciDaniel/claude-obsidian.git --path skills/wiki-lint--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 AgriciDaniel/claude-obsidian --skill wiki-lint -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AgriciDaniel/claude-obsidian wiki-lint --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-obsidian.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/wiki-lint .gemini/skills/wiki-lint && 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-lint" agent skill from https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/wiki-lint into .gemini/skills/wiki-lint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wiki-lint", 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 AgriciDaniel/claude-obsidian wiki-lintInstalls 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 AgriciDaniel/claude-obsidian --skill wiki-lint -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-obsidian.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/wiki-lint .github/skills/wiki-lint && 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-lint" agent skill from https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/wiki-lint into .github/skills/wiki-lint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wiki-lint", 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 AgriciDaniel/claude-obsidian --skill wiki-lint -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AgriciDaniel/claude-obsidian wiki-lint --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-obsidian.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/wiki-lint .opencode/skills/wiki-lint && 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-lint" agent skill from https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/wiki-lint into .opencode/skills/wiki-lint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wiki-lint", 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.
wiki-lintRuns a deterministic, read-only health check on an Obsidian vault, reporting dead or ambiguous links, orphan pages, missing frontmatter, empty sections and stale index entries.
The skill wraps a portable Python lint engine that observes vault state without creating reports, dashboards or fixes of its own. It resolves the engine's own installed location rather than the vault path, then runs it against the chosen vault with an optional markdown output format and a repeatable exclude glob to scope folders, such as a scratchpad, out of every scan category: pages, link resolution, orphans, frontmatter, empty sections and stale indexes.
Its deterministic parser understands Obsidian wikilinks and embeds, Markdown links, aliases, heading and block fragments, and code fences, skips dot-prefixed directories the way Obsidian's own indexer does, and honors .gitignore files directly rather than shelling out to git, dropping a gitignored candidate when a link is ambiguous between it and a real page. When explaining findings, the skill preserves the engine's own paths, line numbers and categories, groups them by likely impact from broken navigation down to maintainability, and is explicit that an orphan page may be intentional and that the tool performs no semantic or prose-level analysis beyond what it actually reports.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 32ac5a0. 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:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Obsidian Wiki Linter loads about 938 tokens when it runs. Until then it costs about 87 tokens; SKILL.md has 444 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 AgriciDaniel/claude-obsidian at commit 32ac5a0, republished under its MIT licence (© AgriciDaniel). 444 words, ~938 tokens.
.claude/skills/wiki-lint/SKILL.md (or your agent's skills folder).Use the portable lint engine as the source of truth. Lint observes vault state; it does not create reports, dashboards, canvases, stubs, or fixes.
Resolve the installed product root from this skill's own location, not from the vault or current working directory:
PRODUCT_ROOT=/absolute/path/to/installed/claude-obsidian
CORE="$PRODUCT_ROOT/scripts/claude-obsidian.py"
test -f "$CORE"Every ../wiki/references/ link in this file resolves the same way, relative
to this skill's own directory under $PRODUCT_ROOT, never relative to the
selected vault's wiki/ directory.
Resolve the user vault, then run one of:
python3 "$CORE" lint --vault "$VAULT"
python3 "$CORE" lint --vault "$VAULT" --format markdown
python3 "$CORE" lint --vault "$VAULT" --exclude "wiki/scratchpad/*"The repeatable --exclude GLOB flag scopes a path (for example a scratchpad
folder) out of page, link-resolution, orphan, frontmatter, empty-section, and
stale-index scanning.
Use --strict only when a nonzero exit for findings is useful in automation.
The command remains read-only either way.
The deterministic parser understands Obsidian wikilinks and embeds, Markdown
links, aliases, heading and block fragments, escaped aliases, and code fences.
It skips dot-prefixed directories by default, mirroring Obsidian's own
indexer. Link resolution honors .gitignore files inside the vault (no git
subprocess): when a link is ambiguous between a page and a gitignored file
such as a build artifact, the gitignored candidate is dropped.
It reports such categories as dead or ambiguous links, orphan pages, required
frontmatter gaps (including title), empty sections, stale index entries, and
source/claim ledger contract violations. Report only the
checks and counts present in its output; do not claim that it performed
semantic, stylistic, or prose-level contradiction analysis when it did
not.
Do not write the Markdown rendering into the vault. Return it in chat or stdout.
Never auto-fix a lint result. After the user chooses specific findings to repair:
Follow the operation transaction contract. Lint itself never applies that transaction and never commits Git.
Observe the deterministic report, think about root causes rather than finding count, verify proposed repairs against current hashes, and grow by improving the workflow that produced repeated findings.
© AgriciDaniel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/wiki-lint of AgriciDaniel/claude-obsidian.
Open the folder on GitHubat commit 32ac5a0
Obsidian Wiki Linter 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 |
|---|---|---|---|---|---|---|
| Obsidian Wiki Linter this skillAgriciDaniel/claude-obsidian | 15k | — | ~938 | Automated safety check: Pass | MIT | |
| LLM Wikilewislulu/llm-wiki-skill | 655 | — | ~3.7k | 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 | 721 | — | ~336 | Automated safety check: Pass | None | |
| Wiki AllPratiyush/llm-wiki | 397 | — | ~587 | Automated safety check: Pass | MIT | |
| Wiki DedupAr9av/obsidian-wiki | 3.5k | — | ~3.8k | 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…
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.
Pratiyush/llm-wiki
Run the complete llmwiki pipeline from scratch — init, sync, graph, build, lint, and serve.
Ar9av/obsidian-wiki
Detect and merge wiki pages representing the same concept under different names.
coreyhaines31/makerskills
When you want to capture into, compile, query, lint, or connect your personal Second Brain.
AgriciDaniel/claude-obsidian
Runs a bounded, source-grounded research loop that drafts a cited dossier and can propose a separately reviewed merge into an Obsidian vault.
AgriciDaniel/claude-obsidian
Creates, inspects and updates Obsidian JSON Canvas boards in a vault, with text, file, link, group and edge nodes, using safe recoverable edits.
AgriciDaniel/claude-obsidian
Sets up or adopts a separate Obsidian knowledge vault through the claude-obsidian core script and routes follow-up work to the right wiki sub-skill.
AgriciDaniel/claude-obsidian
Creates a bounded, extractive rollup of recent Obsidian wiki log entries, previewed by default, with one optional apply step and no changes to child pages.
AgriciDaniel/claude-obsidian
Plans, and with explicit network consent runs, an external Defuddle extractor that turns an article-like HTTPS page into clean Markdown for later wiki ingestion.
AgriciDaniel/claude-obsidian
Explains, drafts and validates Obsidian Bases .base files, building filters, formulas and table, card or list views, and applying edits only through one inspected transaction.
Categories
Runs a deterministic, read-only health check on an Obsidian vault, reporting dead or ambiguous links, orphan pages, missing frontmatter, empty sections and stale index entries. The skill wraps a portable Python lint engine that observes vault state without creating reports, dashboards or fixes of its own. It resolves the engine's own installed location rather than the vault path, then runs it against the chosen vault with an optional markdown output format and a repeatable exclude glob to scope folders, such as a scratchpad, out of every scan category: pages, link resolution, orphans, frontmatter, empty sections and stale indexes.
Obsidian Wiki Linter fits situations like: running a health check on an Obsidian vault for broken links and orphan pages; auditing frontmatter and stale index entries across a wiki; checking a vault for dead links before a bigger reorganization.
Run `npx skills add AgriciDaniel/claude-obsidian --skill wiki-lint -a claude-code`. Or copy the skill folder (skills/wiki-lint in AgriciDaniel/claude-obsidian) into .claude/skills/wiki-lint in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AgriciDaniel/claude-obsidian --skill wiki-lint -a codex`. Or copy the skill folder (skills/wiki-lint in AgriciDaniel/claude-obsidian) into .agents/skills/wiki-lint 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 AgriciDaniel/claude-obsidian --skill wiki-lint -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-lint, .gemini/skills/wiki-lint, .github/skills/wiki-lint and .opencode/skills/wiki-lint in your project.
Going by SKILL.md and its folder, Obsidian Wiki Linter needs the command-line tools its instructions call (python3). Our summary lists: python3; An installed claude-obsidian product with its lint engine.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Obsidian Wiki Linter is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 938 tokens (SKILL.md is roughly 3.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Obsidian Wiki Linter: LLM Wiki (lewislulu/llm-wiki-skill, 655 stars), LLM Wiki (CharlesHoskinson/sevenlayer, 116 stars), Knowledge Base Health Lint (jason-effi-lab/karpathy-llm-wiki-vault, 721 stars) and Wiki All (Pratiyush/llm-wiki, 397 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AgriciDaniel (a GitHub user) maintains it in AgriciDaniel/claude-obsidian, which has 15,438 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on September 10, 2026.
Source: AgriciDaniel/claude-obsidian on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.