Agent skill · software engineering · jeremylongshore
obsidian-rate-limits
Handle Obsidian file system operations and throttling patterns.
Why this skill is useful
Provides specific patterns for debouncing, throttling, and batching file operations in Obsidian that the AI wouldn't reliably generate on its own.
What it needs
Requires obsidian installed locally. About 5k tokens when loaded. Last updated 2026-08-07. 2,604 stars on the source repository.
What this skill does
Obsidian Rate Limits Overview Obsidian has no traditional API rate limits, but it runs on Electron with a single-threaded UI. This skill covers debouncing, batching, throttling, and async queue patterns to keep plugins responsive and prevent UI freezes. Prerequisites Understanding of JavaScript event loop and requestAnimationFrame Familiarity with async/await and Promises Working Obsidian plugin with file operations Instructions Step 1: Debounce vault.on('modify') Events vault.on('modify') fires on every keystroke when a user types in a note. Without debouncing, your handler runs hundreds of times per second. If you need per-file debouncing (common when multiple files change simultaneously): Step 2: Batch File Operations with UI Yielding Processing hundreds of files synchronously locks the UI. Yield back to the main thread between batches. Step 3: Throttle UI Updates Updating DOM elements on every event causes layout thrashing. Throttle to animation frames. Step 4: Async Queue for Write Operations Concurrent writes to the same file corrupt data. Queue writes so only one runs at a time. Step 5: Progress Notice for Long Operations Give users feedback during operations that take more than a second. Step 6: registerInterval for Periodic Tasks Use Obsidian's registerInterval instead of raw setInterval — it auto-clears on plugin unload. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills jeremylongshore/obsidian-rate-limits