
Obsidian Cli
Drive Obsidian vault operations—notes, search, tasks, properties, and plugin/theme dev—from the terminal while Obsidian is running.
Overview
Obsidian CLI is an agent skill most often used in Build (also Idea, Grow) that runs Obsidian’s terminal commands to read, create, search, and manage vault notes and plugin workflows while the app is open.
Install
npx skills add https://github.com/kepano/obsidian-skills --skill obsidian-cliWhat is this skill?
- Read, create, search, and manage notes, tasks, and properties via `obsidian` CLI with `obsidian help` as live reference
- Supports `file=` wikilink-style targets and `path=` exact vault paths; optional `vault=` for multi-vault setups
- Parameter syntax uses `name=value` with quoting; boolean flags like `silent` and `overwrite` for creates
- Plugin and theme development helpers: reload plugins, run JavaScript, capture errors, screenshots, DOM inspect
- Requires a running Obsidian instance—commands target the focused vault by default
Adoption & trust: 36k installs on skills.sh; 34.9k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want your coding agent to update or query Obsidian notes and dev tooling without manual copy-paste between the vault and the terminal.
Who is it for?
Builders who live in Obsidian for specs and research and want Claude Code, Cursor, or Codex to mutate or query the vault from the shell.
Skip if: Headless servers without Obsidian running, or workflows that need bulk migration without the desktop app open.
When should I use this skill?
User asks to interact with an Obsidian vault, manage notes, search vault content, perform vault operations from the command line, or develop and debug Obsidian plugins and themes.
What do I get? / Deliverables
Your agent issues documented `obsidian` commands with correct `file`, `path`, and `vault` targeting so vault content and plugin debug loops stay in sync with implementation work.
- Executed vault commands (created or updated notes)
- Search results or task/property changes in Obsidian
- Plugin debug artifacts when using dev commands
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Vault CLI access is an integration layer that connects your coding agent to personal knowledge and plugin tooling during product work. The skill documents the `obsidian` command interface and vault targeting, not Obsidian app UI design.
Where it fits
Create or append competitor research notes with `obsidian create` while iterating in the IDE.
Link implementation tasks in vault notes your agent updates after each coding session.
Reload plugins and capture errors while an agent edits an Obsidian extension.
Search and refactor note properties for launch docs or support playbooks.
How it compares
CLI bridge to a local Obsidian instance—not a cloud notes API or generic Markdown file editor outside Obsidian.
Common Questions / FAQ
Who is obsidian-cli for?
Solo makers and plugin/theme authors who use Obsidian as a knowledge base and want agent-driven vault operations from the command line.
When should I use obsidian-cli?
In Idea for capturing research notes; in Build when syncing specs or tasks into the vault; in Grow when searching and updating content; when developing plugins and need reload, JS exec, or DOM inspect commands.
Is obsidian-cli safe to install?
It implies shell access to your machine and a running Obsidian app—check the Security Audits panel on this page and restrict agent permissions to vaults you trust.
SKILL.md
READMESKILL.md - Obsidian Cli
# Obsidian CLI Use the `obsidian` CLI to interact with a running Obsidian instance. Requires Obsidian to be open. ## 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.