This is an English translation of a Chinese technical deep-dive report on llm-for-zotero, published on zhichai.net.
Project Overview
| Attribute | Value | |---|---| | Repository | yilewang/llm-for-zotero | | Author | Yile Wang (@yilewang) | | License | AGPL v3 | | Languages | TypeScript 96%, CSS 2.8%, other 1.2% | | Community | ⭐ 1.9k, 🍴 96, 1297 commits | | Supported Zotero | 7, 8, 9 | | Latest release | v3.8.18 (2026-06-11) | | Open issues / PRs | 73 / 6 |
The author's stated philosophy: eliminate switching costs so AI becomes a natural extension of the reading experience. Traditional workflow (open PDF → paste into ChatGPT web → return to Zotero) is replaced by instant, in-context AI answers. The plugin is deliberately not a generic chat box, but an elegant tool that blends into Zotero — "concise but not shallow."
Core Features
Reading & Chat
- Chat with the current PDF in Zotero; first query auto-loads the full text, subsequent queries use targeted retrieval
- Citation-linked answers with jump-to-source in the original PDF
- Multi-paper comparison: type
/to reference up to 10 open papers - Full-text or method/results-specific summaries; select any passage for explanation
- Multimodal: up to 10 figure screenshots; upload PDF/DOCX/PPTX/TXT/Markdown as context
- Per-paper chat history, locally persisted, exportable to Markdown
- Save answers/selections/conversations as Zotero built-in notes (Markdown supported)
- File-based Markdown notes to any local directory — native fit for Obsidian and Logseq
- Auto YAML frontmatter with Pandoc cite syntax
[@citekey], compatible with the Zotero Integration plugin - MinerU-extracted figures can be embedded in notes
- Based on
windingwind/zotero-plugin-template; clean structure (addon/,src/,doc/,test/,typings/,zotero-plugin.config.ts) - Strengths: unified 6-protocol adapter layer, local caching, confirmation + undo safety, MCP standardization, bilingual docs
- Risks: Beta Agent permission boundaries, Claude Code bridge dependency on third party, MinerU cloud/local service dependency, test coverage unclear
- ~30+ commits/month, releases every 1–2 weeks; contributors: @yilewang (lead), @jianghao-zhang (Codex/Claude Code), @boltma (file upload), @renyong18 (local MinerU)
- Single-maintainer-dominated model: fast decisions but maintainer-bottleneck risk
- Integrations: Obsidian/Logseq (mature), MinerU (mature), OpenAI ecosystem (mature), MCP (Beta), Claude Code (experimental)
Notes
Agent Mode (Beta, off by default)
Read tools (direct execution): query_library, read_library, read_paper, search_paper, view_pdf_pages, search_literature_online (CrossRef, Semantic Scholar).
Write tools (human confirmation required): apply_tags, update_metadata, move_to_collection, manage_collections, manage_attachments, merge_items, trash_items, import_identifiers, import_local_files, edit_current_note, undo_last_action.
File system & scripts (confirmation required): file_io, run_command (shell), zotero_script (Zotero JavaScript).
Safety: undo for the last write action, up to 10 undo records per session. Cache-aware context: stable literature context and read evidence are retained; history is auto-compressed when the context window runs out.
Skills System
8 built-in skills:simple-paper-qa, evidence-based-qa, analyze-figures, compare-papers, library-analysis, literature-review, write-note, import-cited-reference. Custom skills are Markdown files in {ZoteroDataDir}/llm-for-zotero/skills/.MinerU PDF Parsing
Automatic MinerU parsing for newly imported PDFs, producing high-fidelity Markdown that preserves tables, formulas, figures, and complex layouts. Cloud (MinerU API) and local (mineru-api) modes; local backends: pipeline (CPU-friendly), vlm (GPU), hybrid. Includes a cache management panel with batch parse/repair/delete.MCP Server
Built-in Model Context Protocol server athttp://localhost:23119/llm-for-zotero/mcp, exposing Zotero tools via JSON-RPC 2.0 to external AI agents.Multi-Backend Support
| Backend | API key | Notes |
|---|---|---|
| Standard providers | Yes | OpenAI, Gemini, DeepSeek, Moonshot, etc. |
| Local models | Usually no | Any OpenAI-compatible endpoint (Ollama, LM Studio, vLLM) |
| WebChat | No | Browser extension syncs ChatGPT/DeepSeek web sessions |
| Codex App Server | No (ChatGPT Plus) | codex app-server runtime |
| Claude Code | Claude Code auth | Experimental, local bridge |
Protocols: responses_api, openai_chat_compat, anthropic_messages, gemini_native, codex_responses, web_sync.
Competitor Comparison
| Project | Stars | Last update | Positioning | |---|---|---|---| | llm-for-zotero | 1.9k | 2026-06-11 | Deep AI research assistant + Agent mode | | Aria (ai-research-assistant) | 1.7k | 2024-10-20 | Lightweight embedded AI assistant | | Zotero-AI-Butler | 1.4k | 2026-06-05 | Automated note generation, batch processing | | Zotero-GPT | — | 404 / unmaintained | Early GPT plugin, defunct |
vs. Aria: llm-for-zotero wins on model breadth (Aria is GPT-4-only), local models, Agent mode, skills, MCP, multi-paper comparison, MinerU, WebChat, and update cadence. Aria only suits users wanting minimal OpenAI-only integration.
vs. Zotero-AI-Butler: Complementary rather than competing. Butler focuses on batch automated notes, mind maps, and one-click poster/summary generation; llm-for-zotero focuses on interactive deep reading, cross-paper dialogue, and Agent automation. Both can coexist.
Rankings per the report: feature richness / model breadth / modern architecture — llm-for-zotero > Zotero-AI-Butler > Aria; batch automation — Zotero-AI-Butler > llm-for-zotero > Aria; interactive chat — llm-for-zotero > Aria > Zotero-AI-Butler.
Code Quality
Community & Ecosystem
Privacy Assessment
| Scenario | Risk | |---|---| | Cloud APIs / WebChat / cloud MinerU | Medium | | Local models + local MinerU + MCP (localhost) | Low — data never leaves the machine |
Limitations & Future Directions
Limitations: Zotero 7+ only; Agent mode Beta; experimental Claude Code; WebChat lacks Agent// commands; learning curve; maintainer bottleneck (high risk); AGPL v3 for commercial use.
Likely roadmap: Agent mode GA (~v4.0), Agent memory system (already on roadmap), native Claude Code support, cross-device sync (MinerU cache sync). Medium probability: more built-in skills, deeper MCP interoperability with other research AI tools. Risks: Zotero API changes, maintainer abandonment, feature bloat.
Recommendations by User Type
| User | Recommendation | |---|---| | Power users wanting a full AI research assistant | llm-for-zotero (first choice) | | Batch auto note generation | Zotero-AI-Butler | | Minimal setup | Aria (or llm-for-zotero WebChat mode) | | Privacy-critical, fully local | llm-for-zotero (local models + local MinerU) |
Key takeaways for similar tooling: multi-backend abstraction is essential; citation traceability is a core academic-AI requirement; Markdown-defined skills beat prompt templates for community contribution; MCP is the emerging interop standard; bilingual docs matter for reaching Chinese users.