Hannes Delbeke176 downloadsTracks startup time and per-plugin load breakdown, writing structured JSON and Markdown logs for AI analysis and optimization.
A lightweight, dedicated Obsidian PKM plugin that measures launch performance, tracks the exact initialization time of every community plugin, and outputs structured logs (JSON, Markdown, and JSONL) specifically formatted for AI consumption, automated performance monitoring, and vault optimization.
Available in the official Obsidian Community Plugins Directory.
Obsidian already has a built-in "Debug startup time" option (Settings > Community plugins > Debug startup time), but:
this plugin let's AI's access startup time of plugins:
It worked! The auto-prioritization successfully placed the logger first, allowing it to capture every plugin during
cold boot.
Here is the breakdown of your latest startup at 08:11:36 UTC:
──────
### 📊 Startup Overview
Metric | Duration | Notes
-----------------------------------|--------------------|-----------------------------------------------------------
🚀 Time to Layout Ready | 2,534.9 ms (~2.5s) | Total time until the vault workspace became interactive
🔌 Total Community Plugins Load | 359.6 ms | Cumulative time spent initializing all 15 enabled plugins
⚡ Core Obsidian & Vault Indexing | 2,175.3 ms | Time spent on core engine, cache reading, and workspace
| | restoration
──────
### 🧩 Top Plugins by Startup Load Time
1. Iconize (obsidian-icon-folder) ████░░░░░░ 141.0 ms (39.2%)
2. Git (obsidian-git) ███░░░░░░░ 95.4 ms (26.5%)
3. Dataview (dataview) ██░░░░░░░░ 55.7 ms (15.5%)
4. Plugin Groups ░░░░░░░░░░ 10.3 ms (2.9%)
5. Recent Files ░░░░░░░░░░ 8.8 ms (2.4%)
6. JavaScript Init ░░░░░░░░░░ 8.6 ms (2.4%)
7. Remember cursor position ░░░░░░░░░░ 8.1 ms (2.3%)
8. Homepage ░░░░░░░░░░ 8.0 ms (2.2%)
... [7 other fast plugins < 7ms each]
──────
### 🤖 Key Takeaways:
1. Top 3 Bottlenecks: Iconize (141ms), Git (95.4ms), and Dataview (55.7ms) together account for 81.2% of your total
plugin load time.
2. Overall Health: At ~2.5s total layout ready, your vault is loading fast.
3. Automated Logging: The logs were automatically written to:
• 📄 startup-metrics.md
• 🤖 startup-metrics.json
• 📜 startup-history.jsonl (recorded entry #4 with full telemetry).
Startup Metrics Logger solves this by:
startup-metrics.json: Rich machine-readable JSON designed for AI agents.startup-metrics.md: Visual markdown summary with visual bars, tables, and AI diagnostic hints.startup-history.jsonl: Append-only history to track vault performance trends over time.sample markdown output:
# ⏱️ Obsidian Startup Metrics & Performance Report
> [!TIP] AI Assistant Context
> This file is generated automatically by **Startup Metrics Logger**.
> Use this structured telemetry to analyze vault launch latency, diagnose slow plugins, and recommend optimization steps.
- **Timestamp:** `2026-08-29T07:52:55.448Z`
- **Vault:** `pkm`
- **Platform:** `desktop (Windows)`
- **Total Enabled Plugins:** `15` / `52 installed`
---
## 📊 Startup Overview
| Metric | Duration | Description |
| :--- | :--- | :--- |
| 🚀 **Time to Layout Ready** | **`6787.4 ms`** | Time from process start until workspace is fully responsive |
| 🔌 **Total Plugin Load Time** | **`4984 ms`** | Cumulative time spent initializing active community plugins |
| ⚡ **Core & Indexing Overhead** | **`1803.4 ms`** | Estimated Obsidian core engine & workspace restoration time |
| 🕒 **Total Startup Duration** | **`91074.7 ms`** | Total elapsed time to full stability |
---
## 🤖 AI Diagnostic Insights
- **Status:** **`CRITICAL`**
- **Summary:** 6 slow plugin(s) account for 4983.999999999999ms of startup delay.
### Actionable Recommendations
- Top bottleneck plugins: Dataview (3195.7ms), Code Viewer (1155.1ms), Iconize (228.2ms).
- Consider using a Lazy Loader / Plugin Groups plugin to defer non-essential plugins after startup.
- Enable 'Debug startup time' in Obsidian Settings > Community Plugins to provide exact cold-start millisecond measurements.
---
## 🧩 Plugin Load Time Breakdown
| # | Plugin Name | Version | Load Time | Share of Plugins | Status |
| :- | :--- | :--- | :--- | :--- | :-: |
| 1 | **Dataview** (`dataview`) | `0.5.68` | **3195.7 ms** | `██████░░░░` 64.1% | 🔴 **SLOW** |
| 2 | **Code Viewer** (`code-viewer`) | `1.0.6` | **1155.1 ms** | `██░░░░░░░░` 23.2% | 🔴 **SLOW** |
| 3 | **Iconize** (`obsidian-icon-folder`) | `2.14.7` | **228.2 ms** | `░░░░░░░░░░` 4.6% | 🔴 **SLOW** |
| 4 | **Git** (`obsidian-git`) | `2.38.6` | **104.3 ms** | `░░░░░░░░░░` 2.1% | 🔴 **SLOW** |
| 5 | **Recent Files** (`recent-files-obsidian`) | `1.7.10` | **88.6 ms** | `░░░░░░░░░░` 1.8% | 🔴 **SLOW** |
| 6 | **Supercharged Links** (`supercharged-links-obsidian`) | `0.13.10` | **80 ms** | `░░░░░░░░░░` 1.6% | 🔴 **SLOW** |
| 7 | **Remember cursor position** (`remember-cursor-position`) | `1.0.13` | **29.5 ms** | `░░░░░░░░░░` 0.6% | 🟢 OK |
| 8 | **Homepage** (`homepage`) | `4.4.4` | **24.1 ms** | `░░░░░░░░░░` 0.5% | 🟢 OK |
| 9 | **Plugin Groups** (`obsidian-plugin-groups`) | `2.1.0` | **19.8 ms** | `░░░░░░░░░░` 0.4% | 🟢 OK |
| 10 | **Paste image Png to Jpeg** (`obsidian-paste-png-to-jpeg`) | `1.0.5` | **18.7 ms** | `░░░░░░░░░░` 0.4% | 🟢 OK |
| 11 | **Auto Wikilink** (`obsidian-auto-wikilink`) | `1.0.0` | **17 ms** | `░░░░░░░░░░` 0.3% | 🟢 OK |
| 12 | **Collapse Properties** (`collapse-properties`) | `1.0.0` | **11.5 ms** | `░░░░░░░░░░` 0.2% | 🟢 OK |
| 13 | **Unified Search** (`unified-search`) | `1.0.0` | **7.7 ms** | `░░░░░░░░░░` 0.2% | 🟢 OK |
| 14 | **JavaScript Init** (`obsidian-javascript-init`) | `1.0.2` | **3.8 ms** | `░░░░░░░░░░` 0.1% | 🟢 OK |
| 15 | **Startup Metrics & Plugin Load Time Logger** (`startup-metrics-logger`) | `1.0.0` | **0 ms** | `░░░░░░░░░░` 0% | 🟢 OK |
---
*Generated by [Startup Metrics Logger](https://github.com)*
Startup Metrics Logger (or open community.obsidian.md/plugins/startup-metrics-logger).main.js, manifest.json, and styles.css from the latest Release.<Your-Vault>/.obsidian/plugins/startup-metrics-logger/Obsidian initializes community plugins sequentially in the exact array order defined in:
.obsidian/community-plugins.json
For Startup Metrics Logger to intercept and accurately measure every community plugin as it loads during boot, it must run first (index 0).
community-plugins.json."startup-metrics-logger" is at the top of .obsidian/community-plugins.json:[
"startup-metrics-logger",
"obsidian-git",
"dataview",
...
]
startup-metrics.json (Machine-Readable){
"schema_version": "1.0.0",
"timestamp": "2026-08-29T07:45:00.123Z",
"environment": {
"platform": "desktop",
"os": "Windows",
"obsidian_version": "Obsidian",
"is_mobile": false
},
"vault": {
"name": "Personal Knowledge Base",
"total_plugins_installed": 18,
"total_plugins_enabled": 14
},
"timings": {
"total_app_startup_ms": 1450.2,
"time_to_layout_ready_ms": 1320.0,
"plugins_combined_load_ms": 710.5,
"core_overhead_estimate_ms": 609.5
},
"plugins": [
{
"id": "dataview",
"name": "Dataview",
"version": "0.5.67",
"author": "BlacksmithGu",
"loadTimeMs": 285.0,
"percentageOfPluginsTime": 40.1,
"isSlow": true,
"source": "native_notice"
},
{
"id": "obsidian-git",
"name": "Git",
"version": "2.26.0",
"author": "Vinzent",
"loadTimeMs": 195.0,
"percentageOfPluginsTime": 27.4,
"isSlow": true,
"source": "native_notice"
}
],
"ai_analysis": {
"status": "warning",
"headline": "2 slow plugin(s) account for 480ms of startup delay.",
"slow_plugins": ["dataview", "obsidian-git"],
"recommendations": [
"Top bottleneck plugins: Dataview (285ms), Git (195ms).",
"Consider using a Lazy Loader / Plugin Groups plugin to defer non-essential plugins after startup."
]
}
}
startup-metrics.md (Human & AI Markdown Report)Includes:
████░░░░░░ 40.1%) and slow indicators.| Command | Action |
|---|---|
Startup Metrics: Log current startup metrics to file |
Manually writes/updates the JSON and Markdown logs. |
Startup Metrics: Run full plugin benchmark (measure load times) |
Runs an automated isolation benchmark of all active plugins. |
Startup Metrics: Open latest startup metrics report (Markdown) |
Opens the markdown report in a new tab. |
Startup Metrics: Copy AI diagnostic summary to clipboard |
Copies a pre-formatted prompt with all startup telemetry ready to paste to an AI. |
community-plugins.json so it loads before all other plugins.startup-metrics.json, startup-metrics.md, and startup-history.jsonl.MIT