This skill should be used when the user asks to "create a note in Obsidian", "add to my vault", "search notes by tag", "find orphaned notes", "list recent notes", "analyze vault connections", "parse frontmatter", or needs to work with any Obsidian vault or markdown folder.
This skill inherits all available tools. When active, it can use any tool Claude has access to.
pyproject.tomlreferences/advanced.mdreferences/command-reference.mdscripts/link_analyzer.pyscripts/note_creator.pyscripts/setup_check.pyscripts/simple_yaml.pyscripts/vault_ops.pyShape any Obsidian vault or markdown folder - create notes, search content, and analyze connections. No external dependencies required.
Before running ANY vault operation, you MUST check if the vault is configured.
Setup Flow (Steps Must Be Sequential):
Step 1: Check status
↓
├─ ready → Skip to Step 5 (proceed with operation)
└─ needs_setup or suggest_folders → Continue below
Step 2: Ask user for vault path + Scan path
↓ (MUST continue to Step 3)
Step 3: Show scan results + Ask user to confirm settings
↓ (MUST wait for user response)
Step 4: Write config with user-confirmed settings
↓
Step 5: Proceed with original request
⚠️ You CANNOT skip steps. Each step must complete before proceeding to the next.
uv run python skills/obsidian-shaper/scripts/setup_check.py
This returns JSON with a status field:
| Status | Meaning | Required Next Step |
|---|---|---|
ready | Vault configured and valid | Skip to Step 5 (proceed with operation) |
needs_setup | No vault configured | MUST proceed to Step 2 → Step 3 → Step 4 |
suggest_folders | Vault path set, folders not configured | MUST proceed to Step 3 → Step 4 |
needs_setup - Ask User for Vault PathUse AskUserQuestion to ask:
Question: "Where is your Obsidian vault or notes folder located?"
Options:
~/Desktop/Vault~/Documents/Obsidian~/ObsidianThen scan the path to detect patterns:
uv run python skills/obsidian-shaper/scripts/setup_check.py scan "<USER_PATH>"
⚠️ STOP - Do not proceed to Step 4 yet. You MUST complete Step 3 first.
After running the scan above, examine the JSON output for detected folders.
You MUST ask the user the following question, regardless of whether folders were detected:
Use AskUserQuestion with this format:
If folders were detected:
If no folders were detected:
DO NOT proceed to Step 4 until the user responds.
⚠️ Only execute this step AFTER receiving the user's response in Step 3.
Based on the user's choice from Step 3, construct the command:
If user chose "Yes, use detected settings":
uv run python skills/obsidian-shaper/scripts/setup_check.py write "<VAULT_PATH>" \
--templates "<DETECTED_TEMPLATES>" \
--output "<DETECTED_OUTPUT>"
If user chose "No, use vault root" or "Use vault root for everything":
uv run python skills/obsidian-shaper/scripts/setup_check.py write "<VAULT_PATH>"
(Omit both --templates and --output flags)
If user chose "Let me customize" or "Let me specify folders": Ask follow-up questions for folder names, then include those in the command.
WARNING: Only include --templates and --output flags if the user explicitly confirmed those settings in Step 3.
Once setup is complete, run the original command the user requested.
uv run python skills/obsidian-shaper/scripts/note_creator.py "Note Title" \
--tags tag1 tag2 \
--content "Note content here" \
--subfolder "Subfolder" # Optional
uv run python skills/obsidian-shaper/scripts/vault_ops.py search --tag <TAG>
uv run python skills/obsidian-shaper/scripts/vault_ops.py list
uv run python skills/obsidian-shaper/scripts/vault_ops.py list --recent 7
uv run python skills/obsidian-shaper/scripts/vault_ops.py list --folder "Subfolder"
uv run python skills/obsidian-shaper/scripts/vault_ops.py frontmatter "path/to/note.md"
uv run python skills/obsidian-shaper/scripts/vault_ops.py links "path/to/note.md"
uv run python skills/obsidian-shaper/scripts/link_analyzer.py orphans
uv run python skills/obsidian-shaper/scripts/link_analyzer.py suggest "path/to/note.md"
uv run python skills/obsidian-shaper/scripts/link_analyzer.py related "path/to/note.md"
uv run python skills/obsidian-shaper/scripts/link_analyzer.py graph --output graph.json
suggest to find related notesorphans to find disconnected notessuggest to get link recommendationsrelated to find notes with shared tagsreferences/command-reference.md - Complete CLI referencereferences/advanced.md - Python API and troubleshootingsetup_check.py - Setup verification and auto-detectionvault_ops.py - List, search, frontmatter, linksnote_creator.py - Create notes with frontmatterlink_analyzer.py - Analyze connections, orphans, suggestions