Bonds

approved

by Zak

Links as first-class notes. Bonds between atoms carry their own content, rendered on both ends. - This plugin has not been manually reviewed by Obsidian staff.

1 stars47 downloadsUpdated 1mo agoMIT

Bonds

An Obsidian plugin that makes links first-class citizens. Notes are atoms; the connections between them are bonds — and a bond is itself a note that carries its own content.

Information that belongs to a relationship (credentials for a site, the reason two ideas connect, the history between two people) lives in exactly one place — the bond note — and is rendered automatically at the bottom of both endpoint notes. No more copying the same snippet to both ends.

Why links deserve to be first-class

We never actually know a thing in itself — we know it in relation to other things. A word is defined by other words. A price means nothing except relative to other prices. You know a person through shared history, a concept through what it resembles and what it opposes. Strip away everything a thing relates to and there is nothing left to know. All knowledge is relative; the relations are the knowledge.

The brain works the same way: memory isn't stored in neurons, it's stored in the connections between them. A synapse is not a wire — it's where the information lives.

Yet almost every note-taking tool, Obsidian included, inverts this: notes (nodes) get all the structure — titles, content, metadata, history — while the links that give them meaning are reduced to bare pointers with no content, no identity, no home. The most important part of a knowledge graph is the part you can't write anything in.

Bonds fixes that inversion. A bond is a real note: it can hold content, carry a type, appear in search, and grow over time — because the relationship between two ideas is often the most valuable thing you know about either of them. The rendered section in each note is titled Synapses by default (configurable) — a nod to where nature keeps its knowledge.

How it works

A bond is a plain markdown note with frontmatter:

---
synapse: bond
atoms:
  - "[[Amazon]]"
  - "[[Password]]"
type: credential
---
login: you@example.com
2FA: authenticator app

Open Amazon.md or Password.md and the bond's content appears in a collapsible Synapses section at the bottom of the note. Edit the bond once, both ends update.

Everything is plain markdown — without the plugin, bonds are still ordinary notes that link to both atoms, visible in graph view and search. Nothing is locked in.

Usage

  • Create bond from current note (command palette) — fuzzy-pick the other atom(s); the bond note is scaffolded in your bonds folder and opened for editing. Enter picks the final atom and creates the bond; Shift+Enter adds an atom and keeps picking, so a bond can join any number of atoms.
  • Bonds render at the bottom of notes in both reading and editing mode.
  • type is free-form — let your own taxonomy emerge.
  • Rebuild bond index — manual refresh if anything looks stale.

Settings

  • Bonds folder — where new bond notes are created (default: Bonds)
  • Show bonds in notes — toggle the rendered section
  • Collapse bonds by default — start bonds folded

Installation

Until Bonds is in the community plugin browser, install manually: copy manifest.json, main.js, and styles.css into <your vault>/.obsidian/plugins/bonds/, then enable it in Settings → Community plugins.

Development

npm install
npm run dev    # watch mode
npm run build  # type-check + production build

For a live dev loop, symlink this folder into a test vault's .obsidian/plugins/ and reload the plugin after builds.

Releasing

npm version patch   # bumps package.json, manifest.json, versions.json
git push && git push --tags

Pushing a tag triggers the GitHub Action, which builds and creates a draft release with main.js, manifest.json, and styles.css attached.

Roadmap (future brain territory)

  • Bond strength — explicit or emergent from traversal
  • Custom atom/bond graph view (edges rendered as edges, thick when strong)
  • In-place bond editing from the atom's view

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.