From 045d7aae505c2be26838db047c5db03fcc6b76ea Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 17 May 2026 12:09:24 +0100 Subject: [PATCH] docs: update obsidian skill for official cli --- CHANGELOG.md | 1 + skills/obsidian/SKILL.md | 142 +++++++++++++++++++++++++-------------- 2 files changed, 91 insertions(+), 52 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f762bb664f..ac12a7983ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ Docs: https://docs.openclaw.ai - Skills: add node inspector debugging, fused diagram generation, and throwaway spike workflow skills. - CLI/plugins: add `defineToolPlugin` plus `openclaw plugins build`, `validate`, and `init` for typed simple tool plugins with generated manifest metadata, optional tool declarations, and context factories. - Agents/skills: tighten bundled skill prompts and metadata, quote skill descriptions, refresh current CLI/API guidance, and update embedded sherpa-onnx runtime downloads. +- Skills: update the Obsidian skill to target the official `obsidian` CLI and require its registered binary instead of the third-party `obsidian-cli`. - Skills: add a Python debugging skill for pdb, breakpoint(), post-mortem inspection, and debugpy remote attach. - Proxy: support HTTPS managed forward-proxy endpoints and scoped `proxy.tls.caFile` CA trust for proxy endpoint TLS. (#79171) Thanks @jesse-merhi. - QA-Lab: add first-hour 20-turn and optional 100-turn runtime parity scenarios, with tier metadata for standard and soak QA gates. (#80323) Thanks @100yenadmin. diff --git a/skills/obsidian/SKILL.md b/skills/obsidian/SKILL.md index 1988af93609..8cd20acdad1 100644 --- a/skills/obsidian/SKILL.md +++ b/skills/obsidian/SKILL.md @@ -1,81 +1,119 @@ --- name: obsidian -description: "Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli." -homepage: https://help.obsidian.md -metadata: - { - "openclaw": - { - "emoji": "💎", - "requires": { "bins": ["obsidian-cli"] }, - "install": - [ - { - "id": "brew", - "kind": "brew", - "formula": "yakitrak/yakitrak/obsidian-cli", - "bins": ["obsidian-cli"], - "label": "Install obsidian-cli (brew)", - }, - ], - }, - } +description: "Work with Obsidian vaults using the official obsidian CLI: read/search/create/edit notes, tasks, links, properties, plugins." +homepage: https://obsidian.md/cli +metadata: { "openclaw": { "emoji": "💎", "requires": { "bins": ["obsidian"] } } } --- # Obsidian -Obsidian vault = a normal folder on disk. +Use the official `obsidian` CLI for Obsidian vault work. Vault files are plain Markdown, so direct file edits are still fine when safer/faster. -Vault structure (typical) +## Requirements -- Notes: `*.md` (plain text Markdown; edit with any editor) -- Config: `.obsidian/` (workspace + plugin settings; usually don't touch from scripts) -- Canvases: `*.canvas` (JSON) -- Attachments: whatever folder you chose in Obsidian settings (images/PDFs/etc.) +- Obsidian 1.12.7+ installed. +- Settings -> General -> Command line interface enabled. +- `obsidian` registered on PATH. +- Obsidian app running; the CLI connects to the running app. -## Find the active vault(s) +Check: -Obsidian desktop tracks vaults here (source of truth): +```bash +obsidian version +obsidian help +``` + +macOS registration creates `/usr/local/bin/obsidian` pointing at the app-bundled CLI. Linux registration copies the binary to `~/.local/bin/obsidian`. + +## Vault model + +- Notes: `*.md`. +- Config: `.obsidian/`; avoid editing unless asked. +- Canvases: `*.canvas` JSON. +- Attachments: vault-configured folder. +- Multiple vaults are common; pass `vault=""` when ambiguous. + +Obsidian desktop tracks vaults here: - `~/Library/Application Support/obsidian/obsidian.json` -`obsidian-cli` resolves vaults from that file; vault name is typically the **folder name** (path suffix). +## Command pattern -Fast "what vault is active / where are the notes?" +```bash +obsidian [name=value] [flag] +obsidian vault="Notes" search query="meeting notes" format=json +``` -- If you've already set a default: `obsidian-cli print-default --path-only` -- Otherwise, read `~/Library/Application Support/obsidian/obsidian.json` and use the vault entry with `"open": true`. +Parameter values with spaces need quotes. Add `--copy` to copy output where useful. -Notes +## Common commands -- Multiple vaults common (iCloud vs `~/Documents`, work/personal, etc.). Don't guess; read config. -- Avoid writing hardcoded vault paths into scripts; prefer reading the config or using `print-default`. +Open/read: -## obsidian-cli quick start +```bash +obsidian open file=Recipe +obsidian open path="Inbox/Idea.md" newtab +obsidian read +obsidian read file=Recipe +``` -Pick a default vault (once): +Search: -- `obsidian-cli set-default ""` -- `obsidian-cli print-default` / `obsidian-cli print-default --path-only` +```bash +obsidian search query="TODO" matches +obsidian search query="status::active" format=json +obsidian search:open query="project notes" +``` -Search +Create/modify: -- `obsidian-cli search "query"` (note names) -- `obsidian-cli search-content "query"` (inside notes; shows snippets + lines) +```bash +obsidian create name="New Note" +obsidian create path="Inbox/Idea.md" content="# Idea" +obsidian append file=Note content="New line" +obsidian prepend file=Note content="After frontmatter" +``` -Create +Move/delete: -- `obsidian-cli create "Folder/New note" --content "..." --open` -- Requires Obsidian URI handler (`obsidian://…`) working (Obsidian installed). -- Avoid creating notes under "hidden" dot-folders (e.g. `.something/...`) via URI; Obsidian may refuse. +```bash +obsidian move file=Note to=Archive/ +obsidian move path="Inbox/Old.md" to="Projects/New.md" +obsidian delete file=Note +``` -Move/rename (safe refactor) +Daily/tasks: -- `obsidian-cli move "old/path/note" "new/path/note"` -- Updates `[[wikilinks]]` and common Markdown links across the vault (this is the main win vs `mv`). +```bash +obsidian daily +obsidian daily:read +obsidian daily:append content="- [ ] Review inbox" +obsidian tasks all todo +obsidian task file=Note line=8 done +``` -Delete +Properties/links: -- `obsidian-cli delete "path/note"` +```bash +obsidian tags all counts +obsidian property:read file=Note name=status +obsidian property:set file=Note name=status value=done +obsidian backlinks file=Note +obsidian unresolved verbose counts +``` -Prefer direct edits when appropriate: open the `.md` file and change it; Obsidian will pick it up. +Developer/debug: + +```bash +obsidian plugin:reload my-plugin +obsidian dev:errors +obsidian dev:screenshot file=shot.png +obsidian eval "app.vault.getFiles().length" +``` + +## Notes + +- `file=` uses Obsidian-style file resolution; `path=` is exact. +- Prefer CLI move/delete/property commands for Obsidian-aware updates. +- Prefer direct Markdown edits for bulk text changes after locating the vault path. +- Do not rely on third-party `obsidian-cli` unless user explicitly asks for it.