On-Demand

by 22-2
5
4
3
2
1
Score: 56/100

Description

Boost startup speed by loading plugins only when you actually use them.

Reviews

No reviews yet.

Stats

10
stars
3,187
downloads
1
forks
90
days
1
days
1
days
4
total PRs
0
open PRs
0
closed PRs
4
merged PRs
9
total issues
0
open issues
9
closed issues
605
commits

Latest Version

a day ago

Changelog

3.6.1 (2026-10-03)

🛡 Bug Fixes

  • improve mobile plugin actions (ee2caf1)
  • trim whitespace from plugin filters (8246096)

README file from

Github

On-Demand Plugins

Obsidian plugin that delays plugin activation and only loads plugins when needed, improving startup performance.


How to use

  1. Open Settings → On-Demand Plugins.
  2. Choose a loading mode for each plugin.
  3. Click Apply changes (Obsidian will restart automatically).

Loading modes

Mode Description
Lazy on demand Loads when a command is executed, a specified view type is opened, or when a specific file is opened. In the settings modal you can separately enable lazy on file and lazy on view. View types are automatically collected when you click Apply changes, so manual entry is not required.
Lazy on layout ready Loads after the workspace layout is ready.
Always enabled Loads at startup as normal.
Always disabled Keeps the plugin disabled.

When Lazy on demand is selected you can configure lazy on file and lazy on view individually in the modal. View types are auto-detected on Apply changes.


Notes

  • Plugins that use setInterval / setTimeout or register global hooks (for example, vault.on) should be set to Lazy on layout ready. If set to Lazy on demand, such plugins will not run their background tasks or hooks until they are loaded.
  • Inline/embedded views (for example, Dataview inline queries) are not supported.

Backups

When settings change, .obsidian/community-plugins.json is updated automatically. Up to three generations of backups are created; please keep your own backups as well.

How it works

Instead of loading the plugin code at startup, this project registers "dummy commands" that cache command metadata. The actual plugin is loaded only when its command or a configured view/file is used. Internally it monkey-patches parts of Obsidian's core, so updates to Obsidian may break behavior.


This project is based on the work by Alan Grainger: https://github.com/alangrainger/obsidian-lazy-plugins

Screenshots

On‑Demand Plugins settings On‑Demand Plugins settings page.

On‑Demand Modal Settings modal.