Obsidian Knowledge Builder
Michael-OvO/obsidian-knowledge-agent
Turns PDFs, slides, syllabi, papers and transcripts into structured, teaching-quality Obsidian notes, matching how much structure is built to how much the material needs.
Turn a wiki topic into a cited Markdown briefing, plain-language explanation, or progressive lecture.
$ npx skills add Ar9av/obsidian-wiki --skill wiki-narrate -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Ar9av/obsidian-wiki wiki-narrate --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/Ar9av/obsidian-wiki.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.skills/wiki-narrate .claude/skills/wiki-narrate && 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-narrate" agent skill from https://github.com/Ar9av/obsidian-wiki/tree/main/.skills/wiki-narrate into .claude/skills/wiki-narrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wiki-narrate", 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/Ar9av/obsidian-wiki/tree/main/.skills/wiki-narrateType 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 Ar9av/obsidian-wiki --skill wiki-narrate -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Ar9av/obsidian-wiki wiki-narrate --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Ar9av/obsidian-wiki.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.skills/wiki-narrate .agents/skills/wiki-narrate && 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-narrate" agent skill from https://github.com/Ar9av/obsidian-wiki/tree/main/.skills/wiki-narrate into .agents/skills/wiki-narrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wiki-narrate", 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 Ar9av/obsidian-wiki --skill wiki-narrate -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Ar9av/obsidian-wiki wiki-narrate --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Ar9av/obsidian-wiki.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.skills/wiki-narrate .cursor/skills/wiki-narrate && 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-narrate" agent skill from https://github.com/Ar9av/obsidian-wiki/tree/main/.skills/wiki-narrate into .cursor/skills/wiki-narrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wiki-narrate", 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/Ar9av/obsidian-wiki.git --path .skills/wiki-narrate--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 Ar9av/obsidian-wiki --skill wiki-narrate -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Ar9av/obsidian-wiki wiki-narrate --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Ar9av/obsidian-wiki.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.skills/wiki-narrate .gemini/skills/wiki-narrate && 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-narrate" agent skill from https://github.com/Ar9av/obsidian-wiki/tree/main/.skills/wiki-narrate into .gemini/skills/wiki-narrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wiki-narrate", 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 Ar9av/obsidian-wiki wiki-narrateInstalls 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 Ar9av/obsidian-wiki --skill wiki-narrate -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Ar9av/obsidian-wiki.git skills-src && mkdir -p .github/skills && cp -r skills-src/.skills/wiki-narrate .github/skills/wiki-narrate && 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-narrate" agent skill from https://github.com/Ar9av/obsidian-wiki/tree/main/.skills/wiki-narrate into .github/skills/wiki-narrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wiki-narrate", 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 Ar9av/obsidian-wiki --skill wiki-narrate -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Ar9av/obsidian-wiki wiki-narrate --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Ar9av/obsidian-wiki.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.skills/wiki-narrate .opencode/skills/wiki-narrate && 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-narrate" agent skill from https://github.com/Ar9av/obsidian-wiki/tree/main/.skills/wiki-narrate into .opencode/skills/wiki-narrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wiki-narrate", 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-narrateTurn a wiki topic into a cited Markdown briefing, plain-language explanation, or progressive lecture.
Wiki Narrate is an agent skill from Ar9av/obsidian-wiki. Turn a wiki topic into a cited Markdown briefing, plain-language explanation, or progressive lecture. Use this skill for topic-based briefing, explanation, and lecture requests that must stay within the evidence compiled in an Obsidian vault.
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/voices.md`).
It sits in Knowledge Management, covering LLM wikis and Plain language and style rules. It works with Obsidian. The repository describes itself as: Framework for AI agents to build and maintain a digital brain through Obsidian wiki | Memory System for Agents. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4a0630b. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From 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.
Wiki Narrate loads about 1.7k tokens when it runs, and up to ~1.9k if it reads all its reference files. Until then it costs about 64 tokens; SKILL.md has 866 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 Ar9av/obsidian-wiki at commit 4a0630b, republished under its MIT licence (© Ar9av). 866 words, ~1,718 tokens.
.claude/skills/wiki-narrate/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Use this skill only for a topic-based Markdown readout. Do not add tag or page-list selection, prior-query input, voice aliases, HTML, PDF, slides, renderer handoffs, or new compiled knowledge pages.
/wiki-narrate <topic> [--voice briefing|plain-language|lecturer] [--save]
<topic>.briefing.briefing, plain-language, and lecturer without searching or
writing.--save is the only persistence switch.hot.md.Writing profile: Before drafting or rewriting natural-language Markdown, read and apply the Writing Profile Resolution section in llm-wiki/SKILL.md. Framework schema, provenance, safety, and operation-specific requirements take precedence.
WRITING.md preferences apply only to newly drafted or rewritten natural-language Markdown; preserve source content and structured records.
@name vault override, then read the target vault's AGENTS.md when it exists.
Load OBSIDIAN_LINK_FORMAT before drafting citations.hot.md and index.md first. Select candidates by frontmatter and summary
before reading bodies.rg; if QMD is absent, unconfigured, or fails,
continue with the index and rg path. Treat QMD output as candidate guidance, not
evidence: establish each claim from the allowed vault page itself.visibility/internal or visibility/pii in that mode: never read, cite, or expose
them._readouts/, _raw/, _archives/, _meta/, index.md, log.md,
hot.md, and _insights.md from candidates.Draft a ledger before prose. Each item contains a claim, supporting [[vault page]]
links, and one status: supported fact, inferred connection, or ambiguous conflict.
When OBSIDIAN_LINK_FORMAT=markdown, render the same supporting page as a standard
Markdown link; otherwise use the vault's [[wikilink]] form.
Ensure every factual sentence has adjacent supporting citations. Mark inferred connections ^[inferred]; mark unresolved conflicts ^[ambiguous]. Never use web knowledge, model memory, or invented examples to close a gap. Omit unsupported claims and name the gap in Coverage. An inference or ambiguity marker supplements, rather than replaces, adjacent citations.
Read references/voices.md and use exactly the requested voice skeleton. The selected
voice may change prose and ordering, but cannot change the ledger's factual boundary.
Return Markdown only, structured as:
OBSIDIAN_LINK_FORMAT.## Coverage footer listing cited pages, the count of inferred statements, and
known evidence gaps.If evidence is weak or contradictory, produce only the supported portion. Mark each
unresolved conflict ^[ambiguous] with citations to all conflicting pages, and list
the remaining gaps in ## Coverage.
Present the result by default. For --save, create _readouts/ if necessary and write
_readouts/<slug>.md with title, topic, voice, sources, created, and
updated frontmatter. Use a deterministic, filesystem-safe <slug> derived from the
topic. Save the same completed Markdown readout that was returned in conversation.
A readout is derived output: exclude _readouts/ from retrieval and must not update index.md or .manifest.json. Do not create _readouts/ or a readout file without a successful --save result.
After a narration attempt that reaches retrieval, append one WIKI_NARRATE event to
log.md:
obsidian-wiki memory log WIKI_NARRATE \
topic="<topic>" voice=<voice> result_pages=<N> \
mode=<normal|filtered> saved=<true|false> \
outcome=<success|no_match|write_failed>This is the only write a narration without --save may perform. Do not touch index.md or hot.md by hand.
--save, append the event with saved=false after returning the readout;
do not create a readout or change hot.md.--save write, append the event with saved=true, then refresh
the hot cache with a one-line takeaway naming the topic, voice, cited-page count, and
saved readout path: obsidian-wiki memory hot --takeaways "<line>". hot.md changes
only after a successful save, and only through that command.WIKI_NARRATE event with
saved=false outcome=write_failed when log.md remains writable, and do not update
hot.md.log.md fails, preserve the readout result and report the logging
failure separately. Never represent a failed log or save as successful.--save was requested, do not change hot.md, and record a
WIKI_NARRATE event with outcome=no_match when log.md is writable.## Coverage; saving remains available for that successful partial
readout.index.md and rg; do not fail the narration
merely because QMD is unavailable.hot.md, and never update index.md or .manifest.json.© Ar9av, 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 1 other file (references) in .skills/wiki-narrate of Ar9av/obsidian-wiki.
Open the folder on GitHubat commit 4a0630b
Wiki Narrate 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 Narrate this skillAr9av/obsidian-wiki | 3.5k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Obsidian Knowledge BuilderMichael-OvO/obsidian-knowledge-agent | 205 | — | ~917 | Automated safety check: Pass | MIT | |
| Wiki Ingestthoreinstein/gemini-obsidian | 102 | — | ~1.2k | Automated safety check: Pass | ISC | |
| LLM Wikilewislulu/llm-wiki-skill | 655 | — | ~3.7k | Automated safety check: Pass | None | |
| 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 |
Michael-OvO/obsidian-knowledge-agent
Turns PDFs, slides, syllabi, papers and transcripts into structured, teaching-quality Obsidian notes, matching how much structure is built to how much the material needs.
thoreinstein/gemini-obsidian
A skill your agent uses when the user wants to ingest external sources into the vault — PDFs, markdown files, transcripts, Readwise exports, or any document.
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…
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.
SherwinQ/karpathy-wiki
A skill your agent uses when building or maintaining a personal knowledge base with LLM assistance.
Ar9av/obsidian-wiki
Ingest Codex CLI conversation/session history into Obsidian as distilled knowledge.
Ar9av/obsidian-wiki
Ingest GitHub Copilot CLI/session history into Obsidian as distilled knowledge.
Ar9av/obsidian-wiki
Ingest Hermes agent history into Obsidian as distilled knowledge.
Ar9av/obsidian-wiki
Adjust the user's Obsidian visual layout with CSS snippets. An agent skill from Ar9av/obsidian-wiki.
Ar9av/obsidian-wiki
Ingest OpenClaw session/history data into Obsidian as distilled knowledge.
Ar9av/obsidian-wiki
Turn the current conversation or finding into a structured permanent wiki note.
Works with
Categories
Turn a wiki topic into a cited Markdown briefing, plain-language explanation, or progressive lecture. Wiki Narrate is an agent skill from Ar9av/obsidian-wiki. Turn a wiki topic into a cited Markdown briefing, plain-language explanation, or progressive lecture.
Wiki Narrate fits situations like: topic-based briefing; lecture requests that must stay within the evidence compiled in an Obsidian vault.
Run `npx skills add Ar9av/obsidian-wiki --skill wiki-narrate -a claude-code`. Or copy the skill folder (.skills/wiki-narrate in Ar9av/obsidian-wiki) into .claude/skills/wiki-narrate in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Ar9av/obsidian-wiki --skill wiki-narrate -a codex`. Or copy the skill folder (.skills/wiki-narrate in Ar9av/obsidian-wiki) into .agents/skills/wiki-narrate 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 Ar9av/obsidian-wiki --skill wiki-narrate -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-narrate, .gemini/skills/wiki-narrate, .github/skills/wiki-narrate and .opencode/skills/wiki-narrate in your project.
SKILL.md names no scripts, command-line tools or credentials: Wiki Narrate is instructions for the agent only.
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.
Wiki Narrate is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.9k 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 162 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Wiki Narrate: Obsidian Knowledge Builder (Michael-OvO/obsidian-knowledge-agent, 205 stars), Wiki Ingest (thoreinstein/gemini-obsidian, 102 stars), LLM Wiki (lewislulu/llm-wiki-skill, 655 stars) and LLM Wiki (zosmaai/pi-llm-wiki, 608 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Ar9av (a GitHub user) maintains it in Ar9av/obsidian-wiki, which has 3,538 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 8, 2026.
Source: Ar9av/obsidian-wiki on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.