Expert in managing Obsidian vaults using obsidian-cli workflows for reading, writing, searching, moving, and organizing notes while preserving wiki-link integrity and vault structure. Automatically activates when working with Obsidian vaults, markdown notes with wiki-links, or when internal link integrity needs to be preserved during file operations.
/plugin marketplace add sjungling/claude-plugins/plugin install technical-writer@claude-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
assets/templates/daily-note-template.mdassets/templates/daily-note.mdassets/templates/meeting-note-template.mdassets/templates/meeting.mdassets/templates/project-note-template.mdassets/templates/project.mdreferences/obsidian-cli-reference.mdreferences/obsidian-syntax.mdBefore performing vault operations:
Verify obsidian-cli is installed:
obsidian-cli --version
If obsidian-cli is unavailable:
npm install -g @johnlindquist/obsidian-cli[[wiki-links]]Verify vault is accessible:
obsidian-cli print-default
Use obsidian-cli for all Obsidian vault operations. Standard file tools (mv, Write, Edit) break internal links and ignore vault structure. The obsidian-cli tool automatically preserves [[wiki-links]] and maintains vault integrity.
This skill activates when:
.md files with [[wiki-links]])Don't use for:
| Task | Command | Notes |
|---|---|---|
| Check vault | obsidian-cli print-default | Always run first |
| Read note | obsidian-cli print "Note Name" | Reads by name or path |
| Create note | obsidian-cli create "Name" --content "text" | Add --open to launch Obsidian |
| Update note | obsidian-cli create "Name" --content "text" --append | Use --overwrite to replace |
| Move note | obsidian-cli move "old/path" "new/path" | Auto-updates all links |
| Search content | obsidian-cli search-content "term" | Searches note contents |
| Search names | obsidian-cli search | Fuzzy search (interactive) |
| Daily note | obsidian-cli daily | Create/open today's note |
See also:
# REQUIRED before any operation
obsidian-cli print-default
# Get path for direct file operations if needed
VAULT_PATH=$(obsidian-cli print-default --path-only)
Why: Paths are vault-relative, not repository-relative. Creating files in wrong location breaks vault structure.
# ✅ CORRECT: Auto-updates all links
obsidian-cli move "Random Notes/Design" "Projects/Design"
# ❌ WRONG: Breaks all links to this note
mv "vault/Random Notes/Design.md" "vault/Projects/Design.md"
Critical: obsidian-cli move updates every link in the vault automatically. Using mv or file operations breaks internal references.
# Create new note
obsidian-cli create "Projects/Mobile App" --content "# Mobile App\n\n## Tasks\n- [ ] Task 1"
# Append to existing (safe if file exists)
obsidian-cli create "Daily Log" --content "\n## Update\n- New entry" --append
# Replace existing (use cautiously)
obsidian-cli create "Draft" --content "# Fresh content" --overwrite
Obsidian syntax in --content:
[[Note Name]]#project- [ ] Task\nTemplates: Use provided note templates as starting points for common note types (daily notes, projects, meetings).
# Find notes mentioning topic
obsidian-cli search-content "API design"
# Read found note
obsidian-cli print "Backend/API Design"
# Reorganize (preserves all links)
obsidian-cli move "Backend/API Design" "Projects/Backend/API Design"
| Mistake | Why Wrong | Fix |
|---|---|---|
Using mv to move notes | Breaks all [[wiki-links]] to that note | Use obsidian-cli move |
Using Write tool for notes | Creates files outside vault or wrong location | Use obsidian-cli create --content |
Using Read for vault notes | Misses vault context, no search integration | Use obsidian-cli print |
| Not checking vault first | Operations fail or create files in wrong place | Always run print-default first |
| Manual link updating with sed | Error-prone, misses bidirectional links | obsidian-cli move handles automatically |
| Using absolute paths | Breaks when vault moves | Use vault-relative paths |
Use obsidian-cli first. Only use standard tools when:
Edit after obsidian-cli print)Grep with vault path)Glob on $VAULT_PATH/**/*.md)Always preserve:
---)[[Note]]#tag-name# 1. Check vault
obsidian-cli print-default
# 2. Use obsidian-cli for vault operations
obsidian-cli search-content "search term"
obsidian-cli print "Found Note"
# 3. Use standard tools ONLY when needed
# (e.g., complex editing after reading with obsidian-cli)
Vault operations succeed when:
[[wiki-links]] remain valid after movesCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.