Zotero Research Assistant

Ask, verify, compare, organize, and turn Zotero papers into research notes without leaving your library.

Stars
★ 3.5k
Last updated
3d ago
License
AGPL-3.0
Primary language
TypeScript

At a glance

How it runs
Agent plugin / skillDesktop app
Works with
Universal · cross-platformCodex · OpenAI API · Claude APIChatGPT · Claude Code (Partial support)
Cost
Free software; you pay for model usage
Setup effort
Medium · a few setup steps
You'll need
Zotero 7, 8, or 9Shell / CLINetwork accessLocal filesystemMCP Server
Typical use
A graduate student reading a PDF in Zotero can ask about its methods, results, or selected text and click citations to verify the underlying passage.
Not a fit if
  • Researchers who do not use Zotero 7, 8, or 9, since it is a plugin only
  • Users unwilling to pay for cloud model APIs or cloud MinerU parsing

What does this agent do, and when should you use it?

llm-for-zotero is a Zotero plugin distributed as an .xpi that places paper chat and research workflows in the Zotero PDF-reader sidebar and a standalone window. It accepts the current PDF, selected text, screenshots, other open papers, and uploaded documents as conversation context, with citations that can jump back to source passages. Its beta Agent Mode can search and read a Zotero library, then perform confirmed changes to tags, metadata, collections, attachments, and notes, with session undo for recent writes. The plugin supports standard API providers, local OpenAI-compatible endpoints, WebChat, Codex App Server, and an experimental Claude Code mode. Results can be saved as Zotero notes or as Markdown notes in local folders including Obsidian and Logseq.

On the first message, the plugin loads the current paper into context; later turns use focused retrieval from that paper and expose generated citations as links back to Zotero passages. It can read PDFs, selected text, figure screenshots, and up to 10 uploaded files in PDF, DOCX, PPTX, TXT, or Markdown formats, while / adds another open paper as context. Agent Mode provides library and PDF reading, CrossRef and Semantic Scholar discovery, tag and metadata updates, collection and attachment management, note editing, local file read/write, and analysis commands; writes use confirmation cards and the session retains the last 10 write entries for undo. When MinerU is enabled, new PDF attachments are parsed and cached as higher-fidelity Markdown with tables, equations, figures, and complex layouts; local mode uses mineru-api through POST /file_parse. The plugin can save answers and full chats, or create Markdown research notes with YAML frontmatter in Zotero or a configured local directory.

  1. A graduate student reading a PDF in Zotero can ask about its methods, results, or selected text and click citations to verify the underlying passage.
  2. A researcher comparing several open papers can add them with / and request a focused comparison of methods or evidence.
  3. A curator of a large Zotero library can use Agent Mode to find items and related papers, then review and confirm tag or metadata updates.
  4. An Obsidian or Logseq user can ask for a paper summary to be saved as a Markdown note with YAML frontmatter and Pandoc citation syntax.
  5. A user handling tables, equations, or complex layouts can enable MinerU so new PDF attachments are parsed and cached for later conversations.
  6. A ChatGPT Plus subscriber can configure the local codex app-server runtime and switch to the Codex conversation system inside Zotero without a separate API key.

How do you install or deploy this agent?

Download the latest .xpi from the Releases page. In Zotero, open Tools → Add-ons, select the gear icon, choose Install Add-on From File, select the .xpi, and restart Zotero. Open Preferences → llm-for-zotero, select a Provider, enter the API Base URL, secret key, and model name, then select Test Connection. For Codex App Server, first install and sign in to the Codex CLI with npm install -g @openai/codex and codex login; then enable the integration in the plugin's Agent tab and test the connection.

How do you use this agent?

Open a PDF in Zotero, click the LLM Assistant icon in the right-side toolbar, and ask a question, add selected text, attach screenshots, or upload supporting files. Save an individual answer or the complete conversation to a Zotero note. For local Markdown output, configure a nickname, absolute Notes Directory Path, and default folder in Notes Directory, then ask the assistant to save to that named location. To use library-wide search, note-writing, or organization tasks, enable Agent Mode in Preferences and toggle Agent (beta) in the context bar.

