From obsidian-knowledge
Read, search, and create notes in the Obsidian vault/wiki memory store.
How this skill is triggered — by the user, by Claude, or both
Slash command
/obsidian-knowledge:obsidian-knowledgeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
When this skill is auto-loaded in the `obsidian` Telegram topic, treat that topic as the place for using the `obsidian-knowledge` skill. Read this `SKILL.md` and use it as the operating guide for the session.
When this skill is auto-loaded in the obsidian Telegram topic, treat that topic as the place for using the obsidian-knowledge skill. Read this SKILL.md and use it as the operating guide for the session.
If Ricardo refers to prior vault context that is not present in the current Telegram thread, search the vault first instead of guessing. Use obsidian-knowledge search "<query>" for semantic lookup, then read the relevant notes before answering or editing.
Primary memory store: /Users/ricardo/Documents/obsidian/wiki/
Use the Obsidian wiki as the durable memory/source-of-truth for non-trivial context, project knowledge, and conversation outcomes. Use obsidian-knowledge search "<query>" to find relevant notes.
Location: Set via OBSIDIAN_VAULT_PATH environment variable (e.g. in ~/.hermes/.env).
If unset, defaults to ~/Documents/Obsidian Vault.
Note: Vault paths may contain spaces - always quote them.
Do not manually edit updated: timestamps in Obsidian notes. The vault linter manages updated metadata automatically; content edits should leave existing timestamp fields alone unless the user explicitly asks for timestamp repair.
On macOS, ~/Documents is TCC-protected. If the calling process (Terminal, the Hermes agent's parent python, etc.) hasn't been granted Documents/Full Disk Access, find and grep -r return 0 results with no error — they look like a clean miss. Permissions can also be transient (e.g. just-granted, or revoked by a recent OS update).
Always sanity-check the vault is actually readable before trusting a "no hits" result. If a search returns nothing for a term the user insists is there, do not give up — verify access first:
VAULT="${OBSIDIAN_VAULT_PATH:-$HOME/Documents/Obsidian Vault}"
# Probe: can we even list the vault root?
ls "$VAULT" 2>&1 | head -3
# If you see "Operation not permitted", it's TCC, not a missing note.
# Also confirm the search is finding *any* markdown:
find "$VAULT" -name "*.md" -type f | wc -l # should be > 0
If TCC is blocking access, grant the running binary (Terminal, iTerm, or the parent python — check with ps -o comm= -p $PPID) Full Disk Access in System Settings → Privacy & Security, then retry. A simple retry sometimes works on its own — TCC permission state can be transient.
VAULT="${OBSIDIAN_VAULT_PATH:-$HOME/Documents/Obsidian Vault}"
cat "$VAULT/Note Name.md"
VAULT="${OBSIDIAN_VAULT_PATH:-$HOME/Documents/Obsidian Vault}"
# All notes
find "$VAULT" -name "*.md" -type f
# In a specific folder
ls "$VAULT/Subfolder/"
VAULT="${OBSIDIAN_VAULT_PATH:-$HOME/Documents/Obsidian Vault}"
# By filename
find "$VAULT" -name "*.md" -iname "*keyword*"
# By content
grep -rli "keyword" "$VAULT" --include="*.md"
VAULT="${OBSIDIAN_VAULT_PATH:-$HOME/Documents/Obsidian Vault}"
cat > "$VAULT/New Note.md" << 'ENDNOTE'
# Title
Content here.
ENDNOTE
VAULT="${OBSIDIAN_VAULT_PATH:-$HOME/Documents/Obsidian Vault}"
echo "
New content here." >> "$VAULT/Existing Note.md"
Obsidian links notes with [[Note Name]] syntax. When creating notes, use these to link related content.
If find/grep against the vault returns 0 results for a term the user insists is there, do not conclude "not found" yet. On macOS, the parent shell may lack Full Disk Access / Documents folder permission under TCC, and find silently returns nothing instead of erroring loudly.
Diagnostic:
ls "$OBSIDIAN_VAULT_PATH/" 2>&1 | head -3
# "Operation not permitted" → TCC is blocking the shell's parent process
# (Terminal.app, Hermes python, etc.) from reading ~/Documents
Notes:
ls/find often works moments later, or after the parent process restarts./Users/<user>/.hermes/hermes-agent/venv/bin/python for Hermes, not bash). Check with: ps -o pid,ppid,comm -p $$ and walk up to PID 1.ls works but a recursive find/grep returns nothing for a known-present term, retry once before giving up — TCC state can flip mid-session.~/Documents/obsidian vs ~/Documents/Obsidian Vault); always honor $OBSIDIAN_VAULT_PATH from ~/.hermes/.env.npx claudepluginhub crypdick/obsidian-knowledgeCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.