Insurgently
Obsidian plugin · Free

Topic Map

Topics found for you in your books, notes, shelves and Bases and drawn as a map.

Topic Map reads every passage, groups what it says into named topics, and gives you a map to explore and a place to ask questions. It runs on Model Hub, which holds your AI keys, and reads your Calibre books through Library Hub.

Finds the topics your books and notes share, draws them as a map, and answers a question with cards that quote their passage.

A map of what you've read

A shelf of books, or a few years of notes, holds more than anyone can keep in their head. Topic Map reads it passage by passage and writes a card for each idea, with the quote it came from. Cards that say the same thing become a topic, and topics that sit close together become a theme, each one named for you. Then it draws them: ideas that mean alike sit side by side, colored by theme.

Naturalists' shelfFind a card or topic
Islands and how species changeCollecting in the tropicsWhales and the seaDeep time and the earthBirds through the seasonsLiving simply in the woods

Naturalists' shelf › Islands and how species change

Species that differ by island

31 cards · 3 books

Linked topics (↗ another theme)

Draws on

Voyage of the Beagle14

On the Origin of Species11

The Malay Archipelago6

Show its cardsOpen in theme note
Eight naturalists' books, from Darwin's Beagle voyage to Thoreau's Walden, as one map. Point at a topic, or select it, to see what it links to and which books it draws on. Network shows the same topics as linked dots, and Words shows them as their names.Demo data

Under the hood: each card's 30 nearest cards are measured on whole vectors, and clustering runs in a Rust kernel compiled to WebAssembly, so the same cards give the same topics on every computer. Themes and Network draw with WebGL; Words draws with the page itself. Technical details →

What it does for you

It reads what you've collected, sorts it into topics, and keeps every idea tied to the words it came from.

Topics, found for you

I didn't want to tag a library by hand, and nobody can tag what's inside a book. Topic Map finds the topics itself. It works out how many there are, names each one against the others so the names stay distinct, merges clear overlaps and flags the loose ones. It asks you only when there's a real choice. Each topic lists its cards by kind, the books it draws on, and any claims inside it that disagree. Themes are written as notes in your vault, with every card and its quote, so they link and show up in Graph view like notes you wrote. Each topic and theme has a short summary, made in the background and priced first.

Ask, and get the passages back

Ask a question in plain words and you get cards, not an answer from nowhere. Each card names its book and place and quotes its passage. Read the passage around the quote, or open the book in Library Hub's reader at that line. From any card, Other books finds where another author makes the same point, and Disagreements finds where one takes the other side.

Write-ups where every quote is real

When a list of cards isn't enough, ask for a write-up. Topic Map gathers the best card from each book, looks for books that disagree, and drafts a note in sections. Every quote is checked against its passage, and one that isn't there is flagged right where it stands. You see the cards and the price of the one writing call before anything is written.

Your whole library on one map

With Library Hub, your books become one map. Each dot is a book, placed near the books most like it and colored by its Library Hub shelf, with a ring for a second shelf. Light a shelf to see how far its books spread and which books from other shelves sit among them. A new book finds its place and nothing else moves.

LibraryFind a book
Natural historySea storiesFolklore and fairy talesAusten and the novelTranscendentalistsWalden

Library › Book

Walden

On Transcendentalists and Natural history

Similar books

Open in readerOpen its topic map

Shelves: select one to light it

Forty books on five shelves. Select a book for its shelves and similar books, or a shelf to light it. Walden sits between Natural history and the Transcendentalists, on both.Demo data

Collections from anything you keep

A collection is what Topic Map reads together: the books on a shelf, the notes in a folder or with a tag, or the rows of a Base. A lens says what to pull from each passage. Three come built in: nonfiction (concepts, claims, cases and practices), fiction (motifs, characters, places and objects) and notes (ideas, claims, decisions and open questions). Journals, saved chats from Model Hub and web clips have lenses of their own too. Ask a notes collection for its open questions and you get every question your notes leave unanswered, each with the note it came from. Customize this lens… makes one of your own. A Base or a folder of notes is on the map before anything is read: color it and filter it by any property, with a chart for each, and once it's indexed, see which properties stand out in a topic.

Your collections in Claude

If you work in Claude Code, Claude Desktop or Codex, connect them to Model Hub's MCP server. MCP is the standard way AI apps share tools. Your agent can then search your collections, follow a card to other books and read its passage, so what it writes quotes your books, not its memory.

Under the hood: six tools (topic-map.collections, search, neighbors, get, read and open_map) registered on Model Hub, served over MCP's Streamable HTTP transport, following the MCP spec of 2025-11-25. Only open_map acts, and it changes nothing in your vault. Technical details →

It works with what you have

Topic Map needs Model Hub for its models, so it never asks for a key of its own. Each job, from reading passages to naming topics, runs on the Model Hub tier you choose, and every call lands in the same receipts as your other plugins.

Books come through Library Hub, which reads your Calibre library. Without it, collections of notes and Bases work just the same.

What it writes is plain Markdown in your vault: collection notes, theme notes and drafts. Theme notes link the books and notes they quote, so backlinks and Graph view work on them, and a passage link opens the exact passage from any note.

Money and data, plainly

  • Topic Map is free. The model calls go through Model Hub to your provider, who bills you for them.
  • Reading a collection is priced before it starts. A dry run counts the passages and shows the cost, and a spend limit stops the run if it would go over. After that, a run reads only what changed.
  • A search costs a fraction of a cent per question. Opening and exploring the map costs nothing: it makes no model call and no network request.
  • Your text goes only to the providers you set up in Model Hub: the passages being read, and your questions.
  • Every write is shown to you first and logged, and Undo a run takes it back.
  • The index (passages, cards and vectors) lives in Topic Map's plugin folder, so uninstalling the plugin deletes it, with the reading you paid for. Copy its corpora folder out first to keep it.
  • I get nothing from you: no telemetry, no account, no ads.
Every request, spelled out: Privacy and costs →

What it can't do yet

  • It's desktop only.
  • Topics change only when you run Find topics again. New cards from a later index wait until then.

What I'm building next

Topic Map reads your books and notes, finds the topics they share, draws them as a map, and answers your questions with the passages they come from.

Built so far: topics found and named for you; questions answered with the passages behind them; write-ups where every quote is checked; your whole library on one map; collections from shelves, folders, tags and Bases; and your collections in Claude and other AI apps.

Soon

  • Gaps between themes. See where two close themes have few cards linking them, and start a write-up from that gap.
  • Answers you can keep. Write-ups number their sources, and you can save an answer back into your vault as a note.
  • Search inside a topic. Ask a question within one topic, right from the topic itself.
  • New cards find their topics. Cards from a later index join the topics they fit, and Topic Map suggests finding topics again only when the map has drifted.
  • Claims labeled by evidence. Each claim says whether it's established, emerging or a hypothesis, with the passage that backs it.

Later

  • People, places and terms across books. The same person, place or term is recognized wherever it appears, so you can follow it from book to book.
  • Topics shaped by your links. The links and tags in your notes pull their cards together, so your own structure shapes the topics.
  • A wiki from your cards. Topics and themes compiled into pages you can read and edit, with your edits kept when the cards change.
  • A richer map. Each book's footprint, a path from one topic to another, what changed since the last run, and views you can save.
  • Reading with your topics beside you. Read a book with its cards and topics in the margin, and use a map of the book as a way in.

Get it running

You need desktop Obsidian 1.13.1 or later and Model Hub with one provider set up. For books, add Library Hub as well.

  1. Install and enable Model Hub from Community plugins, and add a provider in Settings → Model Hub.
  2. Install and enable Topic Map, and Library Hub too if you want collections of books.
  3. In Settings → Topic Map → Collections, select New collection… and pick a shelf, a folder, a tag or a Base.
  4. Select Index…, read the price in the dry run, and start it.
  5. Select Find topics…, then Open map.
Getting started, step by step →

Curious how it works inside? Start with Technical details →. Building a plugin on it? I've written Agent docs → for your coding agent, with an llms.txt it can read.

Join

One list for everything here: an email when a plugin ships, plus the posts I write about these projects on brianspringer.com.

Want to help build this, or join the co‑op? Email me about joining →

Insurgent Methods is where we build at a different scale, to take on the biggest problems.

Needs
Obsidian 1.13.1, desktop