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

Advanced Debug Mode

Michael NaumovMichael Naumov9k downloads

Enhances debugging experience.

Add to Obsidian
Advanced Debug Mode screenshot
Advanced Debug Mode screenshot
Advanced Debug Mode screenshot
Advanced Debug Mode screenshot
Advanced Debug Mode screenshot
Advanced Debug Mode screenshot
Advanced Debug Mode screenshot
Advanced Debug Mode screenshot
Advanced Debug Mode screenshot
  • Overview
  • Scorecard
  • Updates86

An error thrown inside a callback or an await arrives in the console with most of its stack already gone: you get the frame that threw and almost nothing about who called it. Debugging a plugin in Obsidian then means guessing, or littering the code with logging until the path becomes obvious.

This plugin restores those frames. It keeps long stack traces across callback and async boundaries, turns off the timeouts that fire while you sit on a breakpoint, brings DevTools to the mobile app, and gives the debug namespaces a UI instead of hand-edited localStorage.

Without it: the throw, and no idea who called

More screenshots
With it: the whole chain, hop by hop Across await too, when you opt in Real dev tools, inside the app itself Turn it on from the command palette A console on a phone, and the error in it Ask the running app a question, right here Elements, network and resources — on a phone Turn it on from the command palette

Demo vault

The documentation is a demo vault. Every feature has a note that explains what it does and why you would want it, with buttons that throw real errors so you can watch the traces yourself.

Start reading here — it is plain markdown, so it works on GitHub with nothing installed.

A copy of the vault ships with every release. You can access it via any of the following:

  1. Running the Advanced Debug Mode: Open demo vault command.
  2. Downloading advanced-debug-mode-demo-vault.zip from the Releases. It unzips into a single advanced-debug-mode-demo-vault-<version> folder.
  3. Browsing its source in demo-vault/ in this repository.

What it does

  • Obsidian's own debug mode, toggled from a command instead of the console. 01 Debug mode
  • Long stack traces — the frames behind a callback boundary, kept rather than discarded. 02 Long stack traces
  • Async long stack traces — the same across await, opt-in because it is desktop-only. 03 Async long stack traces
  • Timeouts that do not fire while you are on a breakpoint, so a slow debugging session does not trip Obsidian's own long-running-task limits. 04 Long running tasks
  • Every debug switch in one place — the app-wide switches that libraries and plugins built on @mnaoumov/typescript-lib register, such as keeping a timed out runWithTimeout operation running, listed as toggles and saved across reloads, with a notice naming any switch left away from its default. 04 Long running tasks
  • DevTools on mobile, where the app has none, plus a UI for the debug library's namespaces. 05 More debug tools
  • Any plugin's debug messages in one step — a view listing every installed plugin with a checkbox, a filter and all on / all off, so you can change several at once; a command that flips the one you pick; and a toggle per plugin in settings — instead of the window.DEBUG.enable('<plugin-id>') line a README asks you to type. 05 More debug tools
  • Console messages that keep their real source — DevTools links each message to the code that logged it, not to this plugin's wrappers. 05 More debug tools
  • A panic button for a runaway operation — the app-wide shared abort, as a hotkey-bindable command and a settings button instead of a line typed into the console. 05 More debug tools
  • Every setting, by the key it is stored under. 06 Settings
  • Slow plugin loading on purpose — delays before or after each other plugin's onload, the metadata cache's first resolve and the layout load, so you can test how a plugin behaves when its neighbors load slowly. 07 Plugin load delays

See also

My other Obsidian resources

Plugin Features How Advanced Debug Mode differs
Logcollector Logstravaganza fork; external log files; UTC/local timestamps; plain text Complementary console tooling; changes console output; no log file
Logstravaganza Console calls and uncaught exceptions saved to a vault note Complementary console tooling; changes console output; no log file
vConsole In-page console; network, DOM and storage tools; JavaScript prompt Alternative mobile DevTools through eruda; long stacks, debug namespaces, switches and task timeouts

Last searched for similar plugins on 2026-10-26.

Installation

The plugin is available in the official Community Plugins repository.

Beta versions

To install the latest beta release of this plugin (regardless if it is available in the official Community Plugins repository or not), follow these steps:

  1. Ensure you have the BRAT plugin installed and enabled.
  2. Click Install via BRAT.
  3. An Obsidian pop-up window should appear. In the window, click the Add plugin button once and wait a few seconds for the plugin to install.

Debugging

Every other plugin documents a console command here. This one does not need to: turning debug messages on and off is what it does. Run Advanced Debug Mode: Open plugin debug messages (or click the bug icon in the ribbon) and tick Advanced Debug Mode — or any other installed plugins, as many as you like. For a single plugin, Advanced Debug Mode: Toggle debug messages for a plugin... flips the one you pick, and the Plugin debug messages group of Settings -> Community plugins -> Advanced Debug Mode has a toggle per plugin. None of them touches the console or localStorage. See 05 More debug tools.

The console form still works, and is the one to use if this plugin is not loaded yet, which is exactly when you would need it:

window.DEBUG.enable('advanced-debug-mode');

For more details, refer to the documentation.

Changelog

All notable changes to this project will be documented in the CHANGELOG.

Contributing

Contributions are welcome — see CONTRIBUTING to get set up.

Support

Filing an issue (for AI agents and humans)

Open issues through the issue forms, not as blank issues.

To report a bug from inside Obsidian, run the Advanced Debug Mode: Report a bug command. It opens the bug form with the plugin version, the Obsidian version and your operating system already filled in.

Filing from the CLI or the API (gh issue create --body, or an AI agent filing for you) skips the form, and gh issue create --template cannot load an issue form. In that case, open the matching form in .github/ISSUE_TEMPLATE/, copy every field as a ### <label> heading in the form's order, and fill in each one. Always state the plugin version, the Obsidian version and your operating system.

License

© Michael Naumov

HealthExcellent
ReviewPassed
About
Toggle Obsidian debug mode on and off and keep inline source maps from loaded plugins intact. Preserve long stack traces across timers, promises, event handlers and other async boundaries to reveal deeper call chains for easier error diagnosis.
DevelopersCommands
Details
Current version
1.15.2
Last updated
3 days ago
Created
2 years ago
Updates
86 releases
Downloads
9k
Compatible with
Obsidian 1.14.5+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
Buy Me a Coffee
Author
Michael NaumovMichael Naumovmnaoumov
mnaoumov.dev
GitHubmnaoumov
Xmnaoumov
  1. Community
  2. Plugins
  3. Developers
  4. Advanced Debug Mode

Related plugins

Lean Terminal

Embedded terminal panel powered by xterm.js and node-pty - no external windows.

CodeScript Toolkit

Allows to do a lot of things with JavaScript/TypeScript scripts from inside the Obsidian itself

Cron

Simple CRON / scheduler to regularly run user scripts or commands.

Notice logger

Logs all notices to the developer console, with optional prefix.

BRAT

Easily install a beta version of a plugin for testing.

Quick Switcher++

Enhanced Quick Switcher, search open panels, and symbols.

Claudian

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

Copilot

Run AI agents such as Claude Code, Codex, and OpenCode inside your vault. Turn your second brain into a smart assistant that gets knowledge work done.

Local REST API with MCP

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

Note Toolbar

Add customizable toolbars to your notes.