Tag Lens
approvedby laximgqozaZZZYT
Explore tag–note relationships in your Obsidian Bases vault with a co-occurrence heatmap, intersection lattice, BubbleSets, and Icon Gallery. - This plugin has not been manually reviewed by Obsidian staff.
Tag Lens
Tag Lens is an Obsidian plugin for exploring tag-membership structure through 4 view modes and a unified control panel.
It combines multi-perspective visualisation with Visual Encoding, Insight tools, Saved Lenses, Active-Note follow, and PNG export — all fully local, with no network requests.
Designed for vaults where notes are tagged in deeply overlapping ways and a single force-directed graph would just hairball. Each view answers a different question; encoding and overlays let you read your own dimensions into the figure.
View modes
Tag Lens currently provides 4 view modes:
| Mode | What it shows |
|---|---|
| Icon Gallery | One compact icon per note, tiled in a grid. From the note outward, each icon nests: the note itself, notes that share all its tags, groups of notes that share some of its tags, and its link / backlink neighborhood. |
| Intersection lattice | Degree-tiered Hasse-style layout of exact tag intersections with subset links; each node auto-switches between overview / density / individual rendering by count and zoom. |
| Tag co-occurrence heatmap | Symmetric tag × tag grid; cell shade = how many notes share two tags (Jaccard by default; raw count on a log/p95 scale). Diagonal = tag size. Click a cell to list the notes in that co-occurrence. |
| BubbleSets | Containment layout drawn as rectangular iso-contour bubbles. |
Unified Control Panel
The floating settings panel is a unified control center available in every view mode. It is divided into four main tabs to help you filter, navigate, display, and analyze your graph:
1. Filter
Control exactly what data enters the graph.
- Bases: Scope the graph directly to selected
.basefiles. The built-in pipeline constructs a unified graph from these bases, including optionally extracting implicit links, shared tags, or shared properties based on your settings.
2. Notes (Note Navigator)
A list of all notes surviving the filter pipeline.
- Folder and Tag trees. The tag tree groups notes by
#tagand adds multi-tag combination sub-groups (e.g.#a * #b) so heavily overlapping notes are easy to find. - Search by plain text,
#tag(hierarchical) or frontmatterkey:value, with live suggestions. - Pin to Sidebar: Dock the navigator panel to the right edge of the canvas for persistent access alongside your visualizations.
- Show / hide notes on the graph via a checkbox on each row; folder checkboxes cascade to their notes (tri-state), and Select all / Deselect all toggle everything at once.
- Click a note to focus / locate / open it.
3. Settings
Global graph display configurations and behavior, structured into sub-tabs:
- View: Select your layout algorithms. Enable Active Note View to auto-follow the active note in your Obsidian editor and instantly visualize its context (links, backlinks, and shared tags).
- Display: Granular control over graph elements (
Show nodes,Show enclosures,Show edges,Show grid) and global minimum font size rules. - Encode: The Visual Encoding Engine. Declaratively bind note attributes (e.g., frontmatter
statusor computedageDays) to visual channels (like Color or axis position). This operates purely on attribute → appearance mapping; it never changes which notes are displayed. - Layers: Per-cluster display overrides. Adjust card sizes (
m × ncells) and behaviors for specific tag groups.
4. Insight
Analyzes your current graph state to help you manage complexity.
- Overview: Computes a real-time Cognitive Load Metric based on visible nodes, edges, and clusters. Provides actionable advice when the graph becomes too complex.
- Alerts: Automatically alerts you to statistical gaps in co-occurrences (Gap Finder) and suggests highly similar, unlinked note pairs (Bridge Finder) to help you connect isolated knowledge.
- Suggest: Provides tag categorization suggestions based on Golder & Huberman's functional classification (e.g., identifying tags as Roles, Types, Properties, Contexts, or Statuses) for effective tag refactoring.
Install
Manual
- Download
main.js,manifest.jsonandstyles.cssfrom the latest release. - Copy them into
<vault>/.obsidian/plugins/tag-lens/. - In Obsidian: Settings → Community plugins → enable Tag Lens.
- Open the view: ribbon icon (forked-graph) or command palette "Open Tag Lens".
From source
git clone https://github.com/laximgqozaZZZYT/tag-lens.git
cd tag-lens
npm install
npm run build
# main.js is produced at the repo root; copy main.js / manifest.json /
# styles.css into your vault's plugins/tag-lens/ folder.
Usage
- Click the ribbon Tag Lens icon (or run the command "Open Tag Lens") to open a tab with the view.
- The floating Unified Control Panel will appear on the canvas. Drag its header to move it, the bottom-right corner to resize, or double-click the header to minimise.
- Navigate between the Filter, Notes, Settings, and Insight tabs to interact with your data.
- Hover any node / cell for a tooltip; click a note row / card to open the underlying file.
Privacy & data access
Tag Lens reads the tags (frontmatter tags and inline #tag markers), note links (inline [[…]] and frontmatter links), and basic metadata (path, basename, frontmatter fields used by your current view/filter/encoding, modification time). It runs fully locally inside Obsidian and does not make network requests.
Compatibility
Requires Obsidian 1.5.0 or later. Works on desktop and mobile (the heavier experimental containment/Euler family modes are best on desktop).
Architecture & contributing
Design docs and the agent/contributor guide live under docs/0.3.21/:
basic-design (architecture), detailed-design (module reference) and AGENTS.md
(verification gate, gotchas, E2E/deploy workflow). Run npm run verify
(tsc --noEmit && node test/run.mjs && node esbuild.config.mjs) before committing — tsc is the only type gate
(esbuild ignores types). Older, superseded notes are archived in docs/old/.
Licence
MIT — see LICENSE.
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.