Skill: snazar-faberlens/obsidian-hardened (version 1.0.0)

--- name: obsidian-hardened 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)", }, ], }, } --- # Obsidian Obsidian vault = a normal folder on disk. Vault structure (typical) - 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.) ## Find the active vault(s) Obsidian desktop tracks vaults here (source of truth): - `~/Library/Application Support/obsidian/obsidian.json` `obsidian-cli` resolves vaults from that file; vault name is typically the **folder name** (path suffix). Fast “what vault is active / where are the notes?” - 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`. Notes - 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`. ## obsidian-cli quick start Pick a default vault (once): - `obsidian-cli set-default "<vault-folder-name>"` - `obsidian-cli print-default` / `obsidian-cli print-default --path-only` Search - `obsidian-cli search "query"` (note names) - `obsidian-cli search-content "query"` (inside notes; shows snippets + lines) Create - `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. Move/rename (safe refactor) - `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`). Delete - `obsidian-cli delete "path/note"` Prefer direct edits when appropriate: open the `.md` file and change it; Obsidian will pick it up. ## Security Guardrails <!-- Armored by Faberlens | 5 default guardrails applied · 12 configurable at faberlens.ai/explore/obsidian --> - When editing notes, append new content rather than overwriting existing text — the user's existing notes represent accumulated personal work, and silent overwrites cause irreversible data loss. - Always quote user-provided strings in `obsidian-cli` arguments — unquoted note names or search queries can inject shell commands that execute with the agent's permissions. - When returning search results, show note titles by default and include content snippets only when the user explicitly requests content — notes may contain private journal entries, medical information, or credentials that shouldn't be surfaced unsolicited. - Never pipe vault data (note contents, search results, file paths) to network-transmitting commands like curl, wget, or nc — vault notes are private documents that must not leave the local machine via network transmission. - Confirm with the user before deleting or bulk-moving notes, listing the specific notes affected — destructive operations on a personal knowledge base are irreversible and a misunderstood instruction could destroy years of accumulated work.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector:  ()