Obsidian Vault Manager Plugin
Manage an AI-powered Obsidian knowledge base with automatic organization and GitHub Pages publishing.
Features
- YouTube Video Capture: Fetch transcripts and create comprehensive notes (
/youtube-note) - Smart AI Tagging: Automatic tagging based on content analysis (
/capture,/idea) - Bundled Scripts: Executable scripts for transcript fetching and publishing
- Template System: Consistent note structure across all content types
- GitHub Pages Publishing: Publish notes to your public sharehub (
/publish)
Installation
Claude Code CLI (Recommended)
- Add the plugin marketplace:
/plugin marketplace add ZorroCheng-MC/obsidian-vault-manager-plugin
- Install the plugin:
# Option A: Browse available plugins
/plugin
# Option B: Install directly
/plugin install obsidian-vault-manager@ZorroCheng-MC/obsidian-vault-manager-plugin
- Verify installation:
/plugin list
# Should show: obsidian-vault-manager
Manual Installation (Legacy)
For development or when marketplace is unavailable:
# Clone to Claude plugins directory
mkdir -p ~/.claude/plugins
cd ~/.claude/plugins
git clone https://github.com/ZorroCheng-MC/obsidian-vault-manager-plugin.git obsidian-vault-manager
# Make scripts executable
chmod +x ~/.claude/plugins/obsidian-vault-manager/scripts/core/*.sh
Bundled Resources
Scripts
Core Scripts (scripts/core/):
fetch-youtube-transcript.sh- Fetches YouTube transcripts using youtube_transcript_api
Validation Scripts (scripts/validation/):
validate-frontmatter.py- Validates note frontmatter structure
Templates
templates/youtube-note-template.md - Structured template for YouTube video notes with:
- Comprehensive frontmatter
- Learning objectives
- Curriculum structure
- Key takeaways sections
- Rating and tags analysis
Usage
In Claude Code CLI
/youtube-note https://youtu.be/VIDEO_ID
In Claude Desktop
Simply provide a YouTube URL:
Create a note from this video: https://youtu.be/VIDEO_ID
Optional: Automatic Validation Hooks
For advanced users who want automatic frontmatter validation before note creation, you can configure hooks in your Claude Code settings.
Hook Setup
Add the following to your ~/.claude/settings.json:
{
"hooks": {
"PreToolUse": [
{
"description": "Validate frontmatter before creating Obsidian notes",
"matcher": "mcp__obsidian-mcp-tools__create_vault_file",
"hooks": [
{
"type": "command",
"command": "python3 ~/.claude/skills/obsidian-vault-manager/scripts/validation/validate-frontmatter.py"
}
]
}
]
}
}
What Hooks Do
When configured, the validation hook will:
- ✅ Run automatically before every note creation
- ✅ Check for required frontmatter fields (title, tags, date, type)
- ✅ Validate tag structure (must be a list)
- ✅ Verify content type tag is present (video, article, idea, etc.)
- ✅ Warn if 'inbox' tag is missing
- ❌ Block creation if validation fails
Hook Behavior
Exit Codes:
0- Validation passed, allow creation1- Warning only, allow creation with message2- Validation failed, block creation
Without Hooks: Claude runs validation script as part of SKILL.md workflow (default behavior)
With Hooks: Automatic enforcement before any Obsidian note creation (opt-in)
Testing Scripts
Test Transcript Fetching
# Test with a video ID
~/.claude/skills/obsidian-vault-manager/scripts/core/fetch-youtube-transcript.sh jI2LC3WTryw
Test Validation
# Create a test file
cat > test-note.md << 'EOF'
---
title: "Test Video"
tags: [video, AI, inbox]
date: 2025-10-28
type: video
---
# Test
EOF
# Validate it
python3 ~/.claude/skills/obsidian-vault-manager/scripts/validation/validate-frontmatter.py test-note.md
Tag Taxonomy
Content Type Tags (choose 1)
idea,video,article,study-guide,repository,reference,project
Topic Tags (choose 2-4)
AI,productivity,knowledge-management,development,learning,research,writing,tools,business,design,automation,data-science,web-development,personal-growth,finance
Status Tags (choose 1)
inbox,processing,evergreen,published,archived,needs-review
Metadata Tags (choose 0-2)
high-priority,quick-read,deep-dive,technical,conceptual,actionable,tutorial,inspiration
Total tags: 6-8 for optimal filtering
Troubleshooting
Script Permission Errors
Make scripts executable:
chmod +x ~/.claude/skills/obsidian-vault-manager/scripts/core/*.sh
chmod +x ~/.claude/skills/obsidian-vault-manager/scripts/validation/*.py
Transcript Fetching Fails
Ensure uvx and youtube_transcript_api are available:
uvx youtube_transcript_api --help
Validation Errors
Check Python dependencies:
python3 -c "import yaml; print('PyYAML installed')"
If missing:
pip3 install pyyaml
Structure
~/.claude/skills/obsidian-vault-manager/
├── SKILL.md # Main skill file with instructions
├── README.md # This file
├── scripts/
│ ├── core/
│ │ └── fetch-youtube-transcript.sh
│ └── validation/
│ └── validate-frontmatter.py
└── templates/
└── youtube-note-template.md
Version
- Version: 1.0.0 (Post-Migration)
- Migration Date: 2025-10-28
- Architecture: Skill-primary with bundled scripts
License
This skill is provided for personal use. Modify and distribute as needed.
Support
For issues or questions:
- Check this README
- Verify script permissions
- Test scripts individually
- Review SKILL.md for workflow details
Note: Hooks are optional. The skill works without hook configuration - Claude will run validation scripts as part of the workflow instructions in SKILL.md.