doc-obsidian

Obsidian Vault Management

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "doc-obsidian" with this command: npx skills add molechowski/claude-skills/molechowski-claude-skills-doc-obsidian

Obsidian Vault Management

Unified vault operations using two CLI tools. No Obsidian app required.

Tool Role Install

doc-qmd Search (keyword, semantic, hybrid) npm i -g @anthropic/qmd or check which qmd

doc-notesmd CRUD, move, frontmatter, daily notes, backlinks brew install yakitrak/yakitrak/notesmd-cli

Setup

First-Time Setup

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 search

Verify

notesmd-cli print-default # shows vault name + path qmd status # shows indexed docs + embedding status

Keep Index Fresh

qmd update # re-index changed files qmd embed # embed new/changed docs

Tool Selection

Task Tool Command

Search by keyword qmd qmd search "term"

Search by meaning qmd qmd vsearch "conceptual question"

Best search quality qmd qmd query "complex question"

Create note notesmd-cli notesmd-cli create "name" --content "text"

Append to note notesmd-cli notesmd-cli create "name" --content "text" --append

Read note notesmd-cli notesmd-cli print "name"

Partial edit notesmd-cli + Edit Read with print , edit via vault path + Edit tool

Move/rename notesmd-cli notesmd-cli move "old" "new" (updates all links)

Delete note notesmd-cli notesmd-cli delete "name" (permanent, no trash)

Daily note notesmd-cli notesmd-cli daily

Frontmatter notesmd-cli notesmd-cli fm "name" --print / --edit / --delete

Backlinks notesmd-cli notesmd-cli print "name" --mentions

List files notesmd-cli notesmd-cli list [path]

Recently modified qmd qmd ls vault (sorted by date, includes size)

Get document qmd qmd get vault/note.md

Batch retrieve qmd qmd multi-get "folder/*.md" --json

Search Workflows

Quick Lookup (keyword)

qmd search "authentication" -n 10 qmd search "authentication" --json # structured output qmd search "authentication" --md # markdown for LLM context

Conceptual Search (semantic)

qmd vsearch "how do we handle user sessions" qmd vsearch "error recovery patterns" --json -n 5

Deep Search (hybrid -- best quality)

qmd query "what decisions did we make about the API design?" qmd query "deployment strategy" --full # full document content

Search + Read Pattern

Find relevant notes, then read full content

qmd search "auth" --json -n 3 # find candidates notesmd-cli print "auth-design" # read the one you need

Note CRUD

Create

notesmd-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 and --overwrite are mutually exclusive. Without either, existing files are unchanged.

Content supports escape sequences: \n , \t , \r , \ , " , ' .

Read

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)

Move/Rename (with link updates)

notesmd-cli move "drafts/post" "published/post"

All [[wikilinks]] and markdown across the vault are updated automatically.

Partial Edit (surgical updates)

notesmd-cli has no partial edit — only --append and --overwrite . For surgical changes (replace a section, update a table row, fix a line), use this workflow:

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"

Rules:

  • ALWAYS read with notesmd-cli print first — never guess content

  • ALWAYS resolve the vault path via notesmd-cli print-default --path-only

  • NEVER hardcode the vault path

  • Use the Edit tool for targeted string replacement, not sed or awk

  • For full rewrites, prefer notesmd-cli create --overwrite instead

Delete

notesmd-cli delete "scratch-note" # permanent, no undo

Does NOT update links in other files referencing the deleted note.

Daily Notes

notesmd-cli daily # create/open today's note notesmd-cli daily --editor # open in $EDITOR

Reads .obsidian/daily-notes.json for folder, date format (Moment.js), and template. Template content is applied only when creating a new note.

Append to Daily Note

DATE=$(date '+%Y-%m-%d') notesmd-cli create "$DATE" --content "\n- $(date '+%H:%M') Task completed" --append

Templates

notesmd-cli does not have a --template flag. Templates are plain markdown files stored in meta/templates/ — create them once, reuse via cp .

Create Templates

notesmd-cli create "meta/templates/meeting" --content "# Meeting Notes\n\nDate: \nAttendees: \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"

Create Note from Template

VAULT=$(notesmd-cli print-default --path-only) cp "$VAULT/meta/templates/meeting.md" "$VAULT/meetings/$(date +%Y-%m-%d).md"

Daily note templates are handled automatically — configure in .obsidian/daily-notes.json with a template field pointing to the template note path.

Frontmatter

notesmd-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"

Type inference: true /false -> boolean, [a,b] -> array, else string.

AI Agent Memory

Use the vault as persistent memory for Claude Code or other AI agents.

Store Knowledge

notesmd-cli create "memory/session-$(date +%Y%m%d)"
--content "# Session Notes\n\n## Learnings\n- Key insight here"
--overwrite

Retrieve Context

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 3

Append Learnings

notesmd-cli create "memory/patterns"
--content "\n\n## $(date '+%Y-%m-%d')\n- New pattern discovered"
--append

Build LLM Context

Get structured results for injection into prompts

qmd search "relevant topic" --json -n 10 qmd multi-get "memory/*.md" --json --max-bytes 20480

For detailed search patterns and agent memory workflows, see:

  • references/search.md -- qmd search modes, output formats, score interpretation

  • references/agent-memory.md -- Memory organization, retrieval patterns, automation

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

res-price-compare

No summary provided by upstream source.

Repository SourceNeeds Review
General

res-deep

No summary provided by upstream source.

Repository SourceNeeds Review
General

doc-vault-project

No summary provided by upstream source.

Repository SourceNeeds Review
General

doc-daily-digest

No summary provided by upstream source.

Repository SourceNeeds Review