ZotSeek: Semantische Suche für eure Zotero-Bibliothek – vollständig lokal

Zotero’s search function is good at what it does: it finds the search term you’ve typed in. It doesn’t come up with ideas. If you search for ‘division of labour between humans and machines’, it won’t show you the paper that describes the same concept as ‘AI’s dual capacities for automating and informating work’.

This is exactly where ZotSeek comes in: the plugin searches the library by meaning rather than by spelling – and it does so without sending a single byte to an external source.

What is ZotSeek?

ZotSeek is a free, open-source plugin for Zotero that adds semantic search functionality. Instead of matching words, it converts each paper into a numerical representation of its meaning – known as an ‘embedding’ – and compares your query with these values.

The key factor is where this happens. The AI model is included in the plugin (around 130 MB) and runs on your own CPU within Zotero. No account, no API key, no credit, no cloud service. Once installed, ZotSeek will still work even if you unplug your computer from the internet.

ZotSeek is licensed under the MIT licence and has garnered just under 200 stars on GitHub since its first release at the end of December 2025.

How the search for meaning works

The principle is simpler than it sounds. The model reads a text and outputs 768 numbers – a set of coordinates in a space where texts with similar content are clustered closely together. A query on ‘how humans and AI divide up the work’ and a paper on ‘automating and informating work’ end up close to one another, even though they share hardly a word.

During the indexing, these figures are calculated once per session and stored in a small database alongside your Zotero data. When you carry out a search, they are calculated for the query and the nearest neighbours are identified – even with large libraries, this takes well under a tenth of a second.

In practice, the simplest form is rarely the best. ZotSeek uses the following by default: hybrid search: Semantic search and Zotero’s own keyword search run in parallel, and the two lists of results are merged. You get the conceptual results, but you don’t lose the exact match if you do happen to remember the author’s name. Both the purely semantic and the purely keyword-based results are just one click away.

The ZotSeek search dialogue, which answers a question in everyday language. None of the top results contain the words entered.

Three ways to search

The search dialogue box. Formulate a question in everyday language: ‘methodological criticism of self-report scales’, ‘studies in which the intervention failed’. You can link up to four search terms using AND/OR – this way, you’ll find the intersection of two strands of literature rather than their union.

Find similar documents. Simply right-click on any entry. ZotSeek compares its stored embedding with everything else in your library. This is the quickest way to realise that two works from different collections have been putting forward the same argument for years.

From the PDF. Highlight a passage whilst reading, right-click, and you’ll see which documents in your library cover this concept. The document currently open is automatically excluded.

Right-click on any item in the library. ZotSeek adds its own entries at the end of the Zotero context menu.

Results that highlight the issue – not just the work

A result that says ‘this 40-page PDF is relevant’ is only half the answer. In mode Full Document ZotSeek keeps track of the source of each piece of text, so that every result includes its source reference.

Each result shows which section matched – Abstract, Methods or Results – so that you can distinguish a passing reference in the introduction from a specific finding. When you hover over a match, a preview of the exact passage appears with the search terms highlighted; clicking on it opens the PDF on the correct page and at the correct paragraph.

A completed set of results can be saved as a new Zotero collection at the touch of a button, or you can select individual results and add them to an existing collection.

zotseek matched passage
If you hover your mouse over a result, the passage that actually matches your search query will be displayed – with the search terms highlighted – along with the page, paragraph and section from which it is taken.

Multilingual libraries: changing the model

Multilingual libraries: changing the model The default model is optimised for English. For German-language or mixed-language libraries, this is the most important setting of all – which is why you can change the model in the settings. There are four options to choose from:

ModelDimensionsMultilingualSizeSuitable for
nomic-embed-text-v1.5 (default, included)768No~130 MBLibraries with English-language collections or predominantly English-language collections
paraphrase-multilingual-MiniLM-L12-v2384Yes~135 MBMixed libraries on less powerful hardware
multilingual-e5-base768Yes~110 MBThe obvious first choice for a German library
BGE-M31024Yes~570 MBThe highest standard of multilingual quality, for large, diverse
Collections
The ZotSeek settings window: index statistics, model selection and the number of elements covered by each downloaded model.

The three optional models are loaded once by Hugging Face and then work offline in exactly the same way as the one supplied. The switch is non-destructive: each model retains its own index, so switching back is possible immediately and does not require re-indexing. The settings show how many of your entries are searchable under the active model, and offer to re-index the rest in the background.

Indexing – and what happens if it goes wrong

You decide what is indexed: just the title and abstract (quick) or the full text of the document (slower, but with the paragraph-level hits described above). New entries can be indexed automatically if desired. Group libraries can be included via the index scope. Entries with the tag zotseek-exclude get skipped.

