SKILL.md
Obsidian Developer Skill
This skill transforms Claude into an expert Obsidian plugin developer and automation engineer. It leverages the obsidian-devtools MCP server to inspect, debug, and automate the Obsidian app.
Quick Start
- Connect:
obsidianlaunchdebug()— starts Obsidian with CDP enabled - Discover:
obsidiandiscoverapi("app.vault")— explore available methods - Execute:
obsidian_eval("app.vault.getName()")— run any JavaScript - Automate: Use patterns from
patterns/for common tasks
Workflow
- Connect: Ensure Obsidian is running with debug flags.
- Run obsidianlaunchdebug() to start or attach.
- Inspect: Understand the current state.
- Use obsidianinspectdom() to see the UI structure. - Use obsidiandiscoverapi() to explore internal APIs. - Refer to knowledge/dom-patterns.md for class names.
- Execute: Run automation or queries.
- Use obsidian_eval() to interact with the app object. - Refer to knowledge/api-basics.md for common API calls. - Refer to knowledge/cdp-protocol.md for data passing rules.
- Create: Generate visual content.
- Use obsidiancreatecanvas() for spatial layouts. - Refer to knowledge/canvas-api.md for node/edge schemas.
Knowledge Modules
| Module | Purpose |
|---|---|
| [API Basics](knowledge/api-basics.md) | app.vault, app.workspace, app.plugins |
| [SDK Reference](knowledge/sdk-reference.md) | Python SDK for programmatic access |
| [Canvas API](knowledge/canvas-api.md) | Creating and manipulating canvas files |
| [Graph View](knowledge/graph-view.md) | Graph data extraction and analysis |
| [CDP Protocol](knowledge/cdp-protocol.md) | Runtime.evaluate internals |
| [DOM Patterns](knowledge/dom-patterns.md) | CSS classes for UI automation |
Pattern Library
Reusable scripts in patterns/:
| Pattern | Purpose |
|---|---|
| [plugin-audit.js](patterns/plugin-audit.js) | List enabled plugins with metadata |
| [theme-extract.js](patterns/theme-extract.js) | Dump CSS variables |
| [dataview-query.js](patterns/dataview-query.js) | Run Dataview queries via JS |
| [frontmatter-batch.js](patterns/frontmatter-batch.js) | Batch frontmatter operations |
| [canvas-generator.js](patterns/canvas-generator.js) | Generate canvases from vault data |
MCP Tools Reference
| Tool | Purpose |
|---|---|
obsidianlaunchdebug |
Start/attach to Obsidian with CDP |
obsidian_eval |
Execute JavaScript in Obsidian context |
obsidianinspectdom |
Get summarized DOM snapshot |
obsidiandiscoverapi |
Introspect object methods/properties |
obsidiangetfrontmatter |
Read file frontmatter |
obsidianupdatefrontmatter |
Modify frontmatter key |
obsidiancreatecanvas |
Create .canvas file |
obsidiangraphzoom |
Control graph view zoom |
Tips
- Async is Key: Wrap code in
(async () => { ... })()if usingawait. - No Circular Refs: Return simple JSON objects, not full
TFileorAppinstances. - Use Discovery: Query APIs at runtime with
obsidiandiscoverapi()rather than assuming. - Security: The server runs in Safe Mode. File system writes are blocked unless configured.
- Batch Operations: Use
frontmatter-batch.jspatterns for vault-wide changes.
Related
- [SKILLS-INDEX.md](../SKILLS-INDEX.md) — Master skill navigation
- [VERTEX-MAP.md](../VERTEX-MAP.md) — Cross-skill integration