# Obsidian Vault Ops

Read and write Obsidian vault files, manage wiki-links, process markdown with YAML...

- Repository: https://github.com/ballred/obsidian-claude-pkm (1886 stars)
- Category: Writing
- License: MIT
- Last updated: 2026-02-18
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add ballred/obsidian-claude-pkm --skill obsidian-vault-ops -g -a claude-code -y`
Codex: `npx skills add ballred/obsidian-claude-pkm --skill obsidian-vault-ops -g -a codex -y`
Cursor: `npx skills add ballred/obsidian-claude-pkm --skill obsidian-vault-ops -g -a cursor -y`
Gemini CLI: `npx skills add ballred/obsidian-claude-pkm --skill obsidian-vault-ops -g -a gemini-cli -y`

## 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.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Obsidian Vault Operations Skill

Core operations for reading, writing, and managing files in an Obsidian vault.

## Vault Structure

```
vault-root/
├── CLAUDE.md           # Main context (always read first)
├── Daily Notes/        # YYYY-MM-DD.md format
├── Goals/              # Goal cascade files
├── Projects/           # Project folders with CLAUDE.md
├── Templates/          # Reusable note structures
└── Archives/           # Completed/inactive content
```

## File Operations

### Reading Notes
- Use Glob to find files: `*.md`, `Daily Notes/*.md`
- Read CLAUDE.md first for vault context
- Check for wiki-links to related notes

### Creating Notes
1. Check if note already exists
2. Use appropriate template if available
3. Add YAML frontmatter with date and tags
4. Insert wiki-links to related notes

### Editing Notes
- Preserve YAML frontmatter structure
- Maintain existing wiki-links
- Use consistent heading hierarchy
- Apply standard tag format

## Wiki-Link Format

```markdown
[[Note Name]]                    # Simple link
[[Note Name|Display Text]]       # Link with alias
[[Note Name#Section]]            # Link to section
```

## YAML Frontmatter

Standard frontmatter structure:
```yaml
---
date: 2024-01-15
tags: [tag1, tag2]
status: active
---
```

## Template Variables

When processing templates, replace:
- `{{date}}` - Today's date (YYYY-MM-DD)
- `{{date:format}}` - Formatted date
- `{{date-1}}` - Yesterday
- `{{date+1}}` - Tomorrow
- `{{time}}` - Current time

## Common Patterns

### Daily Note Creation
1. Calculate today's date in YYYY-MM-DD format
2. Check if `Daily Notes/{date}.md` exists
3. If not, read `Templates/Daily Template.md`
4. Replace template variables
5. Write to `Daily Notes/{date}.md`

### Finding Related Notes
1. Extract key terms from current note
2. Search vault for matching content
3. Suggest wiki-links to related notes

The rest: https://github.com/ballred/obsidian-claude-pkm/blob/HEAD/vault-template/.claude/skills/obsidian-vault-ops/SKILL.md