A column in the list of entries shows the status of each item: fully indexed, partially indexed, out of date, excluded or not indexed at all. Longer runs can be paused or cancelled; they save progress regularly and resume automatically if Zotero is closed whilst the process is in progress.

The ‘ZotSeek’ column in the list of articles. A tick indicates that the article has been indexed and is searchable; the circular arrow indicates that the article has changed since it was last indexed.

There are two limitations you should be aware of: The plugin is unusually large at around 130 MB because it includes the AI model, and indexing currently runs exclusively on the CPU – GPU acceleration is already built into the code, but is awaiting Zotero to switch to a Firefox ESR version with WebGPU support. For large libraries in full-document mode, this means that the initial indexing is best left to run overnight rather than in the background.

The library as a tool for AI agents

Since version 1.19, ZotSeek has included a MCP server Once enabled in the settings, any MCP-compatible client – Claude Code, Codex, Claude Desktop and others – can search the library directly:

claude mcp add --transport http --scope user zotseek http://localhost:23119/zotseek/mcp

That is all there is to install. The server runs within Zotero, which is already open, and provides three read-only tools (search, find_similar, index_status) and listens exclusively on localhost. The results contain links that open the work found on the relevant page – this means that an assistant’s statements can be verified against the source.

Enable access for AI agents. The window displays the exact command for establishing a connection with a client.

We have set out how ZotSeek compares with the external MCP servers in our overview MCP and Zotero: an overview of available tools .

The server is disabled by default; it cannot modify either the library or the index, and cannot be accessed from outside the computer.

Optional: your own GPU

The built-in engine runs on the CPU. Anyone with a GPU who is already running LM Studio, Ollama, llama.cpp or vLLM can redirect ZotSeek to that server and index content significantly faster. Each request is checked at runtime against an allow list of loopback addresses; external redirects are rejected rather than followed, and there is no setting that could turn this into a cloud call. The feature is opt-in and disabled by default.

Data protection

This is where ZotSeek differs most significantly from AI assistants that rely on hosted models. No account, no telemetry, no usage tracking – and, in the default configuration, absolutely no network traffic at all, neither during indexing nor during searching. The embeddings are stored in a single file in the Zotero data directory. Uninstalling the plugin removes them.

How much it costs

Nothing. ZotSeek is free and open source under the MIT licence. There are no credits, no pricing tiers and no paid add-on features. Download the .xpi von der Releases-Seite, installiert sie über Werkzeuge → Plugins → Plugin aus Datei installieren, startet Zotero neu und wählt per Rechtsklick auf eine Sammlung „Update Library Index". Vorausgesetzt wird Zotero 8 oder neuer.

Summary

Semantic search is nothing new, and there are now several ways to integrate AI with Zotero – you can find an overview of these in our article AI plugins for Zotero. ZotSeek combines two things that rarely go hand in hand: a search that actually captures the meaning, and the certainty that your own, unpublished reading list never leaves your desk. No API key, no cost per query, no third parties involved.

Anyone who maintains a library that they can no longer keep track of in their head, and who cares about who else is reading it, should set aside an afternoon for indexing.

Links


ZotSeek is being developed by José Fernandes, a PhD student whose research focuses on human-AI collaboration. Two other open-source tools he has developed also import Zotero libraries, though as command-line tools rather than plugins: citefact checks a finished manuscript against the full text of the sources cited – to ensure that every reference exists, every quotation is verbatim and every statement is supported by the passage to which it refers. pagebound converts each PDF in a library once and temporarily stores the structured output, including the page and bounding box for each paragraph, so that multiple tools and AI agents can read the same documents without having to pay for the conversion process again.


Further reading

Blog - 9 Tips fuer bessere ARbeiten mit Zotero
9 tips to work faster and cleaner with Zotero
Zotero can save you a tremendous amount of time in your academic work – if you use it correctly. In this article, you will find 9 tried and tested Zotero tips from real-world experience.
Blog - Zotero 7 ist da
Zotero 7 is here. A huge step forward for the popular reference manager.
Zotero 7 is finally here! Performance improvements, a new look and much more. Find out all about the latest features here.
Zotero und CSL an der FOM
Correct literature research and citations at the FOM University of Applied Sciences with Zotero
Master literature research and citation at the FOM with Zotero! Easily organise your sources and automatically generate citations and bibliographies.
Blog - Adding sources to your Zotero bibliography
How do I add extra sources to my bibliography with Zotero?
Sometimes in Zotero, you need to add sources to your bibliography that have not been directly cited, such as the book containing a specific chapter. Here, I will show you how to do this easily.

© Citation Styler. All rights reserved. 2026

RICHTIG ZITIEREN UND DABEI SPAREN!

10% RABATT

auf alle Zitierstile

ZITIERGENIE10

Angebot gültig bis Ende des Jahres.