Observe how Obsidian community plugins react to the active note, inspect their runtime health, and stream the session to the terminal in real time.
Obsidian gives power users an incredibly composable plugin ecosystem, but it is still hard to answer practical runtime questions:
- Which community plugins reacted while I was viewing this note?
- Did any callback turn slow or throw?
- Can I watch those events outside the app while debugging a vault?
Plugin Observability Layer focuses on that operational gap. It adds a dedicated sidebar dashboard, records best-effort runtime activity for the current Markdown page, and mirrors the same activity to NDJSON so you can inspect it from the terminal.
- Page-aware observability for the active Markdown note
- Sidebar dashboard with per-page metrics, plugin health, and recent events
- Runtime classification for
ok,warn, anderrorhook outcomes - Best-effort instrumentation for common plugin registration paths, including commands, app events, DOM events, and Markdown processors
- NDJSON event logging for external tooling and terminal workflows
- Copy-ready tail command from inside the dashboard
- English and Chinese UI strings
- Desktop-only design for operational debugging workflows
Current page eventsTotal hook calls captured for the currently tracked note.Plugins touched on pageDistinct community plugins that reacted to the note.Loaded community pluginsPlugins that are both enabled and currently loaded.Slow thresholdThe latency threshold used to mark hook executions as slow.Current page plugin healthPer-plugin health, event totals, last observed hook, and last seen time.Recent events for current pageA rolling event stream with timestamp, hook source, duration, status, and error details.
The plugin wraps common community plugin registration surfaces exposed through Obsidian APIs and records callback execution when those wrapped paths fire. It keeps the most recent Markdown page context pinned even if focus moves into the observability panel, which makes the dashboard usable during inspection.
Captured data can also be written to:
/.obsidian/plugins/plugin-observability-layer/runtime/events.ndjson
That file can be tailed by the included watcher script.
Once the plugin is approved and published in the Obsidian Community Plugins directory, install it directly from:
Settings -> Community plugins -> Browse
Search for Plugin Observability Layer, install it, and enable it.
-
Download
main.js,manifest.json, andstyles.cssfrom the matching GitHub release. -
Create this folder inside your vault:
.obsidian/plugins/plugin-observability-layer/ -
Copy the three release assets into that folder.
-
Reload Obsidian.
-
Enable
Plugin Observability Layerin Community Plugins.
- Open any Markdown note.
- Run
Plugin Observability Layer: Open dashboard. - Interact with the note, switch notes, or trigger commands.
- Inspect the dashboard cards, plugin health table, and recent event stream.
- Use
Copy tail commandif you want the equivalent terminal watcher command on your clipboard.
Also available:
Plugin Observability Layer: Clear session eventsPlugin Observability Layer: Re-instrument enabled community plugins
Watch the vault runtime log:
node scripts/watch-log.mjs /path/to/vaultOr point directly at the NDJSON file:
node scripts/watch-log.mjs /path/to/vault/.obsidian/plugins/plugin-observability-layer/runtime/events.ndjsonThis plugin is an observability layer, not a perfect tracer.
- Obsidian does not provide one official API that says which plugin just ran for which page.
- Results are therefore best-effort and depend on whether a plugin uses instrumented registration paths.
- Plugins doing work outside those wrapped APIs may be partially visible or invisible.
- Reloading Obsidian after first install is recommended so instrumentation is active for the full session.
That trade-off is intentional: the plugin prioritizes actionable operational visibility for real vault debugging over claiming impossible precision.
plugin-observability-layer/main.jsplugin-observability-layer/manifest.jsonplugin-observability-layer/styles.cssscripts/watch-log.mjsdocs/images/manifest.jsonversions.json
This repository includes the root files expected for Obsidian community submission:
README.mdLICENSEmanifest.jsonversions.json
For the submission checklist and release flow, see:
MIT

