![]()
English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Français
🌐 Website: https://visterainer.github.io/aidea-zotero/en/
A free, open-source AI assistant plugin for Zotero
🔐 OAuth login with OpenAI (ChatGPT), Google Gemini, and GitHub Copilot
⚙️ OpenAI-compatible APIs and local or self-hosted models via Ollama, LM Studio, vLLM, and similar runtimes
Features | Installation | Getting Started | Configuration | License
Chat with AI directly in Zotero's side panel, available in both the Library view and the PDF Reader. Ask questions, get summaries, and stay inside the same research workflow.

Select text in the PDF reader and click Add Text to attach the selected passage to the context area. AIdea can then answer against the selected passage instead of relying on a generic summary.
Translate selected text directly in Zotero's PDF reader popup. Selection translation uses the same OAuth/API model list as the chat panel, but can be configured with its own enable switch, model, source language, and target language.
The first time this feature is used for a paper, AIdea creates a local cold-start cache with a compact paper overview and terminology summary. Later selection translations reuse that local cache as context, and translated passages can be added back to Zotero notes.


Use one-click shortcuts for common tasks such as Summarize, Explain, and Translate. Shortcuts can be added, edited, reordered, or removed to match your workflow.
Attach screenshots, figures, and charts to your messages. AIdea supports drag and drop, clipboard paste, and screenshot capture directly from PDF content.
Sign in with your existing account through OAuth. AIdea supports multiple providers with provider-specific OAuth flows, so you can start without managing an API key manually.
Translate full papers directly inside Zotero and export either a bilingual dual-column PDF or a single-language PDF. The translation workflow supports model selection, output path configuration, and end-to-end execution in the side panel.

Example outputs:



| Provider | Auth Method | Extra Setup |
|---|---|---|
| OpenAI (ChatGPT) | OAuth via Codex CLI | Node.js (auto-installed) |
| Google Gemini | In-plugin OAuth (PKCE) | Node.js (auto-installed) |
| GitHub Copilot | In-plugin OAuth (Device Code) | None |
Save AI responses as Zotero notes with one click. Responses are stored in Markdown and support LaTeX math rendering.
All conversations are stored locally in Zotero's database. You can switch between conversations, continue previous threads, and manage local chat history.
AIdea captures and recalls useful information across conversations to improve continuity and context awareness over time.
The plugin interface now supports 12 UI languages: English, 简体中文, 繁體中文, 日本語, 한국어, Français, Deutsch, Español, Русский, Português, العربية, and हिन्दी. Full-document translation keeps its broader target-language list independent from the UI language list.
AIdea-x.x.x.xpi from Releases.xpi fileInstall the newer .xpi package over the existing one. Chat history, stored memory, and local settings are preserved.
Go to Tools → Add-ons → AIdea → Settings. On older Zotero builds, the path may appear under Edit → Settings → AIdea.
AIdea supports two connection modes. You can use either one or combine both.
For each provider card, the typical setup order is:
①
Install/Update Env→ ②OAuth Login→ ③Refresh Models
| Button | What it does |
|---|---|
Install/Update Env |
Installs and configures the required CLI tools and runtime, including Node.js and npm when needed. GitHub Copilot does not require this step. |
OAuth Login |
Starts the provider-specific login flow. OpenAI and Gemini open the browser directly. GitHub Copilot shows a device code, copies it, and opens the browser for authorization. |
Refresh Models |
Loads the list of available models for the provider after login. |
Remove Auth |
Clears the locally stored OAuth token for that provider. |

💡 Tip: Each provider only needs to be configured once. The login session is stored locally and remains available after Zotero restarts.
AIdea can also connect to any OpenAI-compatible chat endpoint, including local, self-hosted, or third-party services such as Ollama, LM Studio, vLLM, DeepSeek, OpenRouter, or Groq.
In Settings, switch to API Mode and fill in:
| Field | Required | Description |
|---|---|---|
| API Base URL | Yes | The base URL of the compatible endpoint, such as https://api.openai.com/v1 or http://localhost:11434/v1 |
| API Key | No | Required only when the endpoint expects authentication |
| Model | Yes | Enter the model manually or click Auto Fetch Models to detect available models |

Note: API mode targets compatible
/chat/completionsendpoints. It does not guarantee support for provider-specific features beyond standard chat completion.
EnterClick shortcut buttons such as Summarize, Explain, or Translate for one-click actions. Right-click a shortcut to edit or remove it.
| Setting | Description | Default |
|---|---|---|
| UI Language | Plugin interface language | Auto-detected, fallback EN |
| System Prompt | Custom instructions for the model | Empty |
| Show "Add Text" | Show the Add Text option in the reader selection popup | On |
| Selection Translation | Translate selected reader text in the popup and reuse local cold-start context | On |
| Selection Translation Model | Dedicated model for reader selection translation | First available model unless changed |
| Show All Models | Show all available models instead of a curated subset | Off |
| Tab Bar | Show or hide the tab navigation bar | Hidden |
Planned directions for future releases include:
💡 Feature requests are welcome through Issues.
# Install dependencies
npm install
# Development mode
npm start
# Build production XPI
npm run build
# Run tests
npm run test:unit
This project is derived from llm-for-zotero by Yile Wang. See THIRD_PARTY_NOTICES.md for attribution details.
Author: zhile
$ claude mcp add aidea-zotero \
-- python -m otcore.mcp_server <graph>