What are this agent's strengths and limitations?

Pros
  • It works inside the Zotero PDF reader and provides citations that can jump back to the source passage for answer verification.
  • It combines current-paper chat, multi-paper comparison, screenshots, and several external-document formats rather than limiting context to one PDF.
  • Agent Mode brings library search, CrossRef and Semantic Scholar discovery, note creation, and library organization into one workflow while keeping writes confirmable and session-undoable.
  • It offers several backend paths: API providers, local OpenAI-compatible models, WebChat, Codex App Server, and Claude Code.
  • Optional MinerU parsing and local Markdown-note output support workflows centered on extraction fidelity, Obsidian, or Logseq.
Limitations
  • It is fundamentally a Zotero plugin, so adoption requires a compatible Zotero 7, 8, or 9 installation rather than a standalone research application.
  • Backend choices carry different credentials and runtime requirements: provider APIs usually need a key, Codex needs a signed-in Codex CLI, and Claude Code needs its CLI plus a local bridge.
  • Claude Code integration is experimental and currently lacks native Zotero API operations; native library reads, tagging, and imports remain the responsibility of built-in Agent Mode.
  • WebChat depends on a Chromium browser extension and an open ChatGPT or DeepSeek tab; minimizing, backgrounding, or monitor-state changes can drop the connection.
  • Local MinerU requires a self-hosted mineru-api server, and pausing a job does not stop parsing already running on that server.

How does this agent compare with similar options?

Compared with keeping output only in Zotero internal notes, File-Based Notes writes Markdown with YAML frontmatter and Pandoc citation syntax to Obsidian, Logseq, or any local directory. Compared with cloud MinerU, local mineru-api keeps PDFs on the machine when using the default 127.0.0.1 address, but requires the user to run the service and prepare its models.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Zotero Research Assistant This agent 54 · Major gaps Agent plugin / skillFree + model costs ★ 3.5k 3d ago TypeScript Codex · OpenAI API · Claude API
LLM Wiki 69 · Some gaps CLIFree + model costs ★ 1.8k 15d ago Python Codex · Claude Code · Claude.ai
Material Learning Studio 92 · Excellent Agent plugin / skillFree ★ 1.3k 17d ago Python Codex · Claude Code
AI Research Skills 77 · Some gaps Agent plugin / skillFree + model costs ★ 604 1d ago Python Claude Code

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
54/ 100 5-point scale 2.7 / 5
This review covers the source as of Aug 09, 2026. The project has shipped 22 stable release(s) since, which have not been re-reviewed. The score and verdict describe the reviewed version only. Recent releases ↓
Trust 16/29
Reliability 6/14
Adaptability 12/18
Convention 10/18
Effectiveness 7/13
Verifiability 3/8
Why each dimension lost points
Trust16 / 29 · 2.8/5

Evidence: Agent Mode is disabled by default, write operations require confirmation, and session undo (last 10 entries) is provided. Read tools are unrestricted but write tools are reviewable. Data flow transparency: README has a privacy and data flow section, but no detailed logs or audit. Sensitive data handling: API keys stored locally, but no encryption or protection details. Dependency security: dependencies not pinned, no security audit. External effects: can read/write local files and execute commands, but requires confirmation. Rollback: session undo provided, but not persistent. Source attribution: publisher not verified, no clear attribution. Deductions: insufficient evidence for sensitive data handling and dependency security, unclear source attribution.

Reliability6 / 14 · 2.1/5

Evidence: Code structure is consistent, tests cover some functionality, but no complete test results. Dependency availability: dependencies not pinned, may affect reproducibility. Failure messages: error handling exists, but no user-visible failure message examples. Deductions: dependencies not pinned, insufficient failure message evidence.

Adaptability12 / 18 · 3.3/5

Evidence: Targets Zotero users, supports multiple scenarios (paper QA, summarization, comparison). Capability boundaries: Agent Mode clearly distinguishes read/write tools, write operations require confirmation. Trigger precision: skill trigger patterns are clear, but no detailed rules. Environment fit: supports multiple backends (API, local models, WebChat, Codex, Claude Code), but depends on external services. Deductions: insufficient evidence for trigger precision and some environment fit.

