obsidian-wiki is a framework that helps AI agents build and maintain an interconnected knowledge base from text-based material in an Obsidian vault. It is for people who want their agents to remember discoveries, connect related information, and answer questions with wiki-link citations. Catalogue add-ons provide the agent skills, instructions, agents, and configuration used to create and maintain these wikis.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Ar9av/obsidian-wiki --skill daily-updategit clone --depth 1 https://github.com/Ar9av/obsidian-wikiWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ar9av/obsidian-wiki/daily-update)<a href="https://agentmods.dev/skills/ar9av/obsidian-wiki/daily-update"><img src="https://agentmods.dev/badge/skills/ar9av/obsidian-wiki/daily-update/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ar9av/obsidian-wiki/daily-update"><img src="https://agentmods.dev/badge/skills/ar9av/obsidian-wiki/daily-update.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Socket pass
- Snyk pass
- NVIDIA SkillSpector warn
SkillSpector: 6 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Rogue Agent · line 130 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Rogue Agent · line 133 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Rogue Agent · line 135 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Rogue Agent · line 136 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Rogue Agent · line 139 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Rogue Agent · line 139 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00051 | $0.02647 |
| Opus 5.5 | $0.00020 | $0.01059 |
| Sonnet 5.5 | $0.00010 | $0.00529 |
| Haiku 4.5 | $0.00005 | $0.00265 |
Grade B, and why
daily-update scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 18d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Asks for rootmediumPrivilege escalation
A mod that escalates privileges can change anything on the machine, not only the project.
On a headless server, user timers only run while the user is logged in unless lingering is on — suggest `sudo loginctl enable-linger "$USER"`. How it starts
The opening of the file, as written. The whole thing — 255 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Daily Update — Wiki Maintenance Cycle
You run a lightweight maintenance pass over the wiki: check source freshness, refresh the index, update hot.md, and write the state file that the terminal notification reads.
Before You Start
- Resolve config — follow the Config Resolution Protocol in
llm-wiki/SKILL.md(inline@nameoverride → walk up CWD for.env→ global config → prompt setup). This givesOBSIDIAN_VAULT_PATHandOBSIDIAN_WIKI_REPO. - Derive vault-scoped state dir — all runtime state is scoped to the resolved vault, not global:
VAULT_ID=$(echo "$OBSIDIAN_VAULT_PATH" | md5sum 2>/dev/null | cut -c1-8 || md5 -q - <<< "$OBSIDIAN_VAULT_PATH" | cut -c1-8) STATE_DIR="$(obsidian_wiki_config_dir)/state/$VAULT_ID" mkdir -p "$STATE_DIR" - Read
$OBSIDIAN_VAULT_PATH/.manifest.json.
Modes
Run Mode (default — triggered by cron or /daily-update)
Execute the maintenance cycle:
Step 1: Source freshness check
Compare each source in .manifest.json against its file's modification time. Classify as:
- Fresh —
mtime ≤ ingested_at - Stale —
mtime > ingested_at(new content exists, not yet ingested) - Missing — source file no longer exists
Step 2: Index refresh
obsidian-wiki memory index --vault "$OBSIDIAN_VAULT_PATH"
This reconciles index.md against the pages on disk under the memory lock — missing entries added, entries for deleted pages removed, the owner's own sections left untouched. Note added/removed from the output for the log line in Step 6. Do not enumerate pages with find and edit the index by hand.
Step 3: hot.md update
obsidian-wiki memory hot --vault "$OBSIDIAN_VAULT_PATH"
Recent Activity, Active Threads, and Flagged Contradictions are regenerated from the log, the todo index, and page frontmatter; ## Key Takeaways carries across unchanged. If the takeaways are older than ~48h and the vault has changed materially since, refresh them: read the 10 most recently updated pages and pass a fresh ~500-word snapshot with --takeaways - on stdin. Otherwise leave them — a rebuild without new takeaways is cheap and correct.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 18d ago Changed · -4 lines · -66 tokens per session 71a7f55688ed
- 1mo ago Changed · +35 lines · +8 tokens per session scan A → B 45f5a943a8dc
- 1mo ago First seen · 224 lines · 109 tokens per session scan A 3cce85501196
daily-update is a skill published in the GitHub repository Ar9av/obsidian-wiki (3,618 stars, last pushed 4d ago), licensed MIT. It adds 51 tokens to every session and 2,647 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it B with 1 finding (asks for root). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
llm-wiki
Maintain a personal team knowledge base using the LLM Wiki pattern — incremental ingest, query, and lint operations on a layered wiki architecture.
obsidian-web-mcp
Set up or maintain an Obsidian vault with a desktop ChatGPT web sidebar community plugin and a vault-scoped MCP server exposed through ngrok. Use when asked to configure Obsidian plugins, install or update a ChatGPT web sidebar, expose an Obsidian vault to ChatGPT/MCP, add read/write vault tools, add Agent…
obsidian-setup-consultant
Use this skill whenever the user wants to install, configure, migrate, design, or connect Obsidian as a second brain, knowledge base, cloud-synced vault, or AI/Hermes-readable memory. It is especially important when the user asks for an Obsidian setup prompt, vault architecture, folder structure, plugin…
llmwiki
Build and use a persistent, citation-traceable knowledge wiki from documents, research papers, notes, or project documentation. Use for llmwiki projects, retrieving reusable evidence for an agent task, or compiling a corpus for repeated questions. A one-off file read or live web search does not need a wiki.
knowledge-base-management
A lifecycle system for managing an Obsidian knowledge base, which is a folder of linked notes. It organizes raw material, AI-maintained wiki pages, and generated views into separate layers.
llm-wiki
Build and maintain a persistent, interlinked Obsidian-compatible markdown wiki using Karpathy's LLM Wiki pattern. Extension-backed with auto-generated metadata, guardrails, and 14 custom tools (+3 opt-in agent-trajectory tools).