obsidian-notesmd-cli
v1.0.0Work with Obsidian vaults (plain Markdown notes) and automate via notesmd-cli.
Installation
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
notesmd-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: notesmd-cli print-default --path-only
- Otherwise, read ~/Library/Application Support/obsidian/obsidian.json and use the vault entry with "open": true.
notesmd-cli quick start
Pick a default vault and open behavior (once):
- notesmd-cli set-default "<vault-folder-name>"
- notesmd-cli set-default --open-type editor (Sets default to use your terminal/GUI $EDITOR instead of opening the Obsidian app)
- notesmd-cli print-default / notesmd-cli print-default --path-only
Search
- notesmd-cli search (Interactive fuzzy search for notes; respects Obsidian's excluded files)
- notesmd-cli search-content "query" (Searches inside notes; shows snippets + lines)
Create
- notesmd-cli create "Folder/New note" --content "..."
- notesmd-cli create "New note" --open (Opens in Obsidian, or $EDITOR if --editor flag is passed)
- Note: Works directly on disk (headless supported); Obsidian does not need to be running. Reads .obsidian/app.json for default new file locations.
Daily Notes
- notesmd-cli daily (Creates or opens today's daily note directly on disk)
- Automatically reads your .obsidian/daily-notes.json for folder, format, and template configurations.
Frontmatter (YAML Metadata)
- notesmd-cli frontmatter "NoteName" --print
- notesmd-cli frontmatter "NoteName" --edit --key "status" --value "done"
- notesmd-cli frontmatter "NoteName" --delete --key "draft"
Move/rename (safe refactor)
- notesmd-cli move "old/path/note" "new/path/note"
- Updates [[wikilinks]] and common Markdown links across the vault (this is the main win vs standard mv).
Delete
- notesmd-cli delete "path/note"
Prefer direct edits when appropriate: open the .md file in any editor (notesmd-cli open "note" --editor) and change it; Obsidian will automatically pick it up.