https://github.com/michaelpporter/breadcrumbs
Add typed-links to your Obsidian notes
https://github.com/michaelpporter/breadcrumbs
breadcrumbs graph-theory obsidian-plugin
Last synced: about 1 month ago
JSON representation
Add typed-links to your Obsidian notes
- Host: GitHub
- URL: https://github.com/michaelpporter/breadcrumbs
- Owner: michaelpporter
- License: mit
- Created: 2021-06-05T09:32:44.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2026-05-28T17:24:05.000Z (about 1 month ago)
- Last Synced: 2026-05-28T19:05:15.628Z (about 1 month ago)
- Topics: breadcrumbs, graph-theory, obsidian-plugin
- Language: TypeScript
- Homepage: https://breadcrumbs-docs.michaelpporter.com/
- Size: 11 MB
- Stars: 783
- Watchers: 8
- Forks: 70
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
- my-awesome - michaelpporter/breadcrumbs - theory,obsidian-plugin pushed_at:2026-06 star:0.8k fork:0.1k Add typed-links to your Obsidian notes (TypeScript)
README
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](https://github.com/michaelpporter). The plugin was originally created by [SkepticMystic](https://github.com/SkepticMystic), whose foundational work made this all possible. Development continues at [github.com/michaelpporter/breadcrumbs](https://github.com/michaelpporter/breadcrumbs).
> **Note:** The default branch has been renamed from `master` to `main`. Update any existing forks or local clones:
> ```bash
> git branch -m master main
> git fetch origin
> git branch -u origin/main main
> git remote set-head origin -a
> ```
## Obsidian 1.13
Breadcrumbs 4.13.0 is fully compatible with Obsidian 1.13. The settings tab uses the new declarative settings API — all sections appear in global settings search and support page-based navigation. The existing display() fallback remains for older Obsidian versions (minAppVersion stays 1.12.3).
## Demo Vault
Want to see Breadcrumbs in action before configuring your own vault? The [Breadcrumbs Demo Vault](https://github.com/michaelpporter/breadcrumbs-demo) is a ready-to-open vault with pre-configured edge fields, example notes, and working graph structure.
## 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
- @Rhoadey: [How a Hierarchy Note sharpened my thinking in 20 minutes](https://medium.com/obsidian-observer/how-a-hierarchy-note-sharpened-my-thinking-in-20-minutes-f1c65945f41e?sk=64f4d1f889ff8a99009a060a24778a7f)
- [Obsidian Hub - Breadcrumbs Quickstart Guide](https://publish.obsidian.md/hub/04+-+Guides%2C+Workflows%2C+%26+Courses/Guides/Breadcrumbs+Quickstart+Guide)
- [Obsidian Hub - Breadcrumbs for Comparative Law](https://publish.obsidian.md/hub/03+-+Showcases+%26+Templates/Plugin+Showcases/Breadcrumbs+for+Comparative+Law)
- [Obsidian Hub - How to get the most out of Breadcrumbs](https://publish.obsidian.md/hub/04+-+Guides%2C+Workflows%2C+%26+Courses/Guides/How+to+get+the+most+out+of+the+Breadcrumbs+plugin)
## 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/` 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`](https://rustwasm.github.io/wasm-pack/). The full Rust source is in [`wasm/src/`](./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](https://github.com/SkepticMystic): Original creator of Breadcrumbs. The plugin concept, architecture, and community were built by them.
- [mProjectsCode](https://github.com/mProjectsCode): For their PRs, insightful suggestions, and efficiency improvements.
- [HEmile](https://github.com/HEmile): For their PRs, and helpful discussions on graph-theory.
- [michaelpporter](https://github.com/michaelpporter): Current maintainer.
## Donations
If you find Breadcrumbs useful, consider sponsoring continued development:
- [GitHub Sponsors — michaelpporter](https://github.com/sponsors/michaelpporter)
Original creator SkepticMystic also accepts donations via [Ko-fi](https://ko-fi.com/skepticmystic) — their foundational work is what made this plugin possible.
## Contributing
See [CONTRIBUTING.md](./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
- @SkepticMystic: [Breadcrumbs - Everything you need to know](https://www.youtube.com/watch?v=N4QmszBRu9I&pp=ygUUYnJlYWRjcnVtYnMgb2JzaWRpYW4%3D) (Outdated)
- @SkepticMystic: [Breadcrumbs - Obsidian Community Showcase](https://www.youtube.com/watch?v=DXXB7fHcArg&pp=ygUUYnJlYWRjcnVtYnMgb2JzaWRpYW4%3D) (Outdated)
- @Zen Productivist: [Threading Mode with the Breadcrumbs Plugin in Obsidian](https://www.youtube.com/watch?v=AS5Mv6YNmsQ) (2022-01-01)