/obsidian-cli
Use this skill whenever the user wants Claude to directly interact with their Obsidian vault — reading a note or daily note, writing or appending content, searching vault contents, counting or listing notes, managing tasks, moving or renaming files, finding orphaned notes or
$ npx -y skills add pablo-mano/Obsidian-CLI-skill --skill obsidian-cli --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/obsidian-cli
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use this skill whenever the user wants Claude to directly interact with their Obsidian vault — reading a note or daily note, writing or appending content, searching vault contents, counting or listing notes, managing tasks, moving or renaming files, finding orphaned notes or
SKILL.md
obsidian-cli.SKILL.mdname: obsidian-cli
version: "1.3.0"
description: >
Use this skill whenever the user wants Claude to directly interact with their
Obsidian vault — reading a note or daily note, writing or appending content,
searching vault contents, counting or listing notes, managing tasks, moving or
renaming files, finding orphaned notes or broken links. Without this skill, Claude
has no way to access vault data or execute vault operations. Treat any request that
implies "go into my vault and do X" as a trigger — the user is asking Claude to act,
not to explain. Also trigger for vault automation, CLI scripting, or cron-based
workflows involving Obsidian, managing sync history, querying Bases, restoring file
versions via history, managing bookmarks, or running JavaScript against the Obsidian
API. Skip for pure conceptual questions: how Obsidian's GUI works, navigating settings
menus, theme or plugin installation via the UI, iCloud/third-party sync conflicts,
general Dataview query syntax, keyboard shortcuts, or parsing vault files with external
scripts — anything where the user needs an explanation rather than Claude performing a
vault operation.
triggers:
- "obsidian"
- "vault"
- "daily note"
- "obsidian cli"
- "note"
- "append to"
- "prepend to"
- "search my vault"
- "create a note"
- "read note"
- "move note"
- "rename note"
- "delete note"
- "tasks in obsidian"
- "open tasks"
- "backlinks"
- "orphaned notes"
- "broken links"
- "frontmatter"
- "properties"
- "sync history"
- "obsidian bases"
- "file history"
Obsidian CLI
The official Obsidian CLI (released in v1.12, February 2026) lets you control every aspect of Obsidian from the terminal. It communicates with a running Obsidian desktop instance via IPC.
> Read `references/command-reference.md` when you need specific flags, output formats, or > subcommands for any command group. It covers all 130+ commands with full parameter tables > and has a table of contents at the top.
Prerequisites
| Requirement | Details | |---|---| | Obsidian Desktop | **v1.12.0+** | | CLI enabled | Settings → Command line interface → Toggle ON | | Obsidian running | The desktop app **must be running** for CLI to work (IPC) |
Platform Notes
- **macOS / Linux**: The `obsidian` binary is registered in PATH automatically when you enable CLI in settings.
- **Windows**: Requires an `Obsidian.com` redirector file placed alongside `Obsidian.exe`. **Must run with normal user privileges** — admin terminals produce silent failures.
- If colon subcommands (`property:set`, `daily:append`, etc.) with parameters return exit 127, check that `Obsidian.com` exists alongside `Obsidian.exe`. If missing, you have an outdated installer — download the latest from [obsidian.md/download](https://obsidian.md/download) and reinstall.
- **Git Bash / MSYS2 users**: Bash resolves `obsidian` to `Obsidian.exe` (GUI) instead of `Obsidian.com` (CLI), causing colon+params to fail with exit 127 even when `Obsidian.com` is present. Create a wrapper script — see Troubleshooting.
- **Headless Linux**: Use the `.deb` package (not snap). Run under `xvfb`. Prefix commands with `DISPLAY=:5` (or your xvfb display number). Ensure `PrivateTmp=false` if running as a service.
Syntax
All parameters use **`key=value`** syntax. Quote values containing spaces.
obsidian <command> [subcommand] [key=value ...] [flags]
Multi-Vault
Target a specific vault by making it the **first argument**:
obsidian "My Vault" daily:read
obsidian "Work Notes" search query="meeting"
If omitted, the CLI targets the most recently active vault.
Command Overview
The CLI provides **130+ commands** across these groups:
| Group | Key Commands | Purpose | |---|---|---| | **files** | `read`, `create`, `append`, `prepend`, `move`, `rename`, `delete`, `files`, `folders`, `file`, `random` | Note CRUD and file discovery | | **daily** | `daily`, `daily:read`, `daily:append`, `daily:prepend`, `daily:path` | Daily note operations | | **search** | `search`, `search:context` | Full-text search; `search:context` returns matching lines | | **properties** | `properties`, `property:read`, `property:set`, `property:remove`, `aliases` | Frontmatter/metadata management | | **tags** | `tags`, `tag` | Tag listing, counts, and filtering | | **tasks** | `tasks`, `task` | Task querying, filtering, and toggling | | **links** | `backlinks`, `links`, `unresolved`, `orphans`, `deadends` | Graph and link analysis | | **bookmarks** | `bookmarks`, `bookmark` | List and add bookmarks | | **templates** | `templates`, `template:read`, `template:insert` | Template listing, rendering, insertion | | **plugins** | `plugins`, `plugin`, `plugin:enable`, `plugin:disable`, `plugin:install`, `plugin:uninstall`, `plugins:restrict` | Plugin management | | **sync** | `sync`, `sync:status`, `sync:history`, `sync:read`, `sync:restore`, `sync:deleted` | Obsidian Sync operations | | **themes** | `themes`, `theme`, `theme:set`, `theme:install`, `theme:uninstall` | Theme management | | **snippets** | `snippets`, `snippets:enabled`, `snippet:enable`, `snippet:disable` | CSS snippet management | | **commands** | `commands`, `command`, `hotkeys`, `hotkey` | Execute Obsidian commands by ID; inspect hotkeys | | **bases** | `bases`, `base:query`, `base:views`, `base:create` | Obsidian Bases (v1.12+ database feature) | | **history** | `history`, `history:list`, `history:read`, `history:restore` | File version recovery (File Recovery plugin) | | **workspace** | `workspace`, `tabs`, `tab:open` | Workspace layout and tab management | | **diff** | `diff` | Compare local vs sync file versions | | **dev** | `eval`, `dev:screenshot`, `dev:debug`, `dev:console`, `dev:errors`, `dev:css`, `dev:dom`, `devtools` | Developer/debugging tools | | **vault** | `vault`, `vaults`, `version`, `reload`, `restart` | Vault info and app control | | **other** | `outline`, `wordcount`, `recent
Read more
name: obsidian-cli version: "1.3.0" description: > Use this skill whenever the user wants Claude to directly interact with their Obsidian vault — reading a note or daily note, writing or appending content, searching vault contents, counting or listing notes, managing tasks, moving or renaming files, finding orphaned notes or broken links. Without this skill, Claude has no way to access vault data or execute vault operations. Treat any request that implies "go into my vault and do X" as a trigger — the user is asking Claude to act, not to explain. Also trigger for vault automation, CLI scripting, or cron-based workflows involving Obsidian, managing sync history, querying Bases, restoring file versions via history, managing bookmarks, or running JavaScript against the Obsidian API. Skip for pure conceptual questions: how Obsidian's GUI works, navigating settings menus, theme or plugin installation via the UI, iCloud/third-party sync conflicts, general Dataview query syntax, keyboard shortcuts, or parsing vault files with external scripts — anything where the user needs an explanation rather than Claude performing a vault operation. triggers: - "obsidian" - "vault" - "daily note" - "obsidian cli" - "note" - "append to" - "prepend to" - "search my vault" - "create a note" - "read note" - "move note" - "rename note" - "delete note" - "tasks in obsidian" - "open tasks" - "backlinks" - "orphaned notes" - "broken links" - "frontmatter" - "properties" - "sync history" - "obsidian bases" - "file history"
Obsidian CLI
The official Obsidian CLI (released in v1.12, February 2026) lets you control every aspect of Obsidian from the terminal. It communicates with a running Obsidian desktop instance via IPC.
> Read `references/command-reference.md` when you need specific flags, output formats, or > subcommands for any command group. It covers all 130+ commands with full parameter tables > and has a table of contents at the top.
Prerequisites
| Requirement | Details | |---|---| | Obsidian Desktop | **v1.12.0+** | | CLI enabled | Settings → Command line interface → Toggle ON | | Obsidian running | The desktop app **must be running** for CLI to work (IPC) |
Platform Notes
- **macOS / Linux**: The `obsidian` binary is registered in PATH automatically when you enable CLI in settings.
- **Windows**: Requires an `Obsidian.com` redirector file placed alongside `Obsidian.exe`. **Must run with normal user privileges** — admin terminals produce silent failures.
- If colon subcommands (`property:set`, `daily:append`, etc.) with parameters return exit 127, check that `Obsidian.com` exists alongside `Obsidian.exe`. If missing, you have an outdated installer — download the latest from [obsidian.md/download](https://obsidian.md/download) and reinstall.
- **Git Bash / MSYS2 users**: Bash resolves `obsidian` to `Obsidian.exe` (GUI) instead of `Obsidian.com` (CLI), causing colon+params to fail with exit 127 even when `Obsidian.com` is present. Create a wrapper script — see Troubleshooting.
- **Headless Linux**: Use the `.deb` package (not snap). Run under `xvfb`. Prefix commands with `DISPLAY=:5` (or your xvfb display number). Ensure `PrivateTmp=false` if running as a service.
Syntax
All parameters use **`key=value`** syntax. Quote values containing spaces.
obsidian <command> [subcommand] [key=value ...] [flags]
Multi-Vault
Target a specific vault by making it the **first argument**:
obsidian "My Vault" daily:read obsidian "Work Notes" search query="meeting"
If omitted, the CLI targets the most recently active vault.
Command Overview
The CLI provides **130+ commands** across these groups:
| Group | Key Commands | Purpose | |---|---|---| | **files** | `read`, `create`, `append`, `prepend`, `move`, `rename`, `delete`, `files`, `folders`, `file`, `random` | Note CRUD and file discovery | | **daily** | `daily`, `daily:read`, `daily:append`, `daily:prepend`, `daily:path` | Daily note operations | | **search** | `search`, `search:context` | Full-text search; `search:context` returns matching lines | | **properties** | `properties`, `property:read`, `property:set`, `property:remove`, `aliases` | Frontmatter/metadata management | | **tags** | `tags`, `tag` | Tag listing, counts, and filtering | | **tasks** | `tasks`, `task` | Task querying, filtering, and toggling | | **links** | `backlinks`, `links`, `unresolved`, `orphans`, `deadends` | Graph and link analysis | | **bookmarks** | `bookmarks`, `bookmark` | List and add bookmarks | | **templates** | `templates`, `template:read`, `template:insert` | Template listing, rendering, insertion | | **plugins** | `plugins`, `plugin`, `plugin:enable`, `plugin:disable`, `plugin:install`, `plugin:uninstall`, `plugins:restrict` | Plugin management | | **sync** | `sync`, `sync:status`, `sync:history`, `sync:read`, `sync:restore`, `sync:deleted` | Obsidian Sync operations | | **themes** | `themes`, `theme`, `theme:set`, `theme:install`, `theme:uninstall` | Theme management | | **snippets** | `snippets`, `snippets:enabled`, `snippet:enable`, `snippet:disable` | CSS snippet management | | **commands** | `commands`, `command`, `hotkeys`, `hotkey` | Execute Obsidian commands by ID; inspect hotkeys | | **bases** | `bases`, `base:query`, `base:views`, `base:create` | Obsidian Bases (v1.12+ database feature) | | **history** | `history`, `history:list`, `history:read`, `history:restore` | File version recovery (File Recovery plugin) | | **workspace** | `workspace`, `tabs`, `tab:open` | Workspace layout and tab management | | **diff** | `diff` | Compare local vs sync file versions | | **dev** | `eval`, `dev:screenshot`, `dev:debug`, `dev:console`, `dev:errors`, `dev:css`, `dev:dom`, `devtools` | Developer/debugging tools | | **vault** | `vault`, `vaults`, `version`, `reload`, `restart` | Vault info and app control | | **other** | `outline`, `wordcount`, `recent
A skill for AI coding agents that enables full control of Obsidian vaults from the terminal using the official Obsidian CLI (v1.12+).

