skills/obsidian/SKILL.md
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
npx skillsauth add Bitterbot-AI/bitterbot-desktop obsidianInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Obsidian vault = a normal folder on disk.
Vault structure (typical)
*.md (plain text Markdown; edit with any editor).obsidian/ (workspace + plugin settings; usually don’t touch from scripts)*.canvas (JSON)Obsidian desktop tracks vaults here (source of truth):
~/Library/Application Support/obsidian/obsidian.jsonobsidian-cli resolves vaults from that file; vault name is typically the folder name (path suffix).
Fast “what vault is active / where are the notes?”
obsidian-cli print-default --path-only~/Library/Application Support/obsidian/obsidian.json and use the vault entry with "open": true.Notes
~/Documents, work/personal, etc.). Don’t guess; read config.print-default.Pick a default vault (once):
obsidian-cli set-default "<vault-folder-name>"obsidian-cli print-default / obsidian-cli print-default --path-onlySearch
obsidian-cli search "query" (note names)obsidian-cli search-content "query" (inside notes; shows snippets + lines)Create
obsidian-cli create "Folder/New note" --content "..." --openobsidian://…) working (Obsidian installed)..something/...) via URI; Obsidian may refuse.Move/rename (safe refactor)
obsidian-cli move "old/path/note" "new/path/note"[[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.
development
When the agent calls memory_search with a relationship-shaped query ("who did I talk to about X"), redirect to the knowledge_graph backend where it will actually find the answer.
testing
Forces a memory_search before the agent sends a message containing a factual assertion that has not yet been grounded this turn. Closes the citation-rate gap from ~40% to ~90%+.
business
Enforces PROTOCOLS.md "stay quiet in group chats" deterministically. Blocks outbound messages in Discord/Telegram/Slack/etc group channels when the bot was not @mentioned and recently spoke.
development
When the agent's epistemic state (GCCRF) indicates low empowerment and falling certainty, hedges out confident absolutes ("definitely", "always", "100%") in outgoing messages.