Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Create and develop Obsidian plugins from scratch. Use when building a new Obsidian plugin, scaffolding from the sample-plugin-plus template, or developing plugin features. Covers project setup, manifest configuration, TypeScript development, settings UI, commands, ribbons, modals, and Obsidian API patterns.
Create and develop Obsidian plugins from scratch. Use when building a new Obsidian plugin, scaffolding from the sample-plugin-plus template, or developing plugin features. Covers project setup, manifest configuration, TypeScript development, settings UI, commands, ribbons, modals, and Obsidian API patterns.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Build production-ready Obsidian plugins using the obsidian-sample-plugin-plus template.
# Clone the template (or use GitHub's "Use this template" button) gh repo create my-plugin --template davidvkimball/obsidian-sample-plugin-plus --public --clone cd my-plugin # Or clone directly git clone https://github.com/davidvkimball/obsidian-sample-plugin-plus.git my-plugin cd my-plugin rm -rf .git && git init
Update these files with your plugin's info: manifest.json: { "id": "my-plugin", "name": "My Plugin", "version": "0.0.1", "minAppVersion": "1.5.0", "description": "What your plugin does", "author": "Your Name", "authorUrl": "https://yoursite.com", "isDesktopOnly": false } package.json: Update name, description, author, license. README.md: Replace template content with your plugin's documentation.
pnpm install pnpm obsidian-dev-skills # Initialize AI skills ./scripts/setup-ref-links.sh # Unix # or: scripts\setup-ref-links.bat # Windows
In src/main.ts: Remove sample ribbon icon, status bar, commands, modal, and DOM event Keep the settings tab if needed, or remove it Rename MyPlugin class to your plugin name Delete styles.css if your plugin doesn't need custom styles.
pnpm dev # Watch mode โ rebuilds on changes pnpm build # Production build pnpm lint # Check for issues pnpm lint:fix # Auto-fix issues pnpm test # Run unit tests
Copy build output to your vault: # Unix cp main.js manifest.json styles.css ~/.obsidian/plugins/my-plugin/ # Or create a symlink for development ln -s $(pwd) ~/.obsidian/plugins/my-plugin Enable the plugin in Obsidian Settings โ Community Plugins. Use Hot Reload plugin for automatic reloading during development.
import { Plugin } from 'obsidian'; export default class MyPlugin extends Plugin { settings: MyPluginSettings; async onload() { await this.loadSettings(); // Register commands, ribbons, events, views } onunload() { // Cleanup: remove event listeners, views, DOM elements } async loadSettings() { this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData()); } async saveSettings() { await this.saveData(this.settings); } }
See references/settings.md for the complete settings UI pattern.
See references/patterns.md for: Commands (simple, editor, check callbacks) Ribbon icons Modals Events and lifecycle File operations Editor manipulation
No auto-git: Never run git commit or git push without explicit approval No eslint-disable: Fix lint issues properly, don't suppress them No any types: Use proper TypeScript types Sentence case: UI text uses sentence case (ESLint may false-positive on this โ ignore if so)
Update version in manifest.json and package.json Update versions.json with "version": "minAppVersion" Run pnpm build โ zero errors Run pnpm lint โ zero issues Create GitHub release with tag matching version (no v prefix) Upload: main.js, manifest.json, styles.css (if used)
Settings UI โ Complete settings tab implementation Common Patterns โ Commands, modals, events, file operations Obsidian API Docs โ Official documentation
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.