Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Startup Metrics Logger

Hannes DelbekeHannes Delbeke176 downloads

Tracks startup time and per-plugin load breakdown, writing structured JSON and Markdown logs for AI analysis and optimization.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates3

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.


🚀 Why This Plugin?

Obsidian already has a built-in "Debug startup time" option (Settings > Community plugins > Debug startup time), but:

  • It only renders a temporary, transient UI popup notice on startup.
  • It does not persist data to disk.
  • It provides no historical logs or trend tracking.
  • An AI assistant or external script cannot inspect or analyze it without a structured file in your vault.

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:

  1. Capturing Obsidian's startup measurements automatically.
  2. Hooking dynamic plugin loads & offering a live 1-click Benchmark Profiler.
  3. Writing structured logs:
    • 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.

startup metrics logger settings screenshot

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)*

📦 Installation

Option 1: Install from Community Directory (Recommended)

  1. Open Obsidian and go to Settings > Community plugins.
  2. Make sure Restricted Mode is turned off.
  3. Click Browse and search for Startup Metrics Logger (or open community.obsidian.md/plugins/startup-metrics-logger).
  4. Click Install, then Enable.
  5. (Recommended) In Settings > Community plugins, toggle on "Debug startup time" to allow the plugin to capture exact cold-start numbers on every restart.

Option 2: Manual Installation (GitHub Release)

  1. Download main.js, manifest.json, and styles.css from the latest Release.
  2. Copy the files into your vault's plugins folder: <Your-Vault>/.obsidian/plugins/startup-metrics-logger/
  3. In Obsidian, go to Settings > Community plugins and toggle Startup Metrics Logger to ON.

⚡ How Plugin Load Order Works (Loading First)

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).

  • Automatic Priority (Enabled by default): The plugin includes an Auto-Prioritize First In Load Order setting. Whenever Obsidian launches or settings are updated, the plugin automatically ensures it is at the very top of community-plugins.json.
  • Manual Verification: If you manage your plugin order manually, ensure "startup-metrics-logger" is at the top of .obsidian/community-plugins.json:
    [
      "startup-metrics-logger",
      "obsidian-git",
      "dataview",
      ...
    ]
    

🤖 Log Outputs for AI Ingestion

1. 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."
    ]
  }
}

2. startup-metrics.md (Human & AI Markdown Report)

Includes:

  • Summary cards (Time to Layout Ready, Plugin Load Time, Core Overhead).
  • Actionable AI recommendations.
  • Formatted breakdown table with percentage visual bars (████░░░░░░ 40.1%) and slow indicators.

⚡ Command Palette Actions

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.

🛠️ Settings Configuration

  • Auto-Prioritize First In Load Order: Automatically keeps this plugin at the top (index 0) of community-plugins.json so it loads before all other plugins.
  • Auto-log on startup: Toggles automatic generation of logs on every boot.
  • Log file paths: Customize file paths for startup-metrics.json, startup-metrics.md, and startup-history.jsonl.
  • Slow Plugin Threshold (ms): Customize threshold (default 50ms) to flag bottleneck plugins.
  • Auto-dismiss Debug Notice: Automatically closes Obsidian's native startup popup after a configurable number of seconds.
  • Interactive Profiler: Button to launch the isolation benchmark directly from the settings panel.

📄 License

MIT

HealthExcellent
ReviewCaution
About
Measure Obsidian launch performance and record exact initialization times for every community plugin, capturing cold-boot order and total time to layout readiness. Export structured, machine-readable logs (JSON, JSONL, Markdown) to the vault for historical trend tracking, AI analysis, and automated monitoring.
DataExportDevelopers
Details
Current version
1.0.2
Last updated
3 weeks ago
Created
3 weeks ago
Updates
3 releases
Downloads
176
Compatible with
Obsidian 1.0.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
Hannes DelbekeHannes Delbekehannesdelbeke
GitHubhannesdelbeke
  1. Community
  2. Plugins
  3. Data
  4. Startup Metrics Logger

Related plugins

BRAT

Easily install a beta version of a plugin for testing.

Claudian

Embeds Claude Code/Codex and other local Agents as AI collaborators in your vault.

Local REST API with MCP

Unlock your automation needs by interacting with your notes over a secure REST API.

Git

Integrate Git version control with automatic backup and other advanced features.

Hot Reload

Automatically reload in-development plugins when their files are changed

Tracker

Track occurrences and numbers in your notes.

Terminal

Integrate consoles, shells, and terminals.

Sync Engine

The extensible vault synchronization engine: Fast · Free · Reliable. Supports WebDAV, S3, and Google Drive.

Charted Roots

Family tree visualization with GEDCOM/Gramps import and Canvas/PDF/Markdown export. Charts, maps, timelines, citations, fictional calendars. For genealogists, worldbuilders, and TTRPG campaigns.

Slides Extended

Create markdown-based reveal.js presentations. Fork of Advanced Slides.