Obsidian (Linux)

v1.2.0

Work with Obsidian vaults (plain Markdown notes) and automate via notesmd-cli.

0· 620·3 current·3 all-time
byDenis Pisarev@tripleight
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
Name/description match the instructions: the skill expects to automate Obsidian vaults via the notesmd-cli tool and references reading the Obsidian config to locate vaults, which is reasonable. Minor inconsistency: the registry metadata lists no required config paths, while the SKILL.md explicitly instructs reading ~/.config/obsidian/obsidian.json (Linux) and the macOS path — this should have been declared.
Instruction Scope
Instructions are narrowly scoped to vault operations (list, search, read, create, move, delete) and to reading the Obsidian config file to resolve vault paths. They do not instruct broad system probing or network exfiltration. The only notable scope action is reading the user's obsidian.json config file in the home directory — reasonable for locating vaults but not declared as a required config path.
!
Install Mechanism
The install spec points to a third-party Homebrew tap (yakitrak/yakitrak/notesmd-cli) and an AUR package (notesmd-cli-bin). Both sources can deliver arbitrary binaries; neither is a standard official repo listing. Because the skill would cause or instruct installation of a binary from community/third-party packaging, you should verify the upstream source and trustworthiness of those packages before installing.
Credentials
The skill requests no environment variables or credentials, which is appropriate. However, it does rely on reading the user's Obsidian config file path (home directory), which was not listed under required config paths — a minor mismatch between declared requirements and instructions.
Persistence & Privilege
The skill is not always-enabled and is user-invocable; it does not request elevated or persistent platform privileges. It does not claim to modify other skills or system-wide agent settings.
What to consider before installing
This skill is instruction-only and uses notesmd-cli to operate on your local Obsidian vaults; reading ~/.config/obsidian/obsidian.json is necessary to find vaults and is expected behavior. Before installing or using it: - Prefer installing notesmd-cli yourself from a known upstream (GitHub releases or the official project) rather than implicitly trusting a third-party Homebrew tap or an AUR binary package. Review the yakitrak tap and the AUR package source and checksums. - Confirm the notesmd-cli project's repository, maintainers, and release integrity (signatures/checksums) so you know what binary will run on your machine. - If unsure, install notesmd-cli manually and keep it on your PATH; the skill only needs that binary and no extra credentials. - Note the small metadata inconsistency (the SKILL.md reads your obsidian config file but the skill declared no required config paths and the embedded _meta.json ownerId differs from the registry owner id). That could be benign bookkeeping, but it’s worth asking the publisher for clarification. If the package source and owner are trustworthy, the skill appears coherent; if you cannot verify the binary's origin, avoid installing it.

Like a lobster shell, security has layers — review code before you run it.

latestvk9744ys0cpnk9sctbwcrc5f6js81az0q

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

💎 Clawdis
Binsnotesmd-cli

Install

Install notesmd-cli (brew, macOS)
Bins: notesmd-cli
brew install yakitrak/yakitrak/notesmd-cli

SKILL.md

Obsidian

Obsidian vault = a normal folder on disk with Markdown files.

Vault structure (typical):

  • Notes: *.md (plain text Markdown; edit with any editor)
  • Config: .obsidian/ (workspace + plugin settings; don't touch from scripts)
  • Canvases: *.canvas (JSON)
  • Attachments: whatever folder you chose in Obsidian settings (images/PDFs/etc.)

Setup

Find active vault(s)

Obsidian desktop tracks vaults in a config file (source of truth):

  • macOS: ~/Library/Application Support/obsidian/obsidian.json
  • Linux: ~/.config/obsidian/obsidian.json

notesmd-cli resolves vaults from that file; vault name is the folder name (path suffix).

Verify default vault

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 quick reference

Vault info

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

Search

notesmd-cli search "query"             # fuzzy search note names
notesmd-cli search-content "query"     # search inside notes (shows snippets + lines)

Read

notesmd-cli print "path/note"          # print note contents
notesmd-cli frontmatter "path/note"    # view or modify note frontmatter

Create & edit

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.

Move / delete

notesmd-cli move "old/path/note" "new/path/note"  # rename/move (updates [[wikilinks]])
notesmd-cli delete "path/note"

Multi-vault

Add --vault "Name" to any command:

notesmd-cli print "2025-01-10" --vault "Work"
notesmd-cli search "meeting" --vault "Personal"

Daily notes

notesmd-cli daily                      # open/create today's daily note
notesmd-cli daily --vault "Work"       # for a specific vault

Get current date (cross-platform)

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

Append to daily note

# 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

Read a daily note

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

Common patterns

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.

Files

2 total
Select a file
Select a file to preview.

Comments

Loading comments…