Convention10 / 18 · 2.8/5

Evidence: README structure is clear, with installation instructions, examples, FAQ, known limitations. License is AGPL-3.0, version exists but no changelog. Maintenance responsibility: issue templates and CI exist, but publisher not verified. Deductions: no changelog, unclear maintenance responsibility.

Effectiveness7 / 13 · 2.7/5

Evidence: Output usability is high, with citation jumping, note saving. Marginal value: provides unique features (e.g., MinerU parsing, multi-paper comparison). Cost-benefit: requires API keys or external services, cost not clear. Deductions: insufficient cost-benefit evidence.

Verifiability3 / 8 · 1.9/5

Evidence: README claims are partially demonstrated, but no verifiable test results. Cross-source corroboration: no independent verification. Fact-inference separation: not clearly distinguished. Deductions: lack of verifiable test results and independent verification.

Risks and how to mitigate them
  • Dependencies are not pinned, which may introduce security vulnerabilities or compatibility issues.
  • API key storage does not mention encryption measures; users should handle keys carefully.
  • Agent Mode can read/write local files and execute commands; although confirmation is required, users should understand the risks.
  • Publisher identity is not verified; users should assess trustworthiness themselves.
Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision e10614464e3a New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v3.9.16 Release v3.9.16
    Release notes excerpt
    What's new in LLM for Zotero *Changes since 3.9.15* The agent now reads the parts of a paper you name, in any language, and shows you which parts it read. It can do more in your library: attach files, find PDFs, change item types, annotate, and open a PDF at a page. Claude Code and Codex show their steps in Task progress, and Codex asks before it writes to Zotero. Reading papers Ask for the parts you want Name the parts of a paper you want, such as "the abstract and the results". The agent picks those sections from the paper's own outline, in any language. …
    View on GitHub ↗
  2. v3.9.15 Release v3.9.15
    Release notes excerpt
    What's new in LLM for Zotero *Changes since 3.9.14* You can now open any chat in its own small window and keep it beside your paper. Answers are easier to read, with type and spacing closer to Claude desktop. Zotero's Codex sessions can use their own Codex home folder, apart from the Codex app. Chat windows Open a chat in its own window In the separate chat window, drag a chat out of the chat list, or drag the chat title. You can also right-click a chat and choose Open in New Window. The new window holds that one chat. …
    View on GitHub ↗
  3. v3.9.14 Release v3.9.14
    Release notes excerpt
    What's new in LLM for Zotero *Changes since 3.9.13* The chat has a new layout: the composer floats over the bottom of the chat, and the window sidebar groups your chats by agent. Answers that use the web now credit their sources. Task progress shows which papers and pages each question used, and where the answer uses them. A local MinerU server can now start when you need it and stop when you don't. The chat window A floating composer The composer and the shortcut chips now float over the bottom of the chat. …
    View on GitHub ↗

FAQ

Does it require an API key?
Not always. Standard API providers usually require a key, while local OpenAI-compatible endpoints usually do not. WebChat avoids a provider API key but needs a browser extension and signed-in web session. ChatGPT Plus users can use Codex through Codex App Server without a separate API key.
Where do my papers and conversation data go?
That depends on the selected backend. Provider mode sends paper content and messages to the configured provider; WebChat relays them to chatgpt.com or chat.deepseek.com; cloud MinerU receives new PDFs when parsing is enabled. Conversation history and cached paper context are stored locally by the plugin, while local models and default local MinerU can keep processing on the machine.
Can Agent Mode modify my Zotero library?
Yes. It can make changes to tags, metadata, collections, attachments, imports, and notes, but documented write actions are routed through reviewable confirmation cards. The last 10 write entries in a session are retained for undo.
Does pausing MinerU immediately free GPU or CPU resources?
No. mineru-api has no cancel or DELETE endpoint. Pause stops the plugin queue and aborts its HTTP wait, but an already-started server-side parse continues until it finishes; restarting mineru-api is required to stop it immediately.
View on GitHub ↗ Install ↓

Related agents