Skip to content

michaelpporter/breadcrumbs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,108 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

New Maintainer

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 master to main. 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

Documentation

Breadcrumbs has its own docs site!✨ All detailed documentation lives there: https://breadcrumbs-docs.michaelpporter.com

Media

Media related to Breacrumbs. Thanks to everyone for sharing!

Written

Security & Privacy

Breadcrumbs is fully open source. This section discloses every network request, binary module, and non-obvious code pattern in the compiled plugin.

Network Requests

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.

WebAssembly Module

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-bindgen Generated Code Patterns

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.

Credits

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

Donations

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.

Contributing

See CONTRIBUTING.md for development setup, build commands, and how to submit a pull request.

Release process

Beta

  1. Push all previous changes to the actual project
  2. Bump version in package.json
  3. bun run version:beta to update manifest-beta.json and versions.json accordingly
  4. git tag -a x.x.x-beta -m 'x.x.x-beta' to tag the build
  5. git push origin x.x.x-beta to push the release and trigger the action

Or, do steps 3-5 in one go with bun run release:beta

History

Older media kept for posterity. Many predate v4 and may not match current behavior, but the effort of the authors is appreciated.

Videos

About

Add typed-links to your Obsidian notes

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

  •  

Contributors