Obsidian
Twenty Obsidian knowledge-work skills for Claude Code: connect, contradict, emerge, trace, ghost, weekly-learnings.
npx -y skills add slogsdon/skills-vault-knowledge --skill obsidianAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 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
General-purpose Obsidian vault skill — use this whenever the user wants to do anything with their vault or personal notes. Covers reading notes by name, searching vault content, creating new notes, appending to existing ones, checking backlinks, and working with daily notes. Trigger immediately on phrases like: "look up my note on X", "add this to my vault", "what does my note say about Y", "find notes about Z", "log this to my vault", "update my daily note", "create a note for...", "what links to X", "search my vault for...", "show me what I know about...", "check my notes on...", or any time the user mentions Obsidian, their vault, or personal notes. If the user is asking about something they might have written down, reach for this skill first.
SKILL.md
6.8 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
Obsidian Vault Skill
Use the obsidian CLI to interact with the Personal vault — read, search, create, append, backlink, and daily note operations — always via bash with single quotes.
Don't: use double quotes in obsidian CLI arguments — they silently fail. Don't use daily:append — it's unreliable; use daily:read to get the note name, then obsidian append file='<name>'.
CLI reference
Run all commands via bash. Always use single quotes for argument values — double quotes cause a known parser issue and will silently fail.
# Read a note by its wikilink name (no path, no .md extension)
obsidian read file='Note Name'
# Search the vault
obsidian search query='search term' limit=10
# Create a new note (silent suppresses auto-open in Obsidian)
obsidian create name='Note Name' content='# Title\n\nContent here' silent
# Append to an existing note
obsidian append file='Note Name' content='New content to add'
# Get everything that links to a note
obsidian backlinks file='Note Name'
# Read today's daily note (to get its name/path)
obsidian daily:read
# Append to the daily note: read it first to get the note name, then use append
# daily:append is unreliable — use append file='...' with the actual note name instead
obsidian append file='2026-04-16' content='Entry text'
# List all tags or open tasks across the vault
obsidian tags
obsidian tasks
Obsidian must be running for any CLI command to work. If you get a connection error, ask the user to open Obsidian first.
Safety: the active-file fallback (read this before any delete)
The CLI silently falls back to the active file when a selector (name= / file=) doesn't resolve to a real note. It does not error — it acts on whatever note is currently focused in Obsidian. This makes a mistyped selector destructive:
obsidian delete name='Untitled' permanentdid not deleteUntitled.md— it permanently deleted the active note (an unrelated draft), becausename=failed to resolve and fell through to the active file.obsidian read name='...'can likewise return the active note's content instead of the note you named, making "verification" misleading.
Rules:
- Never delete (or run any destructive op) by
name=. Always target the exact relative path:obsidian delete path='folder/Note.md'. Exact paths don't fuzzy-match and won't fall back. - Drop
permanentso deletes go to trash and stay recoverable. The vault is git-tracked, so a wrong delete of a committed note is also recoverable withgit -C "$VAULT" checkout -- 'path/Note.md'. - Verify by exact path, not
read name=. To confirm a write landed, check the file at its known path (wc -l "$VAULT/Note.md") — don't trustobsidian read name=, which may show the active file. - There is no
--help.obsidian create --help(or any unknown args) creates a strayUntitled.md. Useobsidian helpfor usage. Remove an accidental stray by its exact path. - Bracket destructive ops with
git status. Rungit -C "$VAULT" status --porcelainbefore and after, so an unintended deletion shows up immediately as aDline you can revert.
Interpreting requests
The user's phrasing is often loose — your job is to figure out which operation(s) to run.
Reading a specific note: If the user gives you a note name or enough context to guess it, try obsidian read directly. If the exact name is unclear, search first then read the best match.
Searching: When the user wants to find notes about a topic, or isn't sure which note they mean, search with a short keyword query. Return the matching paths and briefly describe what each is, then offer to read any of them.
Logging / capturing: When the user wants to save something new ("log this", "capture this idea", "add a note about X"), use obsidian create with a clear, descriptive note name — think about how they'd search for it later.
Updating an existing note: When the user wants to add to something they already have, find it with search if needed, then obsidian append. Don't overwrite with create unless they explicitly ask to replace the note.
Daily note: Requests like "log to today", "add this to my daily", or "what's in my daily note" → first run obsidian daily:read to get today's note name, then use obsidian append file='<note-name>' content='...' to add to it. The daily:append command is unreliable and should be avoided.
Tracing connections: "What links to X" or "what references this note" → obsidian backlinks file='Note Name'.
Common multi-step patterns
- "What do I know about X?" → search → read top result(s) → summarize key points
- "Find my note on X and add Y to it" → search → confirm which note → append
- "Create a note summarizing our conversation about X" → synthesize content → create with good name and structure
- "What notes reference X?" → backlinks
- "Add this to today's note" → daily:read to get the note name → append to it by name
Output conventions
- Reads: Return the note content as-is, preserving headings and structure. No need to paraphrase.
- Searches: List matching paths. If names are ambiguous, add a one-line description of each.
- Creates / appends: Confirm what was written, the note name, and where in the vault it lives.
- Backlinks: One note per line. If none, say so.
Note naming
When creating notes, use title case and be descriptive. Good names are searchable: Qwen CLI Quoting Bug, Developer Advocacy 2026 OKRs, CatalystForms Launch Checklist. Avoid generic names like Ideas or Notes.
Post-write protocol
After any create or append operation, commit the change:
VAULT="$HOME/Library/Mobile Documents/iCloud~md~obsidian/Documents/Personal"
git -C "$VAULT" add -A && git -C "$VAULT" commit -m "docs: [brief description of what was written]"
Use conventional commit style. Examples:
docs: log session entry 14:32docs: write today's focus to 2026-04-17 daily notedocs: append EOD audit to 2026-04-17docs: create note Qwen CLI Quoting Bug
Gives 0 of the 12 instructions most note taking skills give in ~1.5k tokens
Counted across 686 of the 876 authors here whose files we hold, read 2026-08-06
- include a visual element on every slidein 44 of 686, across 13 files
- use wikilinks for internal vault linksin 35 of 686, across 11 files
- commit to a single visual motif across every slidein 34 of 686, across 9 files
- read pptxgenjs guide before creating presentations from scratchin 30 of 686, across 6 files
- keep 0.5 inch minimum marginsin 30 of 686, across 7 files
- use subagents to visually inspect rendered slidesin 30 of 686, across 6 files
- re-verify affected slides after every fixin 27 of 686, across 5 files
- run content QA checks before declaring successin 26 of 686, across 3 files
- Use Markdown links for external URLs onlyin 26 of 686, across 10 files
- pick a bold topic specific color palettein 24 of 686, across 2 files
- read editing guide before editing existing presentationsin 23 of 686, across 1 file
- use one dominant color across all slidesin 23 of 686, across 1 file
Said here and by no other author read
- use single quotes for CLI arguments
- verify writes by exact file path
- target deletes by exact relative path
- drop permanent flag from delete commands
- run git status before and after destructive operations
- commit changes after any create or append operation
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.