configs/claude-code/skills/obsidian/SKILL.md
Obsidian vault operations using the obsidian cli
npx skillsauth add jimweller/dotfiles obsidianInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The official Obsidian CLI (v1.12+) controls Obsidian from the terminal via IPC with a running desktop instance.
Read
references/command-reference.mdfor specific flags, output formats, or subcommands. It covers all 130+ commands with full parameter tables.
| Requirement | Details | | ---------------- | ------------------------------------------------- | | Obsidian Desktop | v1.12.0+ | | CLI enabled | Settings, Command line interface, Toggle ON | | Obsidian running | Desktop app must be running for CLI to work (IPC) |
All parameters use key=value syntax. Quote values containing spaces.
obsidian <command> [subcommand] [key=value ...] [flags]
Target a specific vault by making it the first argument:
obsidian "My Vault" daily:read
obsidian "Work Notes" search query="meeting"
If omitted, the CLI targets the most recently active vault.
The CLI provides 130+ commands across these groups:
| Group | Key Commands | Purpose |
| ---------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| files | read, create, append, prepend, move, rename, delete, files, folders, file, random | Note CRUD and file discovery |
| daily | daily, daily:read, daily:append, daily:prepend, daily:path | Daily note operations |
| search | search, search:context | Full-text search; search:context returns matching lines |
| properties | properties, property:read, property:set, property:remove, aliases | Frontmatter/metadata management |
| tags | tags, tag | Tag listing, counts, and filtering |
| tasks | tasks, task | Task querying, filtering, and toggling |
| links | backlinks, links, unresolved, orphans, deadends | Graph and link analysis |
| bookmarks | bookmarks, bookmark | List and add bookmarks |
| templates | templates, template:read, template:insert | Template listing, rendering, insertion |
| plugins | plugins, plugin, plugin:enable, plugin:disable, plugin:install, plugin:uninstall, plugins:restrict | Plugin management |
| sync | sync, sync:status, sync:history, sync:read, sync:restore, sync:deleted | Obsidian Sync operations |
| themes | themes, theme, theme:set, theme:install, theme:uninstall | Theme management |
| snippets | snippets, snippets:enabled, snippet:enable, snippet:disable | CSS snippet management |
| commands | commands, command, hotkeys, hotkey | Execute Obsidian commands by ID; inspect hotkeys |
| bases | bases, base:query, base:views, base:create | Obsidian Bases (v1.12+ database feature) |
| history | history, history:list, history:read, history:restore | File version recovery (File Recovery plugin) |
| workspace | workspace, tabs, tab:open | Workspace layout and tab management |
| diff | diff | Compare local vs sync file versions |
| dev | eval, dev:screenshot, dev:debug, dev:console, dev:errors, dev:css, dev:dom, devtools | Developer/debugging tools |
| vault | vault, vaults, version, reload, restart | Vault info and app control |
| other | outline, wordcount, recents | Utility commands |
obsidian read path="folder/note.md"
obsidian create path="folder/note" content="# New Note"
obsidian create path="folder/note" template="meeting-notes"
obsidian append path="folder/note.md" content="New paragraph"
obsidian prepend path="folder/note.md" content="Top content"
obsidian move path="old/note.md" to="new/note.md"
obsidian delete path="folder/note.md"
obsidian delete path="folder/note.md" permanent
obsidian daily # Open today's daily note
obsidian daily:read # Print content of today's note
obsidian daily:append content="- [ ] New task"
obsidian daily:prepend content="## Morning Notes"
obsidian search query="project alpha"
obsidian search query="TODO" path="projects" limit=10
obsidian search query="meeting" format=json
obsidian search query="urgent" case
obsidian properties path="note.md"
obsidian property:set path="note.md" name="status" value="active"
obsidian property:read path="note.md" name="status"
obsidian property:remove path="note.md" name="draft"
obsidian tags counts sort=count
obsidian tag name="project/alpha"
obsidian tasks # All tasks
obsidian tasks all # All tasks
obsidian tasks done # Completed only
obsidian tasks daily # Tasks in today's daily note
obsidian task path="note.md" line=12 toggle
obsidian tasks | grep "\[ \]" # Filter to incomplete only
obsidian eval code="app.vault.getFiles().length"
obsidian dev:screenshot path="folder/screenshot.png"
obsidian dev:debug on
obsidian dev:console limit=20
obsidian dev:errors
Running obsidian with no arguments launches an interactive TUI.
obsidian daily:append content="## $(date '+%H:%M') -- Status Update
- Completed: feature branch merge
- Next: code review for PR #42
- Blocked: waiting on API credentials"
obsidian create path="projects/new-feature" template="project-template"
obsidian property:set path="projects/new-feature.md" name="status" value="planning"
obsidian property:set path="projects/new-feature.md" name="created" value="$(date -I)"
obsidian daily:append content="- Started [[projects/new-feature|New Feature]]"
obsidian files total # Total file count
obsidian tags counts sort=count # Most used tags
obsidian tasks | grep "\[ \]" # Incomplete tasks across vault
obsidian orphans # Notes needing integration
obsidian unresolved # Broken links to fix
obsidian search query="meeting notes" format=json | jq '.[]'
obsidian read path="meetings/standup.md" | grep "Action item"
obsidian sync:status # Check sync health
obsidian sync:history path="important.md"
obsidian sync:restore path="important.md" version=3
obsidian commands | grep "graph"
obsidian command id="graph:open"
obsidian command id="app:open-settings"
obsidian vault returns the filesystem path of the active vault. Use this path with Read, Edit, and Write tools to modify markdown files directly instead of delete/recreate cycles through the CLI.
obsidian vault # returns: path /Users/.../ObsidianVault/MCG
Frontmatter (properties, tags, dates) is plain YAML between --- fences. No special format. Default frontmatter for new notes:
---
tags:
- topic-a
- topic-b
created: 2026-04-14
---
Tags should be lowercase, hyphenated. Created date is ISO 8601 (YYYY-MM-DD). Read/Edit/Write handles everything including metadata. Use the CLI for search, vault operations, and commands that interact with the Obsidian app (sync, plugins, templates, eval).
folder/note.md, not absolute filesystem paths.create paths omit .md. The extension is added automatically.move requires full target path including .md extension.grep, awk, sed, jq.format=json on search for JSON array of file paths.daily:prepend inserts content after frontmatter, not at byte 0.eval to run arbitrary JavaScript against the Obsidian API (app.*).template:insert inserts into the currently active file in the Obsidian UI. To create a file from a template via CLI, use obsidian create path="..." template="...".property:set stores list values as strings. For proper array fields, edit frontmatter directly or use eval.eval requires single-line JavaScript. For multiline, write to a temp file first.testing
Search saved session transcripts for past decisions, actions, errors, and context that has left the current conversation window.
data-ai
Review a PRD for defects via Claude opus subagent.
development
Markdown authoring guidelines for formatting, code blocks, and structure. Use when writing or editing markdown files.
development
--- name: md-style description: README style guide for concise, direct documentation. Use when writing or editing README files. ß--- <!-- markdownlint-disable-file MD041 --> # README Style Guide Write concise, direct README files for experienced engineers. ## Principles - **No fluff** - Skip tables of contents, verbose explanations, development history - **No roadmaps** - Document current state only, not plans or decisions. Readme is an engineering specification. Not a project plan or chan