AIdea — Free AI chat in Zotero's side panel. OAuth login (no API key needed), supports OpenAI-compatible APIs and local models (Ollama, LM Studio). | 免费 AI 助手,Zotero 侧边栏对话,OAuth 登录无需 API Key,支持 OpenAI 兼容接口与本地模型(Ollama、LM Studio)
AIdea
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
✨ Features
💬 AI Chat in the Side Panel
Chat with AI directly in Zotero's side panel, available in the Library view and the PDF or EPUB Reader. Ask questions, get summaries, and stay inside the same research workflow. EPUB conversations use the book's EPUB 2/3 publisher structure and bounded local retrieval to select relevant sections without an additional planning-model request.
📄 Paper-Aware Context
Select text in the PDF or EPUB 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.
📝 Selection Translation
Translate selected text directly in Zotero's PDF or EPUB reader popup. AIdea detects the active format automatically, with no manual switch required. 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.
For PDFs, the first selection translation creates a local cold-start cache with a compact paper overview and terminology summary. EPUB selections instead use bounded, selection-anchored book context without a separate warm-up request. Translated passages can be added back to Zotero notes.
⚡ Quick Action Shortcuts
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.
🖼️ Multimodal Support
Attach screenshots, figures, and charts to your messages. AIdea supports drag and drop, clipboard paste, and screenshot capture directly from PDF content.
🔐 OAuth Login Without an API Key
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.
📄 Full-Document Translation
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:
🌐 Multi-Provider Support
| 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 |
📝 Note Export
Save AI responses as Zotero notes with one click. Responses are stored in Markdown and support LaTeX math rendering.
💾 Persistent Chat History
All conversations are stored locally in Zotero's database. You can switch between conversations, continue previous threads, and manage local chat history.
🧠 Memory System
AIdea captures and recalls useful information across conversations to improve continuity and context awareness over time.
- Auto-capture detects preferences, decisions, facts, and key entities from natural conversation
- Per-library isolation keeps memories scoped to each Zotero library
- Smart deduplication uses Jaccard token similarity to prevent redundant memories
- Relevance-ranked retrieval combines overlap, substring match, recency, and importance
- Prompt injection defense blocks malicious or irrelevant content from being stored
- Fully local storage keeps memory data inside Zotero's SQLite database
🎨 Rich Rendering
- Full Markdown rendering, including headings, lists, code blocks, and tables
- LaTeX math support via KaTeX
- Syntax highlighting for code blocks
- Smooth streaming responses
🌍 Interface Languages
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.
📦 Installation
Requirements
- Zotero 7 or later
- Node.js, required for OpenAI and Gemini, can be installed automatically by the plugin when needed
Install the Plugin
- Download the latest
AIdea-x.x.x.xpifrom Releases - In Zotero, go to Tools → Add-ons
- Click the gear icon ⚙️ and choose Install Add-on From File...
- Select the downloaded
.xpifile - Restart Zotero
Upgrade
Install the newer .xpi package over the existing one. Chat history, stored memory, and local settings are preserved.
🚀 Getting Started
1. Open Settings
Go to Tools → Add-ons → AIdea → Settings. On older Zotero builds, the path may appear under Edit → Settings → AIdea.
2. Choose a Connection Mode
AIdea supports two connection modes. You can use either one or combine both.
Option A: OAuth Login
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.
Option B: OpenAI-Compatible API Endpoint
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/completions endpoints. It does not guarantee support for provider-specific features beyond standard chat completion.
3. Start Chatting
- In the Library Panel, select an item and use the AIdea panel in the right sidebar
- In the PDF or EPUB Reader, open a document and use the AIdea panel in the reader sidebar
- Type your question and press Send or hit
Enter
4. Use Quick Actions
Click shortcut buttons such as Summarize, Explain, or Translate for one-click actions. Right-click a shortcut to edit or remove it.
⚙️ Configuration
| 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 with automatic bounded document 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 |
🔒 Privacy & Security
- OAuth tokens are stored locally only
- API requests are sent directly to the selected provider or configured endpoint
- AIdea does not collect usage telemetry or user data
- Chat history and memory remain in Zotero's local database
- The code is fully available for inspection on GitHub
🗺️ Roadmap
Planned directions for future releases include:
- One-click architecture diagrams, for generating structural visualizations from paper content
💡 Feature requests are welcome through Issues.
🛠️ Development
# Install dependencies
npm install
Development mode
npm start
Build production XPI
npm run build
Run tests
npm run test:unit
📄 License
This project is derived from llm-for-zotero by Yile Wang. See THIRDPARTYNOTICES.md for attribution details.
⭐ Star History
Author: zhile