Skills › Productivity & Integrations › Notes & PKM
obsidian-cli
Use the Obsidian CLI to read, create, search, and manage vault content, or to develop and debug Obsidian plugins and themes from the command line.
The full skill
—
name: obsidian-cli
description: "Use the Obsidian CLI to read, create, search, and manage vault content, or to develop and debug Obsidian plugins and themes from the command line."
risk: unknown
source: "https://github.com/kepano/obsidian-skills"
date_added: "2026-03-21"
—
# Obsidian CLI
Use the `obsidian` CLI to interact with a running Obsidian instance. Requires Obsidian to be open.
## When to Use
– Use when managing vault content through the Obsidian CLI.
– Use when developing or debugging Obsidian plugins and themes from the command line.
– Use when the user wants shell-driven interaction with a running Obsidian app.
## Command reference
Run `obsidian help` to see all available commands. This is always up to date. Full docs: https://help.obsidian.md/cli
## Syntax
**Parameters** take a value with `=`. Quote values with spaces:
“`bash
obsidian create name="My Note" content="Hello world"
“`
**Flags** are boolean switches with no value:
“`bash
obsidian create name="My Note" silent overwrite
“`
For multiline content use `\n` for newline and `\t` for tab.
## File targeting
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.md`
## Vault targeting
Commands target the most recently focused vault by default. Use `vault=<name>` as the first parameter to target a specific vault:
“`bash
obsidian vault="My Vault" search query="test"
“`
## Common patterns
“`bash
obsidian read file="My Note"
obsidian create name="New Note" content="# Hello" template="Template" silent
obsidian append file="My Note" content="New line"
obsidian search query="search term" limit=10
obsidian daily:read
obsidian daily:append content="- [ ] New task"
obsidian property:set name="status" value="done" file="My Note"
obsidian tasks daily todo
obsidian tags sort=count counts
obsidian 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.
## Plugin development
### Develop/test cycle
After making code changes to a plugin or theme, follow this workflow:
1. **Reload** the plugin to pick up changes:
“`bash
obsidian plugin:reload id=my-plugin
“`
2. **Check for errors** — if errors appear, fix and repeat from step 1:
“`bash
obsidian dev:errors
“`
3. **Verify visually** with a screenshot or DOM inspection:
“`bash
obsidian dev:screenshot path=screenshot.png
obsidian dev:dom selector=".workspace-leaf" text
“`
4. **Check console output** for warnings or unexpected logs:
“`bash
obsidian dev:console level=error
“`
### Additional developer commands
Run JavaScript in the app context:
“`bash
obsidian eval code="app.vault.getFiles().length"
“`
Inspect CSS values:
“`bash
obsidian dev:css selector=".workspace-leaf" prop=background-color
“`
Toggle mobile emulation:
“`bash
obsidian dev:mobile on
“`
Run `obsidian help` to see additional developer commands including CDP and debugger controls.
## Limitations
– Use this skill only when the task clearly matches the scope described above.
– Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
– Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.