# Obsidian CLI

> Obsidian CLI

- Skill: `jerryyrliu-jpg/obsidian-cli` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add jerryyrliu-jpg/obsidian-cli`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jerryyrliu-jpg/obsidian-cli/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: jerryyrliu-jpg (https://skillmd.com/u/jerryyrliu-jpg)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/jerryyrliu-jpg/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

Reload a plugin after code changes — essential for the develop/test cycle:

```bash
obsidian plugin:reload id=my-plugin
```

Run JavaScript in the app context:

```bash
obsidian eval code="app.vault.getFiles().length"
```

Check for errors and console output:

```bash
obsidian dev:errors
obsidian dev:console
obsidian dev:console level=error
```

Take a screenshot for visual testing:

```bash
obsidian dev:screenshot path=screenshot.png
```

Inspect DOM and CSS:

```bash
obsidian dev:dom selector=".workspace-leaf" text
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.

---

## 🛡️ 聯邦安全與資源規範 (v3.5 Hardened)
1. **RAM 監控**: 執行任務前必須檢查系統 Free Memory > 20% (2GB)。
2. **自動銷毀**: 臨時對話 Session (-p) 獲取結果後必須即刻銷毀。
3. **運算優化**: 後台與自動化任務優先選用 `gemini-2.5-flash-lite`。

