obsidian-vault-ops
Read and write Obsidian vault files, manage wiki-links, process markdown with YAML frontmatter. Use when working with vault file operations, creating notes, or managing links.
When & Why to Use This Skill
This Claude skill enables comprehensive management of Obsidian vaults by automating core file operations, processing Markdown with YAML frontmatter, and maintaining wiki-link integrity. It streamlines Personal Knowledge Management (PKM) workflows through structured note creation, template utilization, and automated state transitions, making it an essential tool for users leveraging the ACE framework for organized digital thinking.
Use Cases
- Automated Daily Journaling: Automatically generate daily notes using templates, ensuring consistent YAML frontmatter and linking them to relevant project or effort notes.
- Dynamic Knowledge Organization: Categorize and move notes (such as Ideas, Sources, or Efforts) between folders based on their status, while programmatically updating metadata and preserving link consistency.
- Meeting & Project Tracking: Create structured meeting notes with specific properties like attendees and project tags, and automatically file them into the correct chronological or topical directory.
- Vault Maintenance & Refactoring: Perform bulk updates to YAML frontmatter or refactor wiki-links across the vault to ensure the knowledge base remains clean, searchable, and well-connected.
| name | obsidian-vault-ops |
|---|---|
| description | Read and write Obsidian vault files, manage wiki-links, process markdown with YAML frontmatter. Use when working with vault file operations, creating notes, or managing links. |
Obsidian Vault Operations Skill
Core operations for managing an Obsidian vault with the ACE framework.
File Operations
Creating Notes
Always include YAML frontmatter:
---
date: YYYY-MM-DD
tags: []
# Additional properties based on note type
---
Note Types and Locations
| Type | Location | Required Properties |
|---|---|---|
| Daily | calendar/daily/ |
date, tags |
| Meeting | calendar/meetings/ |
date, tags, attendees, project |
| Idea | atlas/ideas/ |
date, tags, status, related |
| Source | atlas/sources/ |
date, tags, type, author, status |
| Effort | efforts/{state}/ |
date, tags, energy, area, due |
| MOC | */maps/ |
date, tags |
File Naming
- Daily notes:
YYYY-MM-DD.md - Other notes:
kebab-case-name.md - No spaces in filenames
Wiki-Links
Link Syntax
[[note-name]] # Basic link
[[note-name|Display Text]] # Aliased link
[[note-name#Heading]] # Link to section
[[folder/note-name]] # Link with path
Link Best Practices
- Use relative paths from vault root
- Always link to actual files
- Use aliases for cleaner reading
- Link efforts from daily notes
Templates
Located in x/templates/:
daily.md- Daily note templateeffort.md- Effort templateidea.md- Idea templatesource.md- Source templatemeeting.md- Meeting templatemoc.md- Map of Content template
Template Variables
{{date}}- Current date{{date:format}}- Formatted date{{title}}- Note title
Frontmatter Processing
Reading Frontmatter
// Parse YAML between --- markers
const frontmatter = parseYAML(content.split('---')[1]);
Updating Frontmatter
Preserve existing properties, update only specified ones.
Obsidian Bases
.base files in views/ folders use JSON format:
{
"name": "View Name",
"query": {
"folder": "path/to/folder"
},
"view": {
"type": "table",
"columns": [...]
},
"sort": [...]
}
Common Operations
Create Daily Note
- Check if exists:
calendar/daily/YYYY-MM-DD.md - Read template:
x/templates/daily.md - Replace variables
- Write to daily folder
Move Effort Between States
- Read effort file
- Update
energyproperty in frontmatter - Move file to new state folder
- Update any links in dashboard
Process Inbox Item
- Read item from
+/notes/ - Determine destination based on content
- Add appropriate frontmatter
- Move to destination
- Delete from inbox
Safety
- Always backup before bulk operations
- Preserve existing frontmatter
- Validate links before creating
- Don't modify
.obsidian/config files