{"id":50443571,"url":"https://github.com/michaelpporter/breadcrumbs","last_synced_at":"2026-05-31T20:01:37.470Z","repository":{"id":39895833,"uuid":"374074023","full_name":"michaelpporter/breadcrumbs","owner":"michaelpporter","description":"Add typed-links to your Obsidian notes","archived":false,"fork":false,"pushed_at":"2026-05-28T17:24:05.000Z","size":11567,"stargazers_count":783,"open_issues_count":0,"forks_count":70,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-05-28T19:05:15.628Z","etag":null,"topics":["breadcrumbs","graph-theory","obsidian-plugin"],"latest_commit_sha":null,"homepage":"https://breadcrumbs-docs.michaelpporter.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michaelpporter.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":["michaelpporter"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2021-06-05T09:32:44.000Z","updated_at":"2026-05-28T17:32:26.000Z","dependencies_parsed_at":"2024-01-13T17:11:29.320Z","dependency_job_id":"a90e6514-557a-41ae-a8d0-6edd51bb3476","html_url":"https://github.com/michaelpporter/breadcrumbs","commit_stats":null,"previous_names":["michaelpporter/breadcrumbs"],"tags_count":607,"template":false,"template_full_name":"obsidianmd/obsidian-sample-plugin","purl":"pkg:github/michaelpporter/breadcrumbs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelpporter%2Fbreadcrumbs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelpporter%2Fbreadcrumbs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelpporter%2Fbreadcrumbs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelpporter%2Fbreadcrumbs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michaelpporter","download_url":"https://codeload.github.com/michaelpporter/breadcrumbs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelpporter%2Fbreadcrumbs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33746513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["breadcrumbs","graph-theory","obsidian-plugin"],"created_at":"2026-05-31T20:01:33.560Z","updated_at":"2026-05-31T20:01:37.465Z","avatar_url":"https://github.com/michaelpporter.png","language":"TypeScript","funding_links":["https://github.com/sponsors/michaelpporter","https://ko-fi.com/skepticmystic"],"categories":["TypeScript"],"sub_categories":[],"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.\r\n\r\n## New Maintainer\r\n\r\nAs 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).\r\n\r\n\u003e **Note:** The default branch has been renamed from `master` to `main`. Update any existing forks or local clones:\r\n\u003e ```bash\r\n\u003e git branch -m master main\r\n\u003e git fetch origin\r\n\u003e git branch -u origin/main main\r\n\u003e git remote set-head origin -a\r\n\u003e ```\r\n\r\n## Obsidian 1.13\r\n\r\nBreadcrumbs 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).\r\n\r\n## Demo Vault\r\n\r\nWant 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.\r\n\r\n## Documentation\r\n\r\nBreadcrumbs has its own docs site!✨ All detailed documentation lives there: https://breadcrumbs-docs.michaelpporter.com\r\n\r\n## Media\r\n\r\nMedia related to Breacrumbs. Thanks to everyone for sharing!\r\n\r\n### Written\r\n\r\n-   @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)\r\n-   [Obsidian Hub - Breadcrumbs Quickstart Guide](https://publish.obsidian.md/hub/04+-+Guides%2C+Workflows%2C+%26+Courses/Guides/Breadcrumbs+Quickstart+Guide)\r\n-   [Obsidian Hub - Breadcrumbs for Comparative Law](https://publish.obsidian.md/hub/03+-+Showcases+%26+Templates/Plugin+Showcases/Breadcrumbs+for+Comparative+Law)\r\n-   [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)\r\n\r\n## Security \u0026 Privacy\r\n\r\nBreadcrumbs is fully open source. This section discloses every network request, binary module, and non-obvious code pattern in the compiled plugin.\r\n\r\n### Network Requests\r\n\r\n**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/\u003cencoded-diagram\u003e` 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.\r\n\r\nNo other network requests are made by this plugin.\r\n\r\n### WebAssembly Module\r\n\r\nThe 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.\r\n\r\n### wasm-bindgen Generated Code Patterns\r\n\r\n`wasm-pack` generates JavaScript glue code in `wasm/pkg/breadcrumbs_graph_wasm.js`. Static scanners may flag three patterns in this generated file:\r\n\r\n| Pattern | Origin | Purpose |\r\n|---|---|---|\r\n| `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 })`. |\r\n| `new Function(...)` | wasm-bindgen shim | Exposes `js_sys::Function` to Rust. Standard wasm-bindgen pattern; no arbitrary code is constructed from user input. |\r\n| `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. |\r\n\r\nAll of the above are generated automatically by wasm-bindgen and are not written by the plugin authors.\r\n\r\n## Credits\r\n\r\n-   [SkepticMystic](https://github.com/SkepticMystic): Original creator of Breadcrumbs. The plugin concept, architecture, and community were built by them.\r\n-   [mProjectsCode](https://github.com/mProjectsCode): For their PRs, insightful suggestions, and efficiency improvements.\r\n-   [HEmile](https://github.com/HEmile): For their PRs, and helpful discussions on graph-theory.\r\n-   [michaelpporter](https://github.com/michaelpporter): Current maintainer.\r\n\r\n\u003c!-- NOTE: This heading is linked to in the manifest.fundingUrl. Be sure to change that if updating the heading label --\u003e\r\n\r\n## Donations\r\n\r\nIf you find Breadcrumbs useful, consider sponsoring continued development:\r\n\r\n-   [GitHub Sponsors — michaelpporter](https://github.com/sponsors/michaelpporter)\r\n\r\nOriginal creator SkepticMystic also accepts donations via [Ko-fi](https://ko-fi.com/skepticmystic) — their foundational work is what made this plugin possible.\r\n\r\n## Contributing\r\n\r\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for development setup, build commands, and how to submit a pull request.\r\n\r\n### Release process\r\n\r\n#### Beta\r\n\r\n1. Push all previous changes to the actual project\r\n2. Bump version in `package.json`\r\n3. `bun run version:beta` to update `manifest-beta.json` and `versions.json` accordingly\r\n4. `git tag -a x.x.x-beta -m 'x.x.x-beta'` to tag the build\r\n5. `git push origin x.x.x-beta` to push the release and trigger the action\r\n\r\nOr, do steps 3-5 in one go with `bun run release:beta`\r\n\r\n## History\r\n\r\nOlder media kept for posterity. Many predate v4 and may not match current behavior, but the effort of the authors is appreciated.\r\n\r\n### Videos\r\n\r\n-   @SkepticMystic: [Breadcrumbs - Everything you need to know](https://www.youtube.com/watch?v=N4QmszBRu9I\u0026pp=ygUUYnJlYWRjcnVtYnMgb2JzaWRpYW4%3D) (Outdated)\r\n-   @SkepticMystic: [Breadcrumbs - Obsidian Community Showcase](https://www.youtube.com/watch?v=DXXB7fHcArg\u0026pp=ygUUYnJlYWRjcnVtYnMgb2JzaWRpYW4%3D) (Outdated)\r\n-   @Zen Productivist: [Threading Mode with the Breadcrumbs Plugin in Obsidian](https://www.youtube.com/watch?v=AS5Mv6YNmsQ) (2022-01-01)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelpporter%2Fbreadcrumbs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichaelpporter%2Fbreadcrumbs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelpporter%2Fbreadcrumbs/lists"}