Merge pull request #5 from pablo-mano/claude/skill-creator-improvements-VvYl5

This commit is contained in:
pablo-mano
2026-03-05 21:57:57 +01:00
committed by GitHub
3 changed files with 114 additions and 14 deletions
+21 -9
View File
@@ -13,22 +13,30 @@ 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. 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 **100+ commands** across all major areas: Covers **130+ commands** across all major areas:
| Area | Commands | | Area | Commands |
|---|---| |---|---|
| **Files** | `read`, `create`, `append`, `prepend`, `move`, `delete`, `files`, `folders` | | **Files** | `read`, `create`, `append`, `prepend`, `move`, `rename`, `delete`, `files`, `folders`, `file`, `random` |
| **Daily Notes** | `daily`, `daily:read`, `daily:append`, `daily:prepend` | | **Daily Notes** | `daily`, `daily:read`, `daily:append`, `daily:prepend`, `daily:path` |
| **Search** | `search` with scoping, limits, JSON output | | **Search** | `search`, `search:context` with scoping, limits, JSON output |
| **Properties** | `properties`, `property:read`, `property:set`, `property:remove` | | **Properties** | `properties`, `property:read`, `property:set`, `property:remove`, `aliases` |
| **Tags** | `tags`, `tag` with counts and filtering | | **Tags** | `tags`, `tag` with counts and filtering |
| **Tasks** | `tasks`, `task` — query, filter, toggle | | **Tasks** | `tasks`, `task` — query, filter, toggle |
| **Links** | `backlinks`, `links`, `unresolved`, `orphans`, `deadends` | | **Links** | `backlinks`, `links`, `unresolved`, `orphans`, `deadends` |
| **Bookmarks** | `bookmarks`, `bookmark` |
| **Templates** | `templates`, `template:read`, `template:insert` | | **Templates** | `templates`, `template:read`, `template:insert` |
| **Plugins** | `plugins`, `plugin:enable/disable/install/reload` | | **Plugins** | `plugins`, `plugin`, `plugin:enable/disable/install/uninstall`, `plugins:restrict` |
| **Sync** | `sync`, `sync:status`, `sync:history`, `sync:restore` | | **Sync** | `sync`, `sync:status`, `sync:history`, `sync:read`, `sync:restore`, `sync:deleted` |
| **Developer** | `eval`, `dev:screenshot`, `dev:console`, `dev:errors` | | **Themes** | `themes`, `theme`, `theme:set`, `theme:install/uninstall` |
| **Vault** | `vault`, `vaults`, `version`, `recents`, `outline`, `wordcount` | | **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` |
--- ---
@@ -292,6 +300,10 @@ 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" ...` | | 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` | | IPC socket not found (Linux) | `PrivateTmp=true` in systemd unit | Set `PrivateTmp=false` |
| Snap confinement errors | Snap restricts IPC | Use the `.deb` package instead | | 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` |
--- ---
+60
View File
@@ -39,6 +39,46 @@
"query": "move everything in my Inbox/ folder to Archive/2026/ and update the daily note with a log entry", "query": "move everything in my Inbox/ folder to Archive/2026/ and update the daily note with a log entry",
"should_trigger": true "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", "query": "how do i change the accent color in obsidian? i want something more muted than the default purple",
"should_trigger": false "should_trigger": false
@@ -78,5 +118,25 @@
{ {
"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?", "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 "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
} }
] ]
+32 -4
View File
@@ -1,5 +1,6 @@
--- ---
name: obsidian-cli name: obsidian-cli
version: "1.3.0"
description: > description: >
Use this skill whenever the user wants Claude to directly interact with their 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, Obsidian vault — reading a note or daily note, writing or appending content,
@@ -8,10 +9,37 @@ description: >
has no way to access vault data or execute vault operations. Treat any request that 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, 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 not to explain. Also trigger for vault automation, CLI scripting, or cron-based
workflows involving Obsidian. Skip for pure conceptual questions: how Obsidian's GUI workflows involving Obsidian, managing sync history, querying Bases, restoring file
works, navigating settings menus, theme or plugin installation via the UI, or general versions via history, managing bookmarks, or running JavaScript against the Obsidian
Dataview query syntax — anything where the user needs an explanation rather than API. Skip for pure conceptual questions: how Obsidian's GUI works, navigating settings
Claude performing a vault operation. 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 # Obsidian CLI