obsidian-performance-tuning

Featured

Optimize Obsidian plugin performance for smooth operation in large vaults. Use when experiencing lag, memory issues, slow startup, or optimizing plugin code for vaults with thousands of files. Trigger with phrases like "obsidian performance", "obsidian slow", "optimize obsidian plugin", "obsidian memory usage", "obsidian lag".

AI & Automation 2,266 stars 315 forks Updated today MIT

Install

View on GitHub

Quality Score: 99/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Obsidian Performance Tuning ## Overview Optimize Obsidian plugin performance for large vaults (10,000+ files): profile bottlenecks with DevTools, implement lazy initialization, process files in batches with UI yielding, use LRU caches with bounded memory, debounce event handlers, and optimize DOM rendering with virtual scrolling and DocumentFragment. ## Prerequisites - Working Obsidian plugin with at least one performance concern - Developer Console access (Ctrl+Shift+I / Cmd+Option+I) - Understanding of async JavaScript and the event loop ## Performance Benchmarks | Metric | Good | Warning | Critical | |--------|------|---------|----------| | Plugin load time (`onload`) | < 100ms | 100-500ms | > 500ms | | Command execution | < 50ms | 50-200ms | > 200ms | | Single file operation | < 10ms | 10-50ms | > 50ms | | Memory increase on load | < 10MB | 10-50MB | > 50MB | | Event handler execution | < 5ms | 5-20ms | > 20ms | ## Instructions ### Step 1: Profile with DevTools Performance Tab ```typescript // Add timing instrumentation to identify bottlenecks export default class MyPlugin extends Plugin { async onload() { const loadStart = performance.now(); await this.loadSettings(); console.log(`[perf] loadSettings: ${(performance.now() - loadStart).toFixed(1)}ms`); const indexStart = performance.now(); await this.buildIndex(); console.log(`[perf] buildIndex: ${(performance.now() - indexStart).toFixed(1)}ms`); const cmdStart = performance.now();...

Details

Author
jeremylongshore
Repository
jeremylongshore/claude-code-plugins-plus-skills
Created
7 months ago
Last Updated
today
Language
Python
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Featured

obsidian-rate-limits

Handle Obsidian file system operations and throttling patterns. Use when processing many files, handling bulk operations, or preventing performance issues from excessive operations. Trigger with phrases like "obsidian rate limit", "obsidian bulk operations", "obsidian file throttling", "obsidian performance limits".

2,266 Updated today
jeremylongshore
AI & Automation Featured

obsidian-cost-tuning

Optimize Obsidian resource usage, sync storage, Publish hosting, and third-party plugin API costs. Use when managing vault size, reducing Sync bandwidth, controlling Publish costs, or optimizing external API consumption from community plugins. Trigger with phrases like "obsidian costs", "obsidian sync storage", "optimize obsidian", "reduce obsidian costs", "obsidian publish costs".

2,266 Updated today
jeremylongshore
AI & Automation Featured

obsidian-data-handling

Implement vault data backup, sync, and recovery strategies. Use when building backup features, implementing data export, or handling vault synchronization in your plugin. Trigger with phrases like "obsidian backup", "obsidian sync", "obsidian data export", "vault backup strategy".

2,266 Updated today
jeremylongshore
AI & Automation Featured

obsidian-sdk-patterns

Production-ready Obsidian plugin patterns: typed settings with migration, safe vault operations, event auto-cleanup, workspace layout, metadata cache, and debounced file handlers. Use when hardening a plugin for release, refactoring for reliability, or learning idiomatic Obsidian TypeScript. Trigger with "obsidian patterns", "obsidian best practices", "obsidian production code", "idiomatic obsidian plugin".

2,266 Updated today
jeremylongshore
Data & Documents Solid

obsidian

Comprehensive guidelines for Obsidian.md plugin development including ESLint rules from eslint-plugin-obsidianmd v0.3.0, TypeScript best practices, memory management, API usage (requestUrl vs fetch), UI/UX standards, popout window compatibility, community.obsidian.md submission process, and Scorecard optimization. Use when working with Obsidian plugins, main.ts files, manifest.json, Plugin class, MarkdownView, TFile, vault operations, or any Obsidian API development.

143 Updated 3 days ago
gapmiss