Breadcrumbs is an Obsidian plugin that lets you add typed links to your notes, then view/traverse them in various ways. Internally, Breadcrumbs uses a graph to represent this structure (much like the regular Obsidian graph, except now, links have types to them). You tell Breadcrumbs about the structure of your notes, then it lets you visualise and navigate the graph.
As of May 2026, Breadcrumbs is maintained by michaelpporter. The plugin was originally created by SkepticMystic, whose foundational work made this all possible. Development continues at github.com/michaelpporter/breadcrumbs.
Note: The default branch has been renamed from
mastertomain. Update any existing forks or local clones:git branch -m master main git fetch origin git branch -u origin/main main git remote set-head origin -a
Breadcrumbs has its own docs site!✨ All detailed documentation lives there: https://breadcrumbs-docs.michaelpporter.com
Media related to Breacrumbs. Thanks to everyone for sharing!
- @Rhoadey: How a Hierarchy Note sharpened my thinking in 20 minutes
- Obsidian Hub - Breadcrumbs Quickstart Guide
- Obsidian Hub - Breadcrumbs for Comparative Law
- Obsidian Hub - How to get the most out of Breadcrumbs
Breadcrumbs is fully open source. This section discloses every network request, binary module, and non-obvious code pattern in the compiled plugin.
Mermaid diagrams — when you open a breadcrumbs codeblock rendered as Mermaid and click the "View Image on mermaid.ink" button, your browser opens https://mermaid.ink/img/<encoded-diagram> in a new tab. This is the only outbound network request. It is user-initiated (button click), not automatic. The diagram text is base64-encoded with btoa() and appended to the URL; no data is sent to any Breadcrumbs server.
No other network requests are made by this plugin.
The compiled bundle includes an inline WebAssembly binary. This is the Breadcrumbs graph engine, written in Rust and compiled with wasm-pack. The full Rust source is in wasm/src/ and can be audited directly. The WASM binary is never fetched from a remote URL; it is embedded at build time.
wasm-pack generates JavaScript glue code in wasm/pkg/breadcrumbs_graph_wasm.js. Static scanners may flag three patterns in this generated file:
| Pattern | Origin | Purpose |
|---|---|---|
fetch() |
wasm-bindgen shim | Fallback for loading WASM by URL. Never called — the plugin passes the inline binary directly to init({ module_or_path: wasmbin }). |
new Function(...) |
wasm-bindgen shim | Exposes js_sys::Function to Rust. Standard wasm-bindgen pattern; no arbitrary code is constructed from user input. |
wasm.memory access |
wasm-bindgen shim | JS reads/writes WASM linear memory to pass strings and arrays between Rust and JavaScript. Required by the WASM spec for cross-boundary data transfer. |
All of the above are generated automatically by wasm-bindgen and are not written by the plugin authors.
- SkepticMystic: Original creator of Breadcrumbs. The plugin concept, architecture, and community were built by them.
- mProjectsCode: For their PRs, insightful suggestions, and efficiency improvements.
- HEmile: For their PRs, and helpful discussions on graph-theory.
- michaelpporter: Current maintainer.
If you find Breadcrumbs useful, consider sponsoring continued development:
Original creator SkepticMystic also accepts donations via Ko-fi — their foundational work is what made this plugin possible.
See CONTRIBUTING.md for development setup, build commands, and how to submit a pull request.
- Push all previous changes to the actual project
- Bump version in
package.json bun run version:betato updatemanifest-beta.jsonandversions.jsonaccordinglygit tag -a x.x.x-beta -m 'x.x.x-beta'to tag the buildgit push origin x.x.x-betato push the release and trigger the action
Or, do steps 3-5 in one go with bun run release:beta
Older media kept for posterity. Many predate v4 and may not match current behavior, but the effort of the authors is appreciated.
- @SkepticMystic: Breadcrumbs - Everything you need to know (Outdated)
- @SkepticMystic: Breadcrumbs - Obsidian Community Showcase (Outdated)
- @Zen Productivist: Threading Mode with the Breadcrumbs Plugin in Obsidian (2022-01-01)