qoob23279 downloadsMap out and edit note relations in a focused graph. Requires Dataview.
Synapses lays out your note links as a focused graph: the active note sits in the center with its parents above, children below, jumps to the left, and siblings to the right. Click a card to activate that note, drag a handle to create a link, or hover a connector to remove one — a fast way to navigate, add, remove, and edit the connections between your notes.
It runs in both Obsidian and Logseq, reading and writing the same ExcaliBrain-style page properties.
This plugin was written with LLM assistance.
Links are declared with page properties (ExcaliBrain-style), on a note's first block or in YAML frontmatter:
parent:: [[Philosophy]]
child:: [[Ethics]], [[Logic]]
jump:: [[Aristotle]]
You only declare one direction — the reciprocal (parent↔child) and symmetric jumps are inferred, and siblings are computed.
When Synapses links or unlinks notes it edits link properties in place. If your note template
prefills parent:: / child:: / jump:: — whether as an inline field anywhere in the note (top, middle,
or bottom) or as a key in the YAML frontmatter — Synapses updates that existing value instead of
prepending a duplicate at the top. Brand-new properties are added as inline fields.
Requires the Dataview plugin — Synapses reads
your parent:: / child:: / jump:: inline fields through Dataview's index.
Configure which property names map to parent / child / jump under Settings → Synapses.
packages/logseq-plugin (build first; see below)./Synapses: Open in sidebar.Synapses reads
parent:: / child:: / jump::from a page's top-level blocks.
This is a TypeScript monorepo: packages/core (editor-agnostic engine + view), packages/obsidian-plugin,
and packages/logseq-plugin.
npm install # first time
npm run build # builds core + both plugins (obsidian → main.js/styles.css, logseq → dist/)
npm test # run the unit tests (vitest)
Add -w <package> to build one package, or npm run dev -w obsidian-plugin to rebuild on change
(reload the plugin in the editor to pick up the new bundle).
ItemView API
backs the in-process Obsidian adapter.parent:: / child:: / jump:: links.parent:: / child:: / jump::, declared one direction with reciprocals inferred) is the basis for how
links are stored.MIT © qoob23