Install
openclaw skills install obsidian-linuxWork with Obsidian vaults (plain Markdown notes) and automate via notesmd-cli.
openclaw skills install obsidian-linuxObsidian vault = a normal folder on disk with Markdown files.
Vault structure (typical):
*.md (plain text Markdown; edit with any editor).obsidian/ (workspace + plugin settings; don't touch from scripts)*.canvas (JSON)Obsidian desktop tracks vaults in a config file (source of truth):
~/Library/Application Support/obsidian/obsidian.json~/.config/obsidian/obsidian.jsonnotesmd-cli resolves vaults from that file; vault name is the folder name (path suffix).
Always check before running commands:
notesmd-cli print-default --path-only 2>/dev/null && echo "OK" || echo "NOT_SET"
If NOT_SET, configure it:
notesmd-cli set-default "VAULT_NAME"
Don't guess vault paths — read the config file or use print-default.
notesmd-cli print-default # show default vault name + path
notesmd-cli print-default --path-only # path only
notesmd-cli list # list notes and folders in vault
notesmd-cli list "Folder" # list inside a folder
notesmd-cli search "query" # fuzzy search note names
notesmd-cli search-content "query" # search inside notes (shows snippets + lines)
notesmd-cli print "path/note" # print note contents
notesmd-cli frontmatter "path/note" # view or modify note frontmatter
notesmd-cli create "Folder/Note" --content "..." --open # create note
notesmd-cli create "Folder/Note" --content "..." --append # append to existing note
notesmd-cli create "Folder/Note" --content "..." --overwrite # overwrite note
Note: create requires Obsidian URI handler (Obsidian must be installed). Avoid hidden dot-folder paths.
notesmd-cli move "old/path/note" "new/path/note" # rename/move (updates [[wikilinks]])
notesmd-cli delete "path/note"
Add --vault "Name" to any command:
notesmd-cli print "2025-01-10" --vault "Work"
notesmd-cli search "meeting" --vault "Personal"
notesmd-cli daily # open/create today's daily note
notesmd-cli daily --vault "Work" # for a specific vault
date +%Y-%m-%d # today
# Yesterday (GNU first, BSD fallback):
date -d yesterday +%Y-%m-%d 2>/dev/null || date -v-1d +%Y-%m-%d
# Last Friday:
date -d "last friday" +%Y-%m-%d 2>/dev/null || date -v-friday +%Y-%m-%d
# N days ago:
date -d "3 days ago" +%Y-%m-%d 2>/dev/null || date -v-3d +%Y-%m-%d
# Journal entry
notesmd-cli create "$(date +%Y-%m-%d)" --content "- Did the thing" --append
# Task
notesmd-cli create "$(date +%Y-%m-%d)" --content "- [ ] Buy groceries" --append
# Timestamped log
notesmd-cli create "$(date +%Y-%m-%d)" --content "- $(date +%H:%M) Meeting notes here" --append
# With custom folder (e.g. Daily Notes plugin folder)
notesmd-cli create "Daily Notes/$(date +%Y-%m-%d)" --content "- Entry" --append
notesmd-cli print "$(date +%Y-%m-%d)" # today
notesmd-cli print "$(date -d yesterday +%Y-%m-%d 2>/dev/null || date -v-1d +%Y-%m-%d)" # yesterday
notesmd-cli print "2025-01-10" # specific date
Create a new note with content:
notesmd-cli create "Projects/My Project" --content "# My Project\n\nNotes here." --open
Find and read a note:
notesmd-cli search "meeting"
notesmd-cli print "path/from/search/result"
Safe rename preserving links:
notesmd-cli move "old/note name" "new/folder/note name"
Search inside notes:
notesmd-cli search-content "TODO"
notesmd-cli search-content "project alpha"
Prefer direct file edits when appropriate (just edit the .md file); Obsidian picks them up automatically.