Neighbourhood Graph

approved

by agilesmagile

This plugin has not been manually reviewed by Obsidian staff. Interactive D3.js force-directed graph showing the current note's neighbourhood in a sidebar panel. Nodes connected by shared tags and backlinks.

67 downloadsUpdated 6d agoMIT

Neighbourhood Graph

An Obsidian plugin that shows the current note's neighbourhood as an interactive force-directed graph in a sidebar panel. Navigate your vault by exploring connections between notes, shared tags, and backlinks.

Screenshots will be added in a future update.

What it does

Opens as a right-sidebar panel. As you navigate between notes, the graph recentres on the active note and shows:

  • The focus note highlighted with an amber glow, largest node
  • Neighbour notes connected via shared tags or backlinks, sized by relevance
  • Shared tag nodes (diamond shapes) representing tags that connect notes
  • Typed edges — when Excalibrain is installed, edges between related notes are drawn with distinct line styles

Hover any node to highlight its connections. At depth 2, secondary connections also light up, revealing the structure around any note in the neighbourhood.

Interactions

ActionBehaviour
Hover nodeHighlights direct connections (and secondary connections at depth 2)
Hover edgeShows the relationship type if the edge is a typed Excalibrain relationship
ClickRecentres the graph on that note
Double-clickOpens the note in the editor and recentres
DragRepositions a node
ScrollZoom in and out

Installation

From the community plugin directory

  1. Settings > Community plugins > Browse
  2. Search "Neighbourhood Graph"
  3. Install and enable

Manual install

  1. Download main.js, manifest.json, and styles.css from the latest release
  2. Create a folder at <your vault>/.obsidian/plugins/neighbourhood-graph/
  3. Copy all three files into that folder
  4. Settings > Community plugins > reload and enable Neighbourhood Graph

Settings

There are two places to configure the plugin:

Floating panel (gear icon on the graph)

Quick access to the controls you reach for most often.

SettingDescriptionDefault
Highlight depthTiers of connections highlighted on hover. 1 = direct only. 2 = direct + secondary.2 hops
Max neighboursCap on displayed notes. Most strongly connected shown first.30
Size by relevanceHow much node size varies by connection strength. 0 = uniform, 10 = dramatic.5
Max node sizeMaximum radius in pixels of the largest neighbour node. Reduce for a compact sidebar.10

Physics sliders — four controls for fine-tuning the graph layout: line colour, line thickness, spread (repulsion), and link pull (clustering). Changes are reflected live as you drag without rebuilding the graph.

Plugin settings tab (Settings > Neighbourhood Graph)

SettingDescriptionDefault
Highlight depthSame as the floating panel.2 hops
Max neighboursSame as the floating panel.30
Max node sizeMaximum node radius. Reduce for compact sidebars; increase for full-panel views.10
Show path in tooltipDisplay the vault-relative folder path when hovering a note node.On
Default node colourColour used for notes not matching any colour group. Falls back to your theme's accent colour.Theme accent

Colour groups

Assign colours to notes by query. Three query types are supported:

  • path:people/ — matches notes whose path starts with people/
  • tag:#project — matches notes carrying the #project tag
  • Plain text — matches against note title

First matching rule wins. Groups are collapsible in the settings tab once at least one exists. Use the Import button to copy colour groups directly from Obsidian's built-in graph view.

Excalibrain integration

If Excalibrain is installed, this plugin reads its typed relationship fields from note frontmatter to draw distinct edge styles and weight connections more accurately.

RelationshipEdge styleDefault frontmatter fields
Parent / childSolid lineParent, Parents, Children, Child, up, down
FriendDashed lineFriends, Friend, similar, supports, alternatives
OpposesDotted lineopposes, disadvantages, cons
Previous / nextDash-dot linePrevious, Next, Before, After

The plugin detects three states:

  • Not installed — plain edges only; the settings tab explains how to get Excalibrain
  • Installed, not yet opened — uses Excalibrain's built-in English field names
  • Installed and configured — reads your saved Excalibrain settings automatically

Toggle the integration on or off with the Use Excalibrain relationships toggle in the settings tab. When active, typed links receive a strength bonus so they rank higher in the neighbourhood.

Hover any typed edge to see the relationship label ("parent of", "friend", "opposes", etc.) in a tooltip.

The legend in the top-left of the graph panel shows edge style swatches that reflect your current line colour and thickness settings, so the key always matches the graph.

How it works

The plugin reads Obsidian's metadata cache for tags, resolved links, and frontmatter links. No custom frontmatter is required for basic use. Neighbours are scored by connection strength:

  • Shared tags between the focus note and a neighbour
  • Direct wikilinks (outbound and inbound)
  • Bidirectional links score higher
  • Well-connected hub notes rank higher (logarithmic scaling)
  • Excalibrain-typed relationships receive an additional strength bonus

The top N neighbours (configurable) are shown. Node size reflects relevance to the focus note — salience scaling is anchored to the displayed set, so variation fills the full range regardless of how many notes are capped.

Works well with

Graph Label Above — moves node labels above nodes in Obsidian's full graph view so they are not obscured by an enlarged mouse pointer. If you use Neighbourhood Graph alongside the built-in graph view, this is a natural companion.

Licence

MIT

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.