Obsidian Operations Skill
CLI-first approach to all vault operations. Always use obsidian commands directly.
If commands fail, tell the user: "Obsidian CLI isn't working — update Obsidian with CLI enabled."
Quick Reference
| Operation | CLI Command |
|-----------|------------|
| Read file | obsidian read path="..." |
| Create file | obsidian create path="..." content="..." silent |
| Append | obsidian append path="..." content="..." silent |
| Search | obsidian search query="..." format=json |
| List files | obsidian files folder="..." format=json |
| Daily note | obsidian daily:read |
File Targeting
| Parameter | Behavior | Example |
|-----------|----------|---------|
| file=<name> | Wikilink-style resolution (no path/ext needed) | file=Recipe finds Recipes/Recipe.md |
| path=<path> | Exact path from vault root | path="3 - Resources/TIL/til-2026-02-16.md" |
Vault Structure
Default vault: /Users/kriscard/obsidian-vault-kriscard
Key paths:
0 - Inbox/- Incoming notes1 - Projects/- Active projects2 - Areas/- Ongoing responsibilities3 - Resources/- Reference material4 - Archives/- Completed/inactiveTemplates/- Note templates
Gotchas
- Always use
silentflag for non-interactive operations — without it Obsidian opens the file and steals focus - Paths with spaces need quoting:
path="3 - Resources/TIL/note.md" file=resolution is wikilink-style (name only, no ext) — usepath=when you know the exact path- CLI requires Obsidian to be running with CLI enabled — if commands fail, tell user to check Settings > General > CLI
deletesends to trash by default — addpermanentflag only when user explicitly confirms permanent deletionformat=jsonis essential when parsing output programmatically — text format is for display only
Best Practices
- Use
silentflag - Always addsilentfor non-interactive operations - Use
format=json- For parsing output programmatically - Prefer
file=- When you know the name but not the path - Use
path=- When you know the exact path - Batch operations - Use parallel calls when checking multiple files
- Templates - Use
template=parameter when creating from templates - Confirmation - Never delete without explicit user confirmation
CLI Requirements
Obsidian CLI requires:
- Obsidian with CLI enabled: Settings > General > Command line interface
- Obsidian must be running
If CLI commands fail, tell the user "Obsidian CLI isn't working — update Obsidian with CLI enabled."
Reference Files
| Reference | Contents | |-----------|----------| | cli-reference.md | Full CLI commands: file ops, daily notes, tasks, tags, links, properties, templates, outline, vault info, flags, output formats | | obsidian-utils.md | obsidian-utils.sh wrapper script commands |