A mind map plugin for Zotero 7 and later, Zotero 10 included. Build a knowledge graph of your sources with typed, named links between items and notes, organized into multiple named mindmaps and rendered as a graph you arrange yourself.
Zotero's tags and relatedItem field connect two items, but not how they're connected. Whether one critiques the other or is the primary source for one specific chapter gets flattened into the same untyped link. For a highly interconnected source corpus, that loses most of the structure worth mapping.
An existing plugin, samreading/zotero-mindmap, covers basic note-linking, but has no typed or named links, no way to split sources across more than one mindmap, and no central graph view. This isn't a fork of it and doesn't share its data format.
Researchers holding a corpus where the connections matter as much as the sources: a literature review where one paper answers another, a thesis chapter with its own primary sources, a citation network you want to see rather than reconstruct each time.
If you want a concept map of one PDF's argument, samreading/zotero-mindmap fits better.
-
Typed, named links between items and notes, with an optional direction, so "critiques" and "primary source for chapter 3" mean something more specific than a generic "related." Link types are a vocabulary you edit, not a fixed list.
-
Multiple named mindmaps instead of one flat graph, since most people's sources split by topic rather than one global structure.
-
A rendered graph per mindmap in its own Zotero tab, with link type shown as a label plus a line-style cue, not color alone (color stops being readable past 8-10 types). Parallel links between the same two nodes are offset so each stays readable and separately labeled.
-
Link creation from wherever you're actually working: a "Mindmaps" section in the item pane while reading, a right-click in the library, or a right-click on a node in an open mindmap.
-
Node positions you set by dragging, persisted with the mindmap. Nodes you haven't placed get laid out on a grid.
-
Node grouping, for marking a cluster as belonging together without inventing a link between every pair.
-
Cross-mindmap links, reaching from one mindmap into a node whose membership lives in another, styled to flag it as external.
Mindmap data lives in a Zotero note item, tagged and parented to a per-library container item, so it syncs with your library through Zotero itself rather than a separate account or file. The container can be hidden from the library view.
Download zotero-linked-mindmaps.xpi from the latest release. If your browser opens it instead of saving it, use "Save link as".
In Zotero: open Tools, then Plugins. Click the gear icon at the top right, choose "Install Plugin From File...", pick the .xpi, and restart Zotero. Requires Zotero 7 or later.
The build carries an update URL, so Zotero's own plugin updater offers later versions. A plugin that fails to load does so quietly, with no error dialog, so check that "Zotero Linked Mindmaps" appears in the Plugins list after the restart.
Getting started walks from there to a first linked mindmap.
Version 0.2.0 is the current published build. The feature set above works. Expect rough edges, and read the plugin data guide before you go poking at the "Zotero Linked Mindmaps (plugin data)" item in your library. Trashing it hides every mindmap in that library until you restore it.
See ROADMAP.md for what came in which phase and what's still open.
Published at https://oekeur.github.io/zotero-linked-mindmaps/ (built from docs/ by VitePress on every push to main). The same pages render in-repo if you'd rather browse the source tree.
Working on the docs locally:
npm run docs:dev # local server with hot reload
npm run docs:build # production build, fails on any dead link
npm run docs:preview # serve the built site- Getting started walks from an empty install to a first linked mindmap.
- User guide covers the mindmap tab, the Mindmaps section, link types, grouping, cross-mindmap links, and recovering plugin data from the trash.
- Contributing covers dev setup, the npm scripts, testing against a live Zotero instance, and configuration.
- Internals documents the storage layer, the document schema, graph rendering, and the plugin lifecycle, including the Zotero integration constraints that shaped them.
Requires a local Zotero 7 or later install and a dev profile. Full setup guide. CONTRIBUTING.md covers filing an issue, the verification gate, and the commit convention.
cp .env.example .env
# set ZOTERO_PLUGIN_ZOTERO_BIN_PATH and ZOTERO_PLUGIN_PROFILE_PATH in .env
npm install
npm start # builds and hot-reloads into the Zotero dev profileOther commands:
npm run build # bundle to a .xpi-ready build, then type-check with tsc --noEmit
npm run lint:check # Prettier + ESLint, check only
npm run lint:fix # Prettier + ESLint, auto-fix
npm test # run test/ against a live Zotero instance
npm run test:fast # same run, but kills Zotero on the completion line instead of
# waiting for its GUI to exit, which sometimes never happens
npm run clean:profile # reset the dev profile (also runs automatically before npm start)npm run build type-checks src/ but not test/, so run the suite after changing an exported signature.
AGPL-3.0-or-later.

