Loading...
Loading...
Obsidian vault management combining qmd (search) and notesmd-cli (CRUD). No Obsidian app needed. Use for: (1) searching notes with keyword, semantic, or hybrid search, (2) creating/editing/moving/deleting notes, (3) daily journaling, (4) frontmatter management, (5) backlink discovery, (6) AI agent memory workflows, (7) vault automation and scripting. Triggers: obsidian vault, obsidian notes, vault search, note management, daily notes, agent memory, knowledge base, markdown vault.
npx skill4agent add molechowski/claude-skills doc-obsidian| Tool | Role | Install |
|---|---|---|
| doc-qmd | Search (keyword, semantic, hybrid) | |
| doc-notesmd | CRUD, move, frontmatter, daily notes, backlinks | |
# 1. Set default vault for notesmd-cli
notesmd-cli set-default "VaultName"
# 2. Index vault in qmd
qmd collection add ~/path/to/vault --name vault --mask "**/*.md"
qmd embed # generate vector embeddings for semantic searchnotesmd-cli print-default # shows vault name + path
qmd status # shows indexed docs + embedding statusqmd update # re-index changed files
qmd embed # embed new/changed docs| Task | Tool | Command |
|---|---|---|
| Search by keyword | qmd | |
| Search by meaning | qmd | |
| Best search quality | qmd | |
| Create note | notesmd-cli | |
| Append to note | notesmd-cli | |
| Read note | notesmd-cli | |
| Partial edit | notesmd-cli + Edit | Read with |
| Move/rename | notesmd-cli | |
| Delete note | notesmd-cli | |
| Daily note | notesmd-cli | |
| Frontmatter | notesmd-cli | |
| Backlinks | notesmd-cli | |
| List files | notesmd-cli | |
| Recently modified | qmd | |
| Get document | qmd | |
| Batch retrieve | qmd | |
qmd search "authentication" -n 10
qmd search "authentication" --json # structured output
qmd search "authentication" --md # markdown for LLM contextqmd vsearch "how do we handle user sessions"
qmd vsearch "error recovery patterns" --json -n 5qmd query "what decisions did we make about the API design?"
qmd query "deployment strategy" --full # full document content# Find relevant notes, then read full content
qmd search "auth" --json -n 3 # find candidates
notesmd-cli print "auth-design" # read the one you neednotesmd-cli create "project/meeting-notes" --content "# Meeting\n\n## Agenda\n"
notesmd-cli create "inbox" --content "\n- New thought" --append
notesmd-cli create "scratch" --content "Replaced" --overwrite--append--overwrite\n\t\r\\\"\'notesmd-cli print "architecture" # raw content to stdout
notesmd-cli print "architecture" --mentions # with backlinks appended
qmd get vault/architecture.md # via qmd (by indexed path)notesmd-cli move "drafts/post" "published/post"[[wikilinks]][markdown](links)--append--overwrite# 1. Get vault path
VAULT=$(notesmd-cli print-default --path-only)
# 2. Read the note
notesmd-cli print "note-name"
# 3. Edit in place using the Edit tool with the full file path:
# "$VAULT/path/to/note.md"notesmd-cli printnotesmd-cli print-default --path-onlyEditsedawknotesmd-cli create --overwritenotesmd-cli delete "scratch-note" # permanent, no undonotesmd-cli daily # create/open today's note
notesmd-cli daily --editor # open in $EDITOR.obsidian/daily-notes.jsonDATE=$(date '+%Y-%m-%d')
notesmd-cli create "$DATE" --content "\n- $(date '+%H:%M') Task completed" --append--templatemeta/templates/cpnotesmd-cli create "meta/templates/meeting" --content "# Meeting Notes\n\n**Date:** \n**Attendees:** \n\n## Agenda\n\n## Discussion\n\n## Action Items\n\n- [ ] "
notesmd-cli create "meta/templates/project" --content "# Project Name\n\n## Overview\n\n## Goals\n\n## Timeline\n\n## Status\n"
notesmd-cli create "meta/templates/decision" --content "# Decision: \n\n## Context\n\n## Options\n\n## Decision\n\n## Rationale\n\n## Consequences\n"VAULT=$(notesmd-cli print-default --path-only)
cp "$VAULT/meta/templates/meeting.md" "$VAULT/meetings/$(date +%Y-%m-%d).md".obsidian/daily-notes.jsontemplatenotesmd-cli fm "note" --print
notesmd-cli fm "note" --edit --key "status" --value "done"
notesmd-cli fm "note" --edit --key "tags" --value "[cli,tools]"
notesmd-cli fm "note" --delete --key "draft"truefalse[a,b]notesmd-cli create "memory/session-$(date +%Y%m%d)" \
--content "# Session Notes\n\n## Learnings\n- Key insight here" \
--overwrite# Semantic search for relevant memories
qmd vsearch "how did we solve the caching issue" --md -n 5
# Hybrid search for best results
qmd query "authentication architecture decisions" --full -n 3notesmd-cli create "memory/patterns" \
--content "\n\n## $(date '+%Y-%m-%d')\n- New pattern discovered" \
--append# Get structured results for injection into prompts
qmd search "relevant topic" --json -n 10
qmd multi-get "memory/*.md" --json --max-bytes 20480references/search.mdreferences/agent-memory.md