Help us improve
Share bugs, ideas, or general feedback.
From Obsidian Vault
Controls the Obsidian desktop app via its CLI: open notes, query backlinks, read/set properties, run Base queries, list tasks, take screenshots, reload plugins, and move/rename files with live wikilink updates.
npx claudepluginhub luffysolution-svg/obsidian-vault-mcpHow this skill is triggered — by the user, by Claude, or both
Slash command
/obsidian-vault:obsidian-cliThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The `obsidian` CLI is available when Obsidian 1.12.7+ is running and the CLI is on PATH. Check availability with `Bash` → `obsidian --version`.
Interact with Obsidian vaults via CLI to read, create, search, manage notes, tasks, properties. Supports plugin/theme dev with reloads, JS eval, error capture, screenshots, DOM inspection.
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.
Interact with Obsidian vaults via CLI to read/create/search notes, manage tasks/properties. Supports plugin dev with reloads, JS eval, error capture, screenshots, DOM/CSS inspection.
Share bugs, ideas, or general feedback.
The obsidian CLI is available when Obsidian 1.12.7+ is running and the CLI is on PATH. Check availability with Bash → obsidian --version.
All commands use the pattern: obsidian <command> [params] [flags]
Read note content:
obsidian read --path "folder/note.md"
Open a note in Obsidian:
obsidian open --path "folder/note.md"
Get backlinks (JSON):
obsidian backlinks --path "folder/note.md" --format json [--counts]
Get note properties (YAML frontmatter, JSON output):
obsidian properties --path "folder/note.md" --format json [--counts]
Read a single property:
obsidian property:read --name "status" --path "folder/note.md"
Set a property:
obsidian property:set --name "status" --value "done" --type "text" --path "folder/note.md"
Remove a property:
obsidian property:remove --name "status" --path "folder/note.md"
Query a Base file:
obsidian base:query --path "bases/literature.base" --view "Main" --format json
List tasks in a note:
obsidian tasks --path "folder/note.md" --format json [--todo] [--done]
Take a screenshot:
obsidian screenshot --output "shot.png"
Reload a plugin:
obsidian plugin:reload --id "obsidian-git"
Move a note:
obsidian move --path "old/note.md" --to "new/note.md"
Rename a note:
obsidian rename --path "folder/note.md" --name "new-name.md"
Use these instead of filesystem mv/rename when Obsidian is running — they update all internal wikilinks automatically.
All --format json commands return a JSON array of objects. Parse with Python:
import json, subprocess
result = subprocess.run(["obsidian", "backlinks", "--path", "note.md", "--format", "json"], capture_output=True, text=True)
data = json.loads(result.stdout)
If stdout contains "Vault not found." or similar error text, treat as failure even if exit code is 0. Check returnCode != 0 and scan stdout for known error patterns.
Do not use shell=True on Windows — pass the executable path directly.
obsidian open --path .... Must not modify files.obsidian rename or obsidian move, then verify the command output. Must not use raw filesystem rename while Obsidian is running.obsidian tasks --format json --todo and parse JSON. Must treat error text in stdout as failure even if exit code is zero.当 Obsidian 桌面运行时,所有文件移动、重命名、属性读写、任务查询等操作优先通过 obsidian CLI 完成,以确保内部双链自动更新。使用 Bash 工具执行上述命令,解析 --format json 输出。