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.
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:
Advanced Debug Mode: Open demo vault command.advanced-debug-mode-demo-vault.zip from the Releases. It unzips into a single advanced-debug-mode-demo-vault-<version> folder.demo-vault/ in this repository.await, opt-in because it is desktop-only. 03 Async long stack traces@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 tasksdebug library's namespaces. 05 More debug toolswindow.DEBUG.enable('<plugin-id>') line a README asks you to type. 05 More debug toolsonload, 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| 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.
The plugin is available in the official Community Plugins repository.
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:
Add plugin button once and wait a few seconds for the plugin to install.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.
All notable changes to this project will be documented in the CHANGELOG.
Contributions are welcome — see CONTRIBUTING to get set up.
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.