plugins/technical-writer/skills/obsidian-vault-manager/SKILL.md
This skill should be used when the user asks to "manage Obsidian vault", "create a daily note", "move notes without breaking links", "search vault content", or "organize Obsidian notes". Automatically activates when working with Obsidian vaults, markdown notes with [[wiki-links]], daily notes, templates, or tags. Not for general markdown editing outside Obsidian vaults.
npx skillsauth add sjungling/sjungling-claude-plugins obsidian-vault-managerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Before 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.
If obsidian-cli is not installed: Warn the user that move/rename operations will break wiki-links. Offer to install (npm install -g @johnlindquist/obsidian-cli). Read and search operations are safe with standard tools.
# ✅ 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 movestesting
This skill should be used when the user asks to "start a service in tmux", "check tmux pane output", "manage background processes", or "run a server in a pane". Automatically activates when running in a TMUX session (detected by SessionStart hook). Not for one-off commands that do not need a persistent pane.
development
This skill should be used when the user asks to "write a README", "create API documentation", "draft release notes", "write a tutorial", "structure documentation", or "review docs for clarity". Automatically activates when working with .md files in docs/ directories, README files, or when discussing documentation structure, style guides, or content organization. Not for creative/marketing writing, academic papers, code comments/docstrings, or internal chat.
testing
This skill should be used when the user asks to "generate a PDF from markdown", "create a printable book", "convert documentation to PDF", or "export chapters as a PDF". Automatically activates when producing a PDF from a directory of ordered markdown chapters using pandoc and weasyprint. Not for single-file markdown-to-PDF conversion or non-documentation use cases.
development
This skill should be used when the user asks to "build an iOS app", "create a SwiftUI view", "fix Xcode build errors", "implement Core Data", "design app architecture", or "optimize Swift performance". Automatically activates when working with .swift files, Xcode projects (.xcodeproj, .xcworkspace), SwiftUI interfaces, or Apple platform frameworks (UIKit, Core Data, Combine, WidgetKit, App Intents). Not for cross-platform frameworks (React Native, Flutter), non-Apple platforms, or backend server development.