Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM. Use when the user asks to interact with their Obsidian vault, manage notes, search vault content, perform vault operations from the command line, or develop and debug Obsidian plugins and themes.
Use the obsidian-cli command to interact with a running Obsidian instance. Requires Obsidian to be open.
Run obsidian-cli help to see all available commands. This is always up to date. Full docs: https://help.obsidian.md/cli
Parameters take a value with =. Quote values with spaces:
obsidian-cli create name="My Note" content="Hello world"
Flags are boolean switches with no value:
obsidian-cli create name="My Note" silent overwrite
For multiline content use \n for newline and \t for tab.
Many commands accept file or path to target a file. Without either, the active file is used.
file=<name> - resolves like a wikilink (name only, no path or extension needed)path=<path> - exact path from vault root, e.g. folder/note.mdCommands target the most recently focused vault by default. Use vault=<name> as the first parameter to target a specific vault:
obsidian-cli vault="My Vault" search query="test"
obsidian-cli read file="My Note"
obsidian-cli create name="New Note" content="# Hello" template="Template" silent
obsidian-cli append file="My Note" content="New line"
obsidian-cli search query="search term" limit=10
obsidian-cli daily:read
obsidian-cli daily:append content="- [ ] New task"
obsidian-cli property:set name="status" value="done" file="My Note"
obsidian-cli tasks daily todo
obsidian-cli tags sort=count counts
obsidian-cli backlinks file="My Note"
Use --copy on any command to copy output to clipboard. Use silent to prevent files from opening. Use total on list commands to get a count.
After making code changes to a plugin or theme, follow this workflow:
obsidian-cli plugin:reload id=my-plugin
obsidian-cli dev:errors
obsidian-cli dev:screenshot path=screenshot.png
obsidian-cli dev:dom selector=".workspace-leaf" text
obsidian-cli dev:console level=error
Run JavaScript in the app context:
obsidian-cli eval code="app.vault.getFiles().length"
Inspect CSS values:
obsidian-cli dev:css selector=".workspace-leaf" prop=background-color
Toggle mobile emulation:
obsidian-cli dev:mobile on
Run obsidian-cli help to see additional developer commands including CDP and debugger controls.