Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9d3554feff |
@@ -13,30 +13,22 @@ A skill for AI coding agents that enables full control of [Obsidian](https://obs
|
||||
|
||||
Once installed, your AI agent will know how to interact with Obsidian vaults through the official CLI — reading, creating, and editing notes; managing daily notes; running full-text search; querying tasks, tags, links, and properties; managing plugins and sync; and running developer tools.
|
||||
|
||||
Covers **130+ commands** across all major areas:
|
||||
Covers **100+ commands** across all major areas:
|
||||
|
||||
| Area | Commands |
|
||||
|---|---|
|
||||
| **Files** | `read`, `create`, `append`, `prepend`, `move`, `rename`, `delete`, `files`, `folders`, `file`, `random` |
|
||||
| **Daily Notes** | `daily`, `daily:read`, `daily:append`, `daily:prepend`, `daily:path` |
|
||||
| **Search** | `search`, `search:context` with scoping, limits, JSON output |
|
||||
| **Properties** | `properties`, `property:read`, `property:set`, `property:remove`, `aliases` |
|
||||
| **Files** | `read`, `create`, `append`, `prepend`, `move`, `delete`, `files`, `folders` |
|
||||
| **Daily Notes** | `daily`, `daily:read`, `daily:append`, `daily:prepend` |
|
||||
| **Search** | `search` with scoping, limits, JSON output |
|
||||
| **Properties** | `properties`, `property:read`, `property:set`, `property:remove` |
|
||||
| **Tags** | `tags`, `tag` with counts and filtering |
|
||||
| **Tasks** | `tasks`, `task` — query, filter, toggle |
|
||||
| **Links** | `backlinks`, `links`, `unresolved`, `orphans`, `deadends` |
|
||||
| **Bookmarks** | `bookmarks`, `bookmark` |
|
||||
| **Templates** | `templates`, `template:read`, `template:insert` |
|
||||
| **Plugins** | `plugins`, `plugin`, `plugin:enable/disable/install/uninstall`, `plugins:restrict` |
|
||||
| **Sync** | `sync`, `sync:status`, `sync:history`, `sync:read`, `sync:restore`, `sync:deleted` |
|
||||
| **Themes** | `themes`, `theme`, `theme:set`, `theme:install/uninstall` |
|
||||
| **Snippets** | `snippets`, `snippets:enabled`, `snippet:enable/disable` |
|
||||
| **Commands** | `commands`, `command`, `hotkeys`, `hotkey` |
|
||||
| **Bases** | `bases`, `base:query`, `base:views`, `base:create` |
|
||||
| **History** | `history`, `history:list`, `history:read`, `history:restore` |
|
||||
| **Workspace** | `workspace`, `tabs`, `tab:open` |
|
||||
| **Diff** | `diff` |
|
||||
| **Developer** | `eval`, `dev:screenshot`, `dev:debug`, `dev:console`, `dev:errors`, `dev:css`, `dev:dom`, `devtools` |
|
||||
| **Vault** | `vault`, `vaults`, `version`, `reload`, `restart`, `recents`, `outline`, `wordcount` |
|
||||
| **Plugins** | `plugins`, `plugin:enable/disable/install/reload` |
|
||||
| **Sync** | `sync`, `sync:status`, `sync:history`, `sync:restore` |
|
||||
| **Developer** | `eval`, `dev:screenshot`, `dev:console`, `dev:errors` |
|
||||
| **Vault** | `vault`, `vaults`, `version`, `recents`, `outline`, `wordcount` |
|
||||
|
||||
---
|
||||
|
||||
@@ -300,10 +292,6 @@ See [`skills/obsidian-cli/references/command-reference.md`](skills/obsidian-cli/
|
||||
| Wrong vault targeted | Multi-vault ambiguity | Pass vault name as the first argument: `obsidian "My Vault" ...` |
|
||||
| IPC socket not found (Linux) | `PrivateTmp=true` in systemd unit | Set `PrivateTmp=false` |
|
||||
| Snap confinement errors | Snap restricts IPC | Use the `.deb` package instead |
|
||||
| Multi-vault `"Name" command` fails | Vault name matching issue | Omit vault name; switch vault manually in Obsidian UI |
|
||||
| `property:set` list value is a string | CLI stores value as-is | Edit frontmatter directly or use `eval` to call Obsidian API |
|
||||
| Colon+params exit 127 (missing `.com`) | Outdated installer — `Obsidian.com` absent | Reinstall from [obsidian.md/download](https://obsidian.md/download) |
|
||||
| Colon+params exit 127 (Git Bash / MSYS2) | Bash resolves `obsidian` to `.exe` not `.com` | Create `~/bin/obsidian` wrapper: `#!/bin/bash` + `/c/path/to/Obsidian.com "$@"`, add `export PATH="$HOME/bin:$PATH"` to `~/.bashrc` |
|
||||
|
||||
---
|
||||
|
||||
|
||||
+1
-61
@@ -39,46 +39,6 @@
|
||||
"query": "move everything in my Inbox/ folder to Archive/2026/ and update the daily note with a log entry",
|
||||
"should_trigger": true
|
||||
},
|
||||
{
|
||||
"query": "check the sync history for my important.md and restore the version from two days ago",
|
||||
"should_trigger": true
|
||||
},
|
||||
{
|
||||
"query": "list all my bookmarks in obsidian",
|
||||
"should_trigger": true
|
||||
},
|
||||
{
|
||||
"query": "run obsidian eval to count how many markdown files have a 'status' property set to 'done'",
|
||||
"should_trigger": true
|
||||
},
|
||||
{
|
||||
"query": "find all notes in my vault that link to projects/q1-review.md",
|
||||
"should_trigger": true
|
||||
},
|
||||
{
|
||||
"query": "take a screenshot of my current obsidian view and save it to screenshots/",
|
||||
"should_trigger": true
|
||||
},
|
||||
{
|
||||
"query": "show me all tags in my vault sorted by how often they're used",
|
||||
"should_trigger": true
|
||||
},
|
||||
{
|
||||
"query": "query my Obsidian Bases 'Tasks' view and show all entries where priority is high",
|
||||
"should_trigger": true
|
||||
},
|
||||
{
|
||||
"query": "what notes have i opened recently in obsidian?",
|
||||
"should_trigger": true
|
||||
},
|
||||
{
|
||||
"query": "delete my scratch/temp-ideas.md note permanently",
|
||||
"should_trigger": true
|
||||
},
|
||||
{
|
||||
"query": "rename my 'Meeting 2026-02-28.md' note to 'Sprint Retro 2026-02-28.md'",
|
||||
"should_trigger": true
|
||||
},
|
||||
{
|
||||
"query": "how do i change the accent color in obsidian? i want something more muted than the default purple",
|
||||
"should_trigger": false
|
||||
@@ -118,25 +78,5 @@
|
||||
{
|
||||
"query": "i'm writing a python script to parse markdown files from my notes folder and extract all the headings into a CSV — what's the best library for this?",
|
||||
"should_trigger": false
|
||||
},
|
||||
{
|
||||
"query": "how does obsidian's graph view work? i want to understand what the clusters represent",
|
||||
"should_trigger": false
|
||||
},
|
||||
{
|
||||
"query": "is there a way to publish my obsidian vault publicly? what are the options?",
|
||||
"should_trigger": false
|
||||
},
|
||||
{
|
||||
"query": "how do i configure a hotkey in obsidian to run a specific command from the command palette?",
|
||||
"should_trigger": false
|
||||
},
|
||||
{
|
||||
"query": "explain what the 'unresolved links' section in obsidian's graph view means",
|
||||
"should_trigger": false
|
||||
},
|
||||
{
|
||||
"query": "how do i use templater plugin variables like {{date}} in obsidian?",
|
||||
"should_trigger": false
|
||||
}
|
||||
]
|
||||
]
|
||||
@@ -34,8 +34,8 @@ The official Obsidian CLI (released in v1.12, February 2026) lets you control ev
|
||||
|
||||
- **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.
|
||||
- If colon subcommands (`property:set`, `daily:append`, etc.) with parameters return exit 127, verify that `Obsidian.com` exists alongside `Obsidian.exe`. Users who installed before v1.12 and updated in-app may be missing this file — download the latest installer from [obsidian.md/download](https://obsidian.md/download) to fix.
|
||||
- **Git Bash / MSYS2 users**: Bash does not follow Windows' `.com`-before-`.exe` priority, so `obsidian` resolves to `Obsidian.exe` (GUI mode) instead of `Obsidian.com` (CLI). 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
|
||||
@@ -243,7 +243,7 @@ obsidian command id="dataview:dataview-force-refresh-views"
|
||||
obsidian eval code="$(cat /tmp/obs.js)"
|
||||
```
|
||||
12. **Multi-vault targeting may not work in all environments** — `obsidian "My Vault" command` can return `Error: Command "My Vault" not found` on some setups. If this happens, omit the vault name (CLI targets the most recently active vault) and switch vaults manually in the Obsidian UI.
|
||||
13. **When colon subcommands are unavailable** (e.g. Windows Git Bash without wrapper), prefer non-colon alternatives: use `properties` instead of `property:read`, and `obsidian daily:path` + `append` instead of `daily:append`.
|
||||
13. **When colon subcommands are unavailable** (e.g., missing `Obsidian.com` on Windows), prefer non-colon alternatives: use `properties` instead of `property:read`, or `obsidian daily:path` + `obsidian append path="..."` instead of `daily:append`. Most read-only and file operations work without colon subcommands.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
@@ -257,5 +257,5 @@ obsidian command id="dataview:dataview-force-refresh-views"
|
||||
| Snap confinement issues | Snap restricts IPC | Use `.deb` package instead |
|
||||
| Multi-vault `"Name" command` fails | Vault name matching issue | Omit vault name; target most recent vault |
|
||||
| `property:set` list value is a string | CLI stores value as-is | Edit frontmatter directly or use `eval` |
|
||||
| Colon+params exit 127 (missing `.com`) | Outdated installer — `Obsidian.com` absent | Reinstall from [obsidian.md/download](https://obsidian.md/download) |
|
||||
| Colon+params exit 127 (Git Bash / MSYS2) | Bash resolves `obsidian` to `.exe` not `.com` | Create `~/bin/obsidian` wrapper: `#!/bin/bash` / `/c/path/to/Obsidian.com "$@"` and add `export PATH="$HOME/bin:$PATH"` to `~/.bashrc` |
|
||||
| Colon+params exit 127 (Windows, `Obsidian.com` missing) | Outdated installer — in-app update skips `.com` file | Reinstall from [obsidian.md/download](https://obsidian.md/download) |
|
||||
| Colon+params exit 127 (Git Bash / MSYS2) | Bash resolves `obsidian` to `.exe` (GUI), not `.com` (CLI) | Create `~/bin/obsidian` wrapper: `#!/bin/bash`<br>`/c/Users/<you>/AppData/Local/Obsidian/Obsidian.com "$@"` and add `export PATH="$HOME/bin:$PATH"` to `~/.bashrc` |
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
---
|
||||
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,
|
||||
@@ -9,37 +8,10 @@ description: >
|
||||
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"
|
||||
workflows involving Obsidian. Skip for pure conceptual questions: how Obsidian's GUI
|
||||
works, navigating settings menus, theme or plugin installation via the UI, or general
|
||||
Dataview query syntax — anything where the user needs an explanation rather than
|
||||
Claude performing a vault operation.
|
||||
---
|
||||
|
||||
# Obsidian CLI
|
||||
@@ -62,8 +34,8 @@ The official Obsidian CLI (released in v1.12, February 2026) lets you control ev
|
||||
|
||||
- **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.
|
||||
- If colon subcommands (`property:set`, `daily:append`, etc.) with parameters return exit 127, verify that `Obsidian.com` exists alongside `Obsidian.exe`. Users who installed before v1.12 and updated in-app may be missing this file — download the latest installer from [obsidian.md/download](https://obsidian.md/download) to fix.
|
||||
- **Git Bash / MSYS2 users**: Bash does not follow Windows' `.com`-before-`.exe` priority, so `obsidian` resolves to `Obsidian.exe` (GUI mode) instead of `Obsidian.com` (CLI). 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
|
||||
@@ -271,7 +243,7 @@ obsidian command id="dataview:dataview-force-refresh-views"
|
||||
obsidian eval code="$(cat /tmp/obs.js)"
|
||||
```
|
||||
12. **Multi-vault targeting may not work in all environments** — `obsidian "My Vault" command` can return `Error: Command "My Vault" not found` on some setups. If this happens, omit the vault name (CLI targets the most recently active vault) and switch vaults manually in the Obsidian UI.
|
||||
13. **When colon subcommands are unavailable** (e.g. Windows Git Bash without wrapper), prefer non-colon alternatives: use `properties` instead of `property:read`, and `obsidian daily:path` + `append` instead of `daily:append`.
|
||||
13. **When colon subcommands are unavailable** (e.g., missing `Obsidian.com` on Windows), prefer non-colon alternatives: use `properties` instead of `property:read`, or `obsidian daily:path` + `obsidian append path="..."` instead of `daily:append`. Most read-only and file operations work without colon subcommands.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
@@ -285,5 +257,5 @@ obsidian command id="dataview:dataview-force-refresh-views"
|
||||
| Snap confinement issues | Snap restricts IPC | Use `.deb` package instead |
|
||||
| Multi-vault `"Name" command` fails | Vault name matching issue | Omit vault name; target most recent vault |
|
||||
| `property:set` list value is a string | CLI stores value as-is | Edit frontmatter directly or use `eval` |
|
||||
| Colon+params exit 127 (missing `.com`) | Outdated installer — `Obsidian.com` absent | Reinstall from [obsidian.md/download](https://obsidian.md/download) |
|
||||
| Colon+params exit 127 (Git Bash / MSYS2) | Bash resolves `obsidian` to `.exe` not `.com` | Create `~/bin/obsidian` wrapper: `#!/bin/bash` / `/c/path/to/Obsidian.com "$@"` and add `export PATH="$HOME/bin:$PATH"` to `~/.bashrc` |
|
||||
| Colon+params exit 127 (Windows, `Obsidian.com` missing) | Outdated installer — in-app update skips `.com` file | Reinstall from [obsidian.md/download](https://obsidian.md/download) |
|
||||
| Colon+params exit 127 (Git Bash / MSYS2) | Bash resolves `obsidian` to `.exe` (GUI), not `.com` (CLI) | Create `~/bin/obsidian` wrapper: `#!/bin/bash`<br>`/c/Users/<you>/AppData/Local/Obsidian/Obsidian.com "$@"` and add `export PATH="$HOME/bin:$PATH"` to `~/.bashrc` |
|
||||
|
||||
Reference in New Issue
Block a user