Agent skill
obsidian
Create Obsidian plugins and workflows. Develop custom plugins, templates, and automation for personal knowledge management. Use for Obsidian development and PKM systems.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/obsidian-fgarofalo56-suppercharge-microso
SKILL.md
Obsidian Skill
Complete guide for Obsidian - knowledge base on local markdown files.
Quick Reference
Key Concepts
| Concept | Description |
|---|---|
| Vault | Folder containing notes |
| Note | Markdown file |
| Link | Connection between notes |
| Tag | Categorization marker |
| Graph | Visual note connections |
File Structure
vault/
├── .obsidian/ # Settings
│ ├── plugins/
│ ├── themes/
│ └── workspace.json
├── Daily Notes/
├── Templates/
└── Notes/
1. Markdown Syntax
Internal Links
# Basic link
[[Note Name]]
# Link with alias
[[Note Name|Display Text]]
# Link to heading
[[Note Name#Heading]]
# Link to block
[[Note Name#^block-id]]
# Embed note
![[Note Name]]
# Embed specific section
![[Note Name#Heading]]
Tags
# Inline tag
#tag #nested/tag
# YAML frontmatter tags
---
tags: [tag1, tag2, nested/tag]
---
Callouts
> [!note]
> This is a note callout
> [!warning]
> This is a warning
> [!tip]
> This is a tip
> [!info]- Collapsed
> This is collapsed by default
> [!question]+ Expanded
> This is expanded by default
Task Lists
- [ ] Incomplete task
- [x] Completed task
- [/] In progress
- [-] Cancelled
2. Frontmatter (YAML)
Common Properties
---
title: Note Title
date: 2024-01-15
tags: [tag1, tag2]
aliases: [alias1, alias2]
cssclass: custom-class
created: 2024-01-15T10:30:00
modified: 2024-01-16T14:20:00
status: draft
author: Name
---
For Dataview Queries
---
type: book
rating: 5
year: 2024
completed: true
---
3. Templates
Daily Note Template
---
date: {{date}}
tags: [daily]
---
# {{date:dddd, MMMM D, YYYY}}
## Tasks
- [ ]
## Notes
## Journal
---
[[{{date:YYYY-MM-DD|yesterday}}|← Yesterday]] | [[{{date:YYYY-MM-DD|tomorrow}}|Tomorrow →]]
Meeting Template
---
date: {{date}}
tags: [meeting]
attendees:
type: meeting
---
# Meeting: {{title}}
## Attendees
-
## Agenda
1.
## Notes
## Action Items
- [ ]
## Next Steps
Project Template
---
date: {{date}}
tags: [project]
status: active
priority: medium
---
# {{title}}
## Overview
## Goals
- [ ]
## Tasks
- [ ]
## Resources
## Notes
## Log
### {{date}}
-
4. Dataview Plugin
Basic Queries
# List all notes with tag
LIST FROM #tag
# Table of notes
TABLE file.ctime as Created, status
FROM "Projects"
WHERE status = "active"
SORT file.ctime DESC
# Task list
TASK FROM "Daily Notes"
WHERE !completed
GROUP BY file.link
Advanced Queries
# Books read this year
TABLE rating, author, year
FROM #book
WHERE completed AND year = 2024
SORT rating DESC
# Upcoming deadlines
TABLE due, status
FROM "Tasks"
WHERE due >= date(today) AND due <= date(today) + dur(7 days)
SORT due ASC
# Recent notes
LIST
FROM ""
WHERE file.mday >= date(today) - dur(7 days)
SORT file.mday DESC
LIMIT 10
Inline Queries
Total books: `= length(filter(this.file.tasks, (t) => t.completed))`
Today: `= date(today)`
Files in folder: `= length(filter(pages, (p) => p.file.folder = "Notes"))`
5. Templater Plugin
Basic Syntax
<%* /* JavaScript code */ %>
<% /* Output */ %>
<%+ /* Whitespace control */ %>
# Get current date
<% tp.date.now("YYYY-MM-DD") %>
# Get title
<% tp.file.title %>
# Create date with offset
<% tp.date.now("YYYY-MM-DD", 7) %>
# Cursor position
<% tp.file.cursor() %>
User Prompts
<%*
const title = await tp.system.prompt("Enter title");
const type = await tp.system.suggester(
["Task", "Note", "Project"],
["task", "note", "project"]
);
_%>
# <% title %>
Type: <% type %>
File Operations
<%*
// Move file
await tp.file.move("/Archive/" + tp.file.title);
// Rename file
await tp.file.rename("New Name");
// Create file
await tp.file.create_new("Content", "New Note");
// Get file content
const content = await tp.file.content;
%>
Conditional Logic
<%* if (tp.file.tags.includes("daily")) { %>
## Daily Tasks
<%* } else { %>
## General Notes
<%* } %>
6. QuickAdd Plugin
Capture Macro
// Quick capture to inbox
module.exports = async (params) => {
const { app, quickAddApi } = params;
const content = await quickAddApi.inputPrompt("Quick capture");
const file = app.vault.getAbstractFileByPath("Inbox.md");
await app.vault.append(file, `\n- ${content}`);
};
Template Choices
// Dynamic template selection
module.exports = async (params) => {
const templates = ["Meeting", "Task", "Note"];
const choice = await params.quickAddApi.suggester(
templates,
templates
);
// Apply template based on choice
};
7. Vault Organization
Folder Structure Options
PARA Method:
vault/
├── 1 - Projects/
├── 2 - Areas/
├── 3 - Resources/
├── 4 - Archive/
└── Templates/
Zettelkasten:
vault/
├── Fleeting/
├── Literature/
├── Permanent/
└── Index/
Simple:
vault/
├── Daily/
├── Notes/
├── Projects/
├── Templates/
└── Attachments/
8. Hotkeys & Commands
Essential Hotkeys
Cmd/Ctrl + N New note
Cmd/Ctrl + O Quick switcher
Cmd/Ctrl + P Command palette
Cmd/Ctrl + Shift + F Search all files
Cmd/Ctrl + E Toggle edit/preview
Cmd/Ctrl + G Open graph view
Cmd/Ctrl + , Settings
Custom Hotkeys
// .obsidian/hotkeys.json
{
"daily-notes": "Cmd+D",
"templater:insert-template": "Cmd+T"
}
9. CSS Customization
Custom CSS Snippet
/* .obsidian/snippets/custom.css */
/* Change heading colors */
.cm-header-1 {
color: #ff6b6b;
}
/* Style tags */
.tag {
background-color: #e3f2fd;
border-radius: 4px;
padding: 2px 6px;
}
/* Hide frontmatter in preview */
.frontmatter-container {
display: none;
}
/* Custom callout */
.callout[data-callout="custom"] {
--callout-color: 100, 150, 200;
--callout-icon: lucide-star;
}
10. Sync & Backup
Git Backup
# .gitignore
.obsidian/workspace.json
.obsidian/workspace-mobile.json
.obsidian/plugins/*/data.json
.trash/
Obsidian Git Plugin Settings
Backup interval: 10 minutes
Auto pull on startup: true
Commit message: vault backup: {{date}}
Syncthing Setup
1. Install Syncthing on all devices
2. Add vault folder to Syncthing
3. Exclude .obsidian/workspace*.json
4. Enable file versioning
11. Useful Plugins
Essential
- Dataview: Database queries
- Templater: Advanced templates
- QuickAdd: Quick captures
- Periodic Notes: Daily/weekly notes
- Calendar: Calendar view
Productivity
- Tasks: Task management
- Kanban: Kanban boards
- Projects: Project management
- Excalidraw: Drawings
Organization
- Tag Wrangler: Tag management
- Folder Notes: Folder index
- Auto Link Title: Auto fetch titles
- Note Refactor: Split/merge notes
12. Troubleshooting
Common Issues
Sync conflicts:
1. Check for duplicate files with (1) suffix
2. Use Obsidian Sync or single-device editing
3. Enable file versioning in sync tool
Plugin issues:
1. Disable all community plugins
2. Enable one by one to find issue
3. Check console (Cmd+Opt+I)
4. Update plugins and Obsidian
Performance:
1. Reduce vault size
2. Disable unused plugins
3. Optimize Dataview queries
4. Use lazy loading
Best Practices
- Regular backups - Git or sync service
- Consistent naming - Use conventions
- Use templates - Speed up note creation
- Link liberally - Build knowledge graph
- Daily notes - Capture everything
- Review regularly - Process inbox
- Minimal plugins - Only what you need
- Frontmatter - Structured metadata
- Atomic notes - One idea per note
- Document workflows - Create guides for yourself
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?