From obsidian-cli
Runs Obsidian CLI commands for vault ops: search, backlinks, tags, tasks, properties, daily notes, file read/write/create/move. Use for indexed features; fallback to file tools otherwise.
How this skill is triggered — by the user, by Claude, or both
Slash command
/obsidian-cli:obsidian-cliThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Use CLI** when you need Obsidian's index or app features:
Use CLI when you need Obsidian's index or app features: search, backlinks, links, tags, tasks, properties, bases, templates, outline, orphans, unresolved links
Use file tools (Read/Write/Edit/Grep/Glob) for: simple file read/write, bulk text replacement, grep across files — no app dependency
Rule of thumb: if Obsidian's index adds value, use CLI. If it's plain text manipulation, use file tools.
obsidian <command> [param=value ...] [flag ...]
vault="My Vault" as first param, or run from inside vault dirpath=exact/path.md (vault-relative) vs file=name (link-style resolution)key=value — quote values with spaces: name="My Note"= — e.g. silent, overwrite, counts, total\n for newline, \t for tab in content stringsformat=json (search, base:query), format=tsv (properties, tags)--copy to copy outputobsidian read path=<path> # read file content
obsidian append path=<path> content="<text>" # append to file
obsidian prepend path=<path> content="<text>" # prepend after frontmatter
obsidian create name=<name> content="<text>" silent # create file (safe — won't overwrite)
obsidian create name=<name> template=<template> overwrite silent # create from template
obsidian move path=<from> to=<to> # move/rename file
obsidian delete path=<path> # move to system trash (safe)
Gotchas:
create without silent opens the file in Obsidian's UI — always add silent during agent operations.create doesn't auto-create directories — use mkdir -p via Bash first if the parent folder doesn't exist.create with template= may place the file in the template's configured folder, ignoring path=. Verify the actual path with search or files after creation.obsidian daily # open today's daily note
obsidian daily:read # read daily note content
obsidian daily:append content="<text>" # append to daily note
obsidian daily:prepend content="<text>" # prepend to daily note
obsidian property:set name=<key> value=<val> path=<path> # set property
obsidian property:set name=<key> value=<val> type=<type> path=<path> # set with explicit type
obsidian property:read name=<key> path=<path> # read one property
obsidian property:remove name=<key> path=<path> # remove property
obsidian properties path=<path> # list all properties
obsidian properties path=<path> format=tsv # list as TSV (key\tvalue)
obsidian search query="<text>" # search vault (file paths)
obsidian search query="<text>" path=<folder> limit=10 # scoped search
obsidian search query="<text>" format=json # JSON array of paths
obsidian search query="<text>" format=json matches # structured JSON with line numbers (preferred)
obsidian search query="<text>" matches # text format with matching lines
Tip: format=json matches returns [{"file":"path","matches":[{"line":N,"text":"..."}]}] — use this for programmatic search.
obsidian tags all counts # list ALL vault tags with counts
obsidian tags all counts sort=count # sorted by frequency
obsidian tag name=<tag> # files with specific tag
obsidian tasks all todo # vault-wide open tasks
obsidian tasks all done # vault-wide completed tasks
obsidian tasks daily # tasks from daily note
obsidian tasks path=<path> # tasks in file/folder
obsidian task ref="<path>:<line>" toggle # toggle task status
obsidian task ref="<path>:<line>" done # mark done
Note: tags without all lists tags for the active/specified file only.
Note: tasks without a scope (all, daily, path=) defaults to the active file — use tasks all for vault-wide results.
obsidian backlinks path=<path> # incoming links to file
obsidian backlinks path=<path> counts # with link counts
obsidian links path=<path> # outgoing links from file
obsidian unresolved # broken/unresolved links
obsidian orphans # files with no incoming links
obsidian deadends # files with no outgoing links
obsidian files folder=<path> ext=md # list files in folder
obsidian folders # list all folders
obsidian outline path=<path> # heading structure of file
obsidian bases # list .base files
obsidian base:query path=<path> format=json # query a base
obsidian base:query path=<path> view=<name> format=json # query specific view
obsidian templates # list available templates
obsidian template:read name=<name> # read template source
obsidian template:read name=<name> resolve # render with variables filled
Never run without explicit user request:
eval — arbitrary code executiondelete permanent — bypasses trashplugin:install / plugin:uninstall — modifies plugin statedev:cdp — Chrome DevTools protocol accessPrefer safe patterns:
append / prepend over full file overwritecreate without overwrite flag is safe (won't replace existing files)obsidian vault # confirm CLI connection — returns vault name, path, file count
obsidian version # show CLI version (e.g. "1.12.1 (installer 1.11.4)")
| Symptom | Likely cause | Action |
|---|---|---|
obsidian version fails | CLI not installed or not on PATH | Fall back to file tools |
| Command hangs or times out | Obsidian app not running | Start Obsidian or use file tools |
| "Unknown command" | CLI version too old | Run obsidian help to check available commands |
| Empty results from search/tags | Vault index not ready | Wait a moment, retry, or use Grep as fallback |
General fallback: if CLI is unavailable, use Read/Write/Edit/Grep/Glob for file operations. The CLI requires the Obsidian desktop app to be running.
npx claudepluginhub jackal092927/obsidian-official-cli-skills --plugin obsidian-cliExecutes Obsidian CLI commands to read/write/append notes, search vaults, list/count files, manage tasks, move/rename notes, and find orphans/broken links.
Interact with an Obsidian vault via its CLI — read, create, search notes, manage tasks and properties. Also supports plugin/theme development with reload, error capture, screenshots, and DOM inspection commands.
Interact with Obsidian vaults to read, create, search, and manage notes, tasks, and properties. Also supports plugin/theme development with reload, error capture, screenshots, and DOM inspection.