120 lines
3.4 KiB
Markdown
120 lines
3.4 KiB
Markdown
---
|
|
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.
|