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 wiki-switchgit 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/wiki-switch)<a href="https://agentmods.dev/skills/ar9av/obsidian-wiki/wiki-switch"><img src="https://agentmods.dev/badge/skills/ar9av/obsidian-wiki/wiki-switch/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/wiki-switch"><img src="https://agentmods.dev/badge/skills/ar9av/obsidian-wiki/wiki-switch.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Socket pass
- Snyk pass
- NVIDIA SkillSpector warn
SkillSpector: 1 finding, 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 6 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.00042 | $0.01259 |
| Opus 5.5 | $0.00017 | $0.00504 |
| Sonnet 5.5 | $0.00008 | $0.00252 |
| Haiku 4.5 | $0.00004 | $0.00126 |
Grade A, and why
wiki-switch scanned grade A with 0 findings 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 16d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 112 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Wiki Switch — Manage Multiple Vault Profiles
Global config dir. Every path below is relative to the global config dir, resolved per the
Config Resolution Protocol in llm-wiki/SKILL.md: $XDG_CONFIG_HOME/obsidian-wiki (default
~/.config/obsidian-wiki), or the legacy ~/.obsidian-wiki if that already exists on disk. Resolve
it once per invocation with:
CONFIG_DIR="$( [[ -d "$HOME/.obsidian-wiki" && ! -e "${XDG_CONFIG_HOME:-$HOME/.config}/obsidian-wiki" ]] && echo "$HOME/.obsidian-wiki" || echo "${XDG_CONFIG_HOME:-$HOME/.config}/obsidian-wiki" )"
Each vault is a complete config file at $CONFIG_DIR/config.<name>. The active vault is
whichever file $CONFIG_DIR/config symlinks to. Switching vaults means re-pointing that symlink.
Switch vs. inline targeting. /wiki-switch <name> changes your persistent default (re-points
the symlink, affecting all future requests). To touch a different vault for just one request without
changing your default, use the inline @name override in any request (e.g. @work save this,
wiki-query @personal about X). The @name override is handled by the Config Resolution Protocol
in llm-wiki/SKILL.md, not by this skill — it resolves $CONFIG_DIR/config.<name> for that one
invocation and never re-points the symlink.
Dispatch
Parse the invocation and route to the right section:
| Invocation | Action |
|---|---|
/wiki-switch <name> |
→ Switch |
/wiki-switch list |
→ List |
/wiki-switch show [name] |
→ Show |
/wiki-switch new <name> |
→ New |
/wiki-switch (no args) |
→ List (treat as list) |
@<name> … (inline, in any request) |
→ Not this skill — the Config Resolution Protocol resolves that vault for one invocation without re-pointing the symlink |
Switch (default action)
Activate a named vault profile.
- Verify
$CONFIG_DIR/config.<name>exists. If not, tell the user the vault doesn't exist and list what's available (run List). - Run:
ln -sf "$CONFIG_DIR/config.<name>" "$CONFIG_DIR/config" - Read
OBSIDIAN_VAULT_PATHfrom the newly active config. - Confirm to the user:
Switched to vault: <name> Vault path: <value of OBSIDIAN_VAULT_PATH from the config>
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.
- 16d ago Changed · -4 lines · -62 tokens per session c628ff76ac49
- 1mo ago First seen · 116 lines · 104 tokens per session scan A 0061608e7d97
wiki-switch is a skill published in the GitHub repository Ar9av/obsidian-wiki (3,610 stars, last pushed 2d ago), licensed MIT. It adds 42 tokens to every session and 1,259 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
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…
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-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).