obsidian-cli
Verifiedby kepano · Updated Apr 16, 2026
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.
See It In Action
Let me start by reading the project files and then running the diagnostic commands.
Good, I have full context. Now let me run the diagnostic commands against the running Obsidian instance.
The obsidian CLI isn't available in this environment — there's no running Obsidian instance to connect to. Let me work with the project files to produce the diagnosis report based on the available evidence.
No plugin source (CSS/JS) is bundled here — only the manifest. I can't do live DOM/CSS inspection or take screenshots without the obsidian CLI or a running instance. Let me compile a diagnosis report from all the available evidence and give you clear next steps.
I don't have the obsidian CLI or a running Obsidian instance available in this environment, so I can't execute the live diagnostic commands or capture screenshots. However, I can put together a thorough diagnosis report from the evidence in the project files. Here's what I've found:
I can't reach the running Obsidian instance from this environment (the obsidian CLI isn't installed), so live DOM/CSS inspection and screenshots aren't possible here. But the bug report and changelog give plenty to work with. Let me write you a diagnosis report with the root cause analysis and a fix recommendation you can verify immediately.
Here's the quick rundown before your enablement session:
Diagnosis: CSS Regression in doany-docs-plugin v2.4.0
Root cause: The v2.4.0 "refined task styling for custom themes" change is almost certainly setting opacity: 0 (or visibility: hidden / display: none) on .task-list-item-checkbox. This explains exactly why:
- ✅ Checkboxes still exist in the DOM
- ✅ Click-to-toggle still works
- ❌ But nothing is visually rendered
- ✅ Rolling back to v2.3.1 fixes it
Instant hotfix (no plugin edit needed)
In Obsidian → Settings → Appearance → CSS snippets, create fix-checkboxes.css:
.task-list-item-checkbox {
opacity: 1 !important;
visibility: visible !important;
display: inline-block !important;
}
Enable it — checkboxes come back immediately.
What I couldn't do
The obsidian CLI isn't installed in this environment, so I couldn't capture live screenshots or DOM/CSS output. The report (diagnosis-report.md, saved in the workspace) includes the exact 6 commands to run on the vault machine to get screenshot evidence and confirm the specific CSS property before the session.
Recommendation
Apply the CSS snippet hotfix now, verify checkboxes are back, then file the bug upstream with the plugin author for a proper fix in v2.4.1. Pin the plugin version to avoid auto-update surprises on enablement days.
External Tools
| Tool | Type |
|---|---|
| obsidian | binary |
Permissions
| Scope | Description |
|---|---|
| filesystem:read | |
| filesystem:write | |
| process:spawn |
SKILL.md
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:
obsidian create name="My Note" content="Hello world"
Flags are boolean switches with no value:
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:
obsidian vault="My Vault" search query="test"
Common patterns
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:
- Reload the plugin to pick up changes:
obsidian plugin:reload id=my-plugin - Check for errors — if errors appear, fix and repeat from step 1:
obsidian dev:errors - Verify visually with a screenshot or DOM inspection:
obsidian dev:screenshot path=screenshot.png obsidian dev:dom selector=".workspace-leaf" text - Check console output for warnings or unexpected logs:
obsidian dev:console level=error
Additional developer commands
Run JavaScript in the app context:
obsidian eval code="app.vault.getFiles().length"
Inspect CSS values:
obsidian dev:css selector=".workspace-leaf" prop=background-color
Toggle mobile emulation:
obsidian dev:mobile on
Run obsidian help to see additional developer commands including CDP and debugger controls.
FAQ
What does obsidian-cli do?
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.
When should I use obsidian-cli?
Use it when you need a repeatable workflow that produces text report.
What does obsidian-cli output?
In the evaluated run it produced text report.
How do I install or invoke obsidian-cli?
Ask the agent to use this skill when the task matches its documented workflow.
Which agents does obsidian-cli support?
Agent support is inferred from the source, but not explicitly declared.
What tools, channels, or permissions does obsidian-cli need?
It uses obsidian; channels commonly include text; permissions include filesystem:read, filesystem:write, process:spawn.
Is obsidian-cli safe to install?
Static analysis marked this skill as medium risk; review side effects and permissions before enabling it.
How is obsidian-cli different from an MCP or plugin?
A skill packages instructions and workflow conventions; tools, MCP servers, and plugins are dependencies the skill may call during execution.
Does obsidian-cli outperform not using a skill?
About obsidian-cli
When to use obsidian-cli
When you need to read, create, search, or update notes and tasks in an Obsidian vault via CLI commands. When you want to automate vault operations such as setting properties, checking backlinks, or working with daily notes. When developing or debugging Obsidian plugins or themes using reload, console, error, screenshot, or DOM inspection commands.
When obsidian-cli is not the right choice
When Obsidian is not installed or not running, since the skill depends on a live Obsidian instance and its CLI. When the task does not involve Obsidian vault interaction or Obsidian-specific plugin/theme development.
What it produces
Produces text report.