Vault ops
Skill marsmike/agentic-toolkit/plugins/obsidian/skills/vault-ops
Vault-first toolkit for Claude Code — curated plugins over an Obsidian-compatible knowledge vault, governed by an explicit contract, gated by evals, continuously delivered.
npx -y skills add marsmike/agentic-toolkit --skill vault-opsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 10 days oldThe repository was created 10 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Read, create, edit, and search vault notes directly on the filesystem — CRUD, frontmatter, wikilinks, canvases, and Bases. Use when performing vault operations.
SKILL.md
2.9 KB, as published. Nobody here has run it
Vault Operations
Filesystem-first vault CRUD, per contract/KNOWLEDGE_API.md: the vault is plain
markdown, so Read/Write/Edit/Grep/Glob are first-class, not a fallback for when
some other tool is unavailable. No MCP server sits between an agent and the vault —
direct filesystem access beats that indirection by roughly 35× on token overhead.
Vault location
Resolve the vault before touching any path: TOOLKIT_VAULT env var, else ./vault
relative to the repo root (contract/PROFILE.md). Every path below is vault-relative.
Quick start
# Read a note
cat "$VAULT/03_Areas/Some-Area.md"
# Search by keyword or path
grep -rl "some term" "$VAULT/02_Projects" "$VAULT/03_Areas" "$VAULT/04_Resources"
# Ranked search (keyword + optional semantic) — see references/commands.md
uv run --project "$CLAUDE_PLUGIN_ROOT/scripts" python3 "$CLAUDE_PLUGIN_ROOT/scripts/search.py" "query" --top 10 --json
Create/edit notes with the Write/Edit tools directly — a new note is a file under the
right PARA folder (contract/VAULT_SCHEMA.md) with a YAML frontmatter block; an edit is
a normal text edit. There is no CLI layer to route through for either operation.
Frontmatter
Parse and write frontmatter tolerant of unknown fields — the field table in
contract/VAULT_SCHEMA.md is a floor, not a ceiling. Never reject a note or strip a
field for being unrecognized. scripts/vault_utils.py's read_frontmatter/
write_frontmatter implement this if you're scripting; by hand, just preserve whatever
YAML keys were already there.
Optional: the Obsidian desktop CLI
If the user has Obsidian running with Settings → General → Advanced → Command line
interface enabled, its obsidian binary offers the same operations plus live-app
niceties (daily notes, backlink queries against the actual graph, plugin dev tools). It
is an optional enhancement, never a requirement — everything in this skill works with
zero Obsidian process running. See commands.md if you want it,
including the one hard trap: the CLI exits 0 and prints an error string on stdout when
disabled — never trust its exit code, check the output.
References
- commands.md — optional Obsidian desktop CLI reference, syntax, its silent-failure trap
- markdown-syntax.md — wikilinks, callouts, embeds, properties, tags
- properties.md — standard frontmatter schemas
- json-canvas.md —
.canvasfile format - obsidian-bases.md —
.basefile format