Plugins / AI & summaries

ZotSeek - Semantic Search for Zotero

by daniel-eder · github.com/daniel-eder/ZotSeek

🔍 AI-powered semantic search for Zotero 8. Find similar papers by meaning, not just keywords. Uses local embeddings (nomic-embed-text-v1.5) - 100% offline, no data leaves your machine.

View source
Downloads a .xpi file (8.5 MB). In Zotero, open Tools → Plugins and install it from the file.
StarsPeople who starred the repository on GitHub: a rough measure of interest.
0
DownloadsAll-time downloads of its release files from GitHub. Installs from elsewhere aren't counted.
6
ContributorsPeople who have committed code to the repository.
3
LicenceThe licence the code is published under, as GitHub reports it.
None stated
B
Atlas gradeUse with care
because it keeps its own tables in Zotero's database, and 2 more findings
Applies to v1.4.0, released 9 Jan 2026Code checked · not yet tested in a live Zotero
Doesn't work with the current Zotero (10)Works with Zotero 8.
Fork of introfini/ZotSeekA copy of another listed plugin, changed by someone else.
Another plugin uses the same ID2 other plugins share this add-on ID. Zotero can only install one of them.
What we found in the codeSets the gradeThe worst finding in these three areas sets the grade.
Code transparencyMinified (compressed) code, uploaded by the project's automated GitHub buildThe release file was uploaded by the project's automated GitHub build. We haven't yet rebuilt it from the source to compare.LowLow concern: normal for plugins that do this job. Listed so you know.
Updates
Updates come from this project's GitHub repositoryThe update address offers this version
Where your data goesOnly contacts services we could identify2 addresses in 1 group.LowLow concern: normal for plugins that do this job. Listed so you know.
AI services (2)
api.openai.comgenerativelanguage.googleapis.com
Where we found it
api.openai.comcontent/scripts/index.js · line 372
OpenAI API Key is required")}async embed(e,t=!1){let i=Date.now(),r=await fetch("https://api.openai.com/v1/embeddings",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer $
generativelanguage.googleapis.comcontent/scripts/index.js · line 372
t=!1){let i=Date.now(),r=t?"RETRIEVAL_QUERY":"RETRIEVAL_DOCUMENT",s=await fetch(`https://generativelanguage.googleapis.com/v1beta/models/${this.modelId}:embedContent?key=${this.apiKey}`,{method:"POST"
Powerful capabilitiesKeeps its own tables in Zotero's database, and 6 moreMediumMedium concern: worth reading before you install. One medium finding makes the grade B.
Keeps its own tables in Zotero's databasemediumMedium concern: worth reading before you install.A zotero:// link (a web page can open one) can make it install add-ons without asking you (from zotero-plugin-toolkit)mediumMedium concern: worth reading before you install.A zotero:// link can make it run code if you approve a prompt (from zotero-plugin-toolkit)mediumMedium concern: worth reading before you install.Uses the clipboardlowLow concern.Stores API keys or passwordslowLow concern.Runs code it assembles while runninglowLow concern.Works with files on your computerlowLow concern.
Where we found it
Keeps its own tables in Zotero's databasecontent/scripts/index.js · line 252

Tables: embeddings, zotseek, zs_embeddings, zs_metadata

${A}embeddings`);this.logger.info(`Found ${i} records to migrate`),i>0&&(await Zotero.DB.queryAsync(`
A zotero:// link (a web page can open one) can make it install add-o…content/scripts/index.js · line 15

zotero://plugin

.`)}}catch(s){t.logError(s),Se(s.message,!1)}},newChannel(r){this.doAction(r)}};Services.io.getProtocolHandler("zotero").wrappedJSObject._extensions["zotero://plugin"]=i}};function Se(n,e){let t=new Z
A zotero:// link can make it run code if you approve a promptcontent/scripts/index.js · line 15

zotero://ztoolkit-debug

ow:r})}catch(d){i.debug(d),r.console.log(d)}}},newChannel(t){this.doAction(t)}};Services.io.getProtocolHandler("zotero").wrappedJSObject._extensions["zotero://ztoolkit-debug"]=e}},Ve=class K{static ve
Before you installShown, not gradedFacts to help you decide. They don't change the grade.
Works withZotero 8 · not 9, 10, 11 betaDoesn't work with the current Zotero (10)MediumMedium concern: worth reading before you install. One medium finding makes the grade B.
Zotero 8 ✓ worksZotero 9 ✗ doesn't workZotero 10 ✗ doesn't workZotero 11 beta ✗ doesn't work
What you'll needZotero 8Detected automatically from its code
No further detail for this area yet.
MaintenanceSlowing down · last release 9 Jan 20263 contributors
No further detail for this area yet.
LanguagesDocumentation in EnglishInterface: English
No further detail for this area yet.
We report what we found in the code. Open any area for the evidence.How we gradeReport a problem

What it does

Description coming soon. We haven't written a summary yet. The line above is the developer's own description; the developer's README is linked above.

What you'll need

Detected automatically
  • Zotero 8Not working with Zotero 10

Where your data goes

We found: only contacts services we could identify. 2 addresses in 1 group.

AI services (2)
api.openai.comgenerativelanguage.googleapis.com
Evidence · file and line
api.openai.comcontent/scripts/index.js · line 372
OpenAI API Key is required")}async embed(e,t=!1){let i=Date.now(),r=await fetch("https://api.openai.com/v1/embeddings",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer $
generativelanguage.googleapis.comcontent/scripts/index.js · line 372
t=!1){let i=Date.now(),r=t?"RETRIEVAL_QUERY":"RETRIEVAL_DOCUMENT",s=await fetch(`https://generativelanguage.googleapis.com/v1beta/models/${this.modelId}:embedContent?key=${this.apiKey}`,{method:"POST"

Forks and alternatives

Fork of introfini/ZotSeek.

2 other plugins use the same ID as this one. Every Zotero plugin carries an ID, a name tag Zotero uses to tell plugins apart. These 3 plugins carry the same one, because people copied ZotSeek | AI-Powered Semantic Search & MCP Server to make their own versions and kept its ID.Show what this means
  • You can only have one. Zotero sees them as the same plugin.
  • Installing another replaces it. If you install one of the others, it takes this one's place.
  • Check what you install. Several share this plugin's name, so make sure the file comes from the one you meant.
ZotSeek - Semantic Search for Zotero · this plugindaniel-eder/ZotSeekBUse with care69 Jan 2026
ZotSeek | AI-Powered Semantic Search & MCP ServerThe most used · introfini/ZotSeek–Not graded yet42,46624 Sep 2026
See all 3 and how they differ →

No forks listed.

Plugins for the same job
  • Google Scholar Citation CountCiting & writing · Import & metadataA+Recommended, tested in Zotero
  • DOI FixImport & metadataA+Recommended, tested in Zotero
  • Add Items from TextAI & summaries · Import & metadataA+Recommended, tested in Zotero
  • MkteroReading & PDFs · Citing & writing · AI & summariesA+Recommended, tested in Zotero

The developer's response

The developer hasn't responded. Developers can reply here, and their reply sits next to our findings.I'm the developer
Install ZotSeek - Semantic Search for Zotero
BUse with care
Before you install: It keeps its own tables in Zotero's database, and 2 more findings.Read the finding
Compare with similar plugins