169 lines
5.9 KiB
Markdown
169 lines
5.9 KiB
Markdown
---
|
|
name: obsidian-vault-manager
|
|
description: 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.
|
|
---
|
|
|
|
# Obsidian Vault Manager
|
|
|
|
## Prerequisites
|
|
|
|
Before performing vault operations:
|
|
|
|
1. **Verify obsidian-cli is installed:**
|
|
```bash
|
|
obsidian-cli --version
|
|
```
|
|
|
|
2. **If obsidian-cli is unavailable:**
|
|
- Install via: `npm install -g @johnlindquist/obsidian-cli`
|
|
- Fallback: Standard file operations can be used but will NOT preserve wiki-links
|
|
- Warning: Without obsidian-cli, moving notes will break all internal `[[wiki-links]]`
|
|
|
|
3. **Verify vault is accessible:**
|
|
```bash
|
|
obsidian-cli print-default
|
|
```
|
|
|
|
## Overview
|
|
|
|
**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.
|
|
|
|
## When to Use
|
|
|
|
This skill activates when:
|
|
- Working with Obsidian vaults (`.md` files with `[[wiki-links]]`)
|
|
- Moving/renaming notes (links must stay valid)
|
|
- Creating notes with Obsidian-specific syntax (wiki-links, checkboxes, tags)
|
|
- Searching vault content or note names
|
|
- Organizing multiple notes across folders
|
|
|
|
**Don't use for:**
|
|
- General markdown editing outside Obsidian vaults
|
|
- Static documentation (no internal links)
|
|
- Single-file markdown operations
|
|
|
|
## Quick Reference
|
|
|
|
| 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:**
|
|
- [Complete obsidian-cli Command Reference](./references/obsidian-cli-reference.md) - All commands with flags and advanced usage
|
|
- [Obsidian Syntax Reference](./references/obsidian-syntax.md) - Wiki-links, tags, frontmatter, and markdown syntax
|
|
- [Note Templates](./assets/templates/) - Daily note, project, and meeting templates
|
|
|
|
## Core Workflows
|
|
|
|
### Always Check Vault First
|
|
|
|
```bash
|
|
# 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.
|
|
|
|
### Moving/Reorganizing Notes
|
|
|
|
```bash
|
|
# ✅ 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.
|
|
|
|
### Creating/Updating Notes
|
|
|
|
```bash
|
|
# 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`:**
|
|
- Wiki-links: `[[Note Name]]`
|
|
- Tags: `#project`
|
|
- Checkboxes: `- [ ] Task`
|
|
- Newlines: `\n`
|
|
|
|
**Templates:** Use provided [note templates](./assets/templates/) as starting points for common note types (daily notes, projects, meetings).
|
|
|
|
### Searching and Organizing
|
|
|
|
```bash
|
|
# 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"
|
|
```
|
|
|
|
## Common Mistakes
|
|
|
|
| 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 |
|
|
|
|
## When to Use Standard Tools
|
|
|
|
**Use `obsidian-cli` first.** Only use standard tools when:
|
|
- Bulk editing note contents (use `Edit` after `obsidian-cli print`)
|
|
- Complex search patterns (use `Grep` with vault path)
|
|
- File pattern matching (use `Glob` on `$VAULT_PATH/**/*.md`)
|
|
|
|
**Always preserve:**
|
|
- Frontmatter (YAML between `---`)
|
|
- Obsidian link syntax `[[Note]]`
|
|
- Tag syntax `#tag-name`
|
|
- Markdown structure
|
|
|
|
## Integration Pattern
|
|
|
|
```bash
|
|
# 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)
|
|
```
|
|
|
|
## Success Criteria
|
|
|
|
Vault operations succeed when:
|
|
- All `[[wiki-links]]` remain valid after moves
|
|
- Notes created in correct vault location
|
|
- Markdown and frontmatter preserved
|
|
- Search returns accurate results
|
|
- No broken links or orphaned notes
|