{"id":39656830,"url":"https://github.com/dralkh/seerai","last_synced_at":"2026-04-27T09:02:33.330Z","repository":{"id":328030256,"uuid":"1113991120","full_name":"dralkh/seerai","owner":"dralkh","description":"Zotero AI plugin, research framework, assistant, with MCP, agent capabilities, OCR, table extraction, semantic scholar, and firecrawl/tavily web search","archived":false,"fork":false,"pushed_at":"2026-02-27T03:53:02.000Z","size":4838,"stargazers_count":36,"open_issues_count":1,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-27T10:37:48.701Z","etag":null,"topics":["agent","agentic","ai","mcp","openai","openai-api","plugin","research-tool","research-tools","scholar","semantic-search","tavily","zotero","zotero-api","zotero-plugin","zotero7"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"windingwind/zotero-plugin-template","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dralkh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"custom":["https://nano-gpt.com/r/RwCEN6fR"]}},"created_at":"2025-12-10T18:38:02.000Z","updated_at":"2026-02-27T03:53:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dralkh/seerai","commit_stats":null,"previous_names":["dralkh/seer-ai","dralkh/seerai"],"tags_count":54,"template":false,"template_full_name":null,"purl":"pkg:github/dralkh/seerai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dralkh%2Fseerai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dralkh%2Fseerai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dralkh%2Fseerai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dralkh%2Fseerai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dralkh","download_url":"https://codeload.github.com/dralkh/seerai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dralkh%2Fseerai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30171658,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T07:56:45.623Z","status":"ssl_error","status_checked_at":"2026-03-06T07:55:55.621Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","agentic","ai","mcp","openai","openai-api","plugin","research-tool","research-tools","scholar","semantic-search","tavily","zotero","zotero-api","zotero-plugin","zotero7"],"created_at":"2026-01-18T09:18:43.810Z","updated_at":"2026-04-27T09:02:33.310Z","avatar_url":"https://github.com/dralkh.png","language":"TypeScript","funding_links":["https://nano-gpt.com/r/RwCEN6fR"],"categories":["Extensions"],"sub_categories":["AI Integrations"],"readme":"# seerai\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"200\" height=\"200\" alt=\"logo\" src=\"https://github.com/user-attachments/assets/26e6aa5b-4b70-464a-8198-6ec48544593d\" /\u003e\n  \n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.zotero.org\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Zotero-9.x-brightgreen\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/License-MIT-blue.svg\" /\u003e\n  \u003c/a\u003e\n\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/90f68a0d-fec0-41e7-a988-f557c18bd150\" width=\"600\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/b9e71c6b-d903-4a69-8461-c7314e52dcf5\" width=\"600\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/fe543d48-eb68-47e4-b5f6-1d954e1597a2\" width=\"600\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://nano-gpt.com/r/RwCEN6fR\"\u003e\n    \u003cimg src=\"https://ik.imagekit.io/nanogpt/og-image.png?tr=w-600\" alt=\"Powered by NanoGPT\" width=\"600\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003ePowered by \u003ca href=\"https://nano-gpt.com/r/RwCEN6fR\"\u003eNanoGPT\u003c/a\u003e\u003c/b\u003e — Access 300+ AI models with flexible pay-as-you-go or subscription plans.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/dralkh/seerai/releases/latest/download/seerai.xpi\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Install-Download%20.xpi-brightgreen?style=for-the-badge\u0026logo=zotero\" alt=\"Download seerai.xpi\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n**seerai** is an intelligent research assistant plugin for Zotero 8 that integrates AI-powered chat, advanced search, and data extraction capabilities directly into your research workflow. Chat with your papers, extract structured data, and accelerate your literature review with a local-first, privacy-focused design.\n\n---\n\n## Features\n\n### AI-Powered Chat Interface\n\n- **Contextual Conversations**: Chat with AI about your selected papers with full context awareness.\n- **Smart Context Priority**: Automatically prioritizes content sources:\n  1. **Zotero Notes** (OCR note, and other notes for highest priority)\n  2. **Indexed PDF Text** (Fast, efficient, however consumes a lot of tokens and may cause limit issues)\n  3. **OCR** (Fallback for scanned documents with no indexed text)\n- **Multi-paper Support**: Add multiple papers to a single conversation for comparative analysis.\n- **Streaming Responses**: Real-time, token-by-token response rendering.\n- **Markdown \u0026 Math**: Responses are formatted with syntax highlighting and LaTeX math support.\n- **Vision Support**: Paste images directly into chat for multimodal analysis.\n- **Multimodal Generation**: Generate images, videos, speech-to-text, and text-to-speech directly from chat.\n- **Attachments Upload**: Add files to conversations via the context menu.\n- **Interactive Follow-ups**: Deepen the conversation with streaming follow-up questions.\n- **Configurable Citations**: Choose your preferred citation style for AI insights and chat.\n- **Smart Copy**: Select and copy text with preserved formatting (Markdown) directly from chat bubbles.\n- **Enhanced Keybindings**:\n  - `Enter`: Insert new line\n  - `Shift+Enter`: Send message\n  - `Ctrl+Shift+S`: Toggle/Focus detachable window\n- **Detachable Window**: Pop out the SeerAI interface into a standalone resizable floating window to maintain chat access while navigating your library.\n- **Themed UI**: Enhanced dialogs and components with full theme support for a consistent look across Zotero's Light and Dark modes.\n- **Responsive Layout**: Chat, tables, and search tabs dynamically adapt to panel width changes.\n\n### Semantic Search \u0026 Discovery\n\n- **RAG (Retrieval-Augmented Generation)**: Per-context embeddings with chunking, vector store, and semantic retrieval for large documents.\n- **Web Search**: Integrated Firecrawl \u0026 Tavily support for finding high-quality full-text content.\n- **Semantic Scholar Agent**: Advanced paper search with:\n  - **Advanced Filters**: Fine-tune results by Year, Venue, and Citation Count.\n  - **AI Insights Config**: Configure insight generation directly from the search panel.\n- **Smart Import**:\n  - **PDF Discovery**: Automatically finds and attaches PDFs during import.\n  - **Source Link**: Fallback to source links if PDFs are unavailable.\n  - **Status Indicators**: Clear feedback on import status (⬇️ Importing, ✅ Imported, ⚠️ Failed).\n- **Global Search Scope**: Searching now extends across all libraries, including personal and group collections.\n- **Advanced Boolean Search**: Robust support for nested logic (AND/OR/NOT), implicit phrasing, and markdown-aware matching.\n- **Smart Regex matching**: Improved search precision with intelligent handling of word boundaries and special characters.\n\n### Agentic Chat \u0026 Tool Use\n\n- **Autonomous Agents**: AI can now use tools to interact with your Zotero library and the web.\n- **Rich Tool Suite**:\n  - **Search Tool**: Search through your library with advanced filters.\n  - **Collection Tool**: Manage collections and move items.\n  - **Note Tools**: Read, create, and **edit existing** item notes for seamless research updates.\n  - **Tag Tool**: Automatically generate and apply relevant tags to your research.\n  - **Read Tool**: Extract text from PDFs and items for deep analysis.\n  - **Citation Tool**: Generate citations and bibliographies.\n  - **Table Tool**: Interact with and generate data for your Paper Tables.\n  - **Web Tool**: Search the web and fetch content using Firecrawl or Tavily.\n- **Advanced Orchestration**: Improved tool calling logic and iteration tracking for more robust agent performance.\n- **Model-as-a-Tool**: Seamless integration with LLM tool-calling capabilities.\n\n### Papers Tables\n\n- **Structured Extraction**: Extract specific data points from multiple papers into a comparative table.\n- **AI-Powered Columns**: Define custom columns with AI prompts (e.g., \"Methodology\", \"Sample Size\").\n- **Inline Editing**: innovative inline editor for column titles and prompts.\n- **One-Click Generation**: Generate data for individual cells or entire columns instantly.\n- **Bulk Actions**: Regenerate content or add selected papers to collections in bulk.\n- **Side Strip Actions**: Unified controls for adding, removing columns, generating triggers, and settings.\n\n### OCR \u0026 Text Extraction\n\n- **Flexible OCR Options**:\n  - **Mistral OCR**: High-quality cloud OCR (Recommended).\n  - **DataLab.to**: Reliable cloud-based extraction.\n  - **Local Marker**: Run your own local OCR server for free, private processing.\n- **Auto-Processing**: Automatically processes unindexed PDFs when needed.\n\n### Customizable AI\n\n- **Persistent API Keys**: API keys are saved and persisted across all configured providers.\n- **Model Presets**: Pre-configured settings for popular providers:\n  - [NanoGPT](https://nano-gpt.com/r/RwCEN6fR) (300+ models, pay-as-you-go or subscription)\n  - OpenAI (GPT-5, o3)\n  - Anthropic (Claude Sonnet 4.5)\n  - Google (Gemini 3 Pro)\n  - DeepSeek, Mistral, Groq, OpenRouter\n  - Local Models (Openai compatible endpoint, [Ollama](https://ollama.com), LM Studio)\n    - 12-16g Vram - Qwen3-4B-Thinking-2507\n    - 24-32g Vram - gpt-oss-20b\n    - 48-64g Vram - QwQ-32B\n    - 96-128g Vram - Qwen3-Next-80B-A3B-Instruct\n- **Smart Rate Limiting**: Per-model configuration for concurrency, RPM, and TPM to prevent provider errors.\n- **Per-Conversation Models**: Switch models dynamically based on the task complexity.\n\n---\n\n## Installation\n\n### From GitHub (Recommended)\n\n1. Download the latest release (`.xpi` file) from [Releases](https://github.com/dralkh/seerai/releases).\n2. In Zotero, go to **Tools → Add-ons**.\n3. Click the gear icon ⚙️ and select **Install Add-on From File...**.\n4. Select the downloaded `.xpi` file.\n5. Restart Zotero.\n\n### From Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/dralkh/seerai.git\ncd seerai\n\n# Install dependencies\nnpm install\n\n# Build the plugin\nnpm run build\n\n# The .xpi file will be generated in the root directory\n```\n\n---\n\n## Configuration\n\nGo to **Zotero → Settings → seerai** to configure your AI providers and services.\n\n### 1. AI Models\n\nUse the **Add Configuration** button to set up your AI models.\n\n- **[NanoGPT](https://nano-gpt.com/r/RwCEN6fR)** (Default): Pre-selected when adding a new model. Access 300+ AI models with flexible pricing — pay-as-you-go or subscription plans. Supports Apple Pay, Google Pay, credit card, and crypto. The model list is fetched automatically.\n- **Presets**: Select from built-in presets (OpenAI, Anthropic, Ollama, etc.) for quick setup.\n- **Custom**: Manually configure API URL, Key, and Model ID for any OpenAI-compatible provider.\n- **Default**: Set a preferred model as your default for new conversations.\n\n### 2. OCR Services\n\nChoose your preferred text extraction engine:\n\n- **Mistral OCR**: Requires [Mistral API Key](https://console.mistral.ai/). Best for accuracy.\n- **Cloud (DataLab.to)**: Requires DataLab API Key.\n- **Local Marker Server**: Requires running a local Python server.\n  - URL: `http://localhost:8001` (Default)\n  - See [Marker Project](https://github.com/VikParuchuri/marker) for setup.\n\n### 3. Search Integrations\n\n- **Semantic Scholar**: Add your [API Key](https://www.semanticscholar.org/product/api) for higher rate limits and faster searches.\n- **Firecrawl**: Add [API Key](https://firecrawl.dev) to enable deep web search capabilities - local instance with ([GitHub](https://github.com/firecrawl/firecrawl)).\n- **Tavily**: Add [API Key](https://tavily.com/) for optimized search results tailored for AI agents.\n\n### 4. MCP Server \u0026 API\n\nSeer-AI now includes a Model Context Protocol (MCP) server and a local API for external integrations.\n\n- **MCP Server**: Located in [`mcp-server/`](mcp-server/README.md). Allows external LLMs (like Claude Desktop) to interact with your Zotero library. See the [MCP Setup Guide](mcp-server/README.md) for configuration instructions.\n- **Local API**: Provides endpoints for chat, tool execution, and library management.\n  - **Settings → seerai → API**.\n  - Default Port: `23119`\n\nThis mode requires sophisticated models with strong tool/function-calling capabilities to function properly.\n\n---\n\n## Usage Guide\n\n### Chatting with Papers\n\n1. Select a paper (or multiple) in your library.\n2. Open the **SeerAI** sidebar tab.\n3. (Optional) Customize context inclusions via the settings icon (Abstracts, Notes).\n4. Type your question or use templates from the **Prompt Library** (Book icon).\n\n### Detachable Window\n\n- **Pop-out**: Click the `⇱` button in the SeerAI tab bar to open a floating window.\n- **Hotkey**: Press `Ctrl+Shift+S` to instantly detach, toggle, or focus the window.\n- **Auto-Sync**: The detached window automatically updates its context when you select different items in Zotero.\n- **Attach**: Close the floating window or click the dock button (within the sidebar placeholder) to return to the sidebar.\n\n### Creating Data Tables\n\n1. Open the **Tables** tab in the main view.\n2. Click `+` on the side strip to add a new column.\n3. Define the column header and AI prompt (e.g., \"What is the sample size?\").\n4. Drag and drop papers into the table.\n5. Click **Generate** on cells to extract data.\n\n### Prompt Library\n\n- Access via the **Book Icon** 📖 in chat.\n- Use built-in templates (Summarize, Critique, Compare).\n- Create custom templates with placeholders:\n  - `!`: Saved Prompts\n  - `/`: Papers\n  - `^`: Folders\n  - `~`: Tags\n  - `@`: Authors\n  - `#`: Topics\n\n---\n\n## Future Implementations Ideas\n\nEnhanced search functionality to help users find relevant literature more effectively.\n\n- **Autocomplete**: Intelligent suggestions for tags, creators, and collections as you type.\n- **Complex Queries**: Support for boolean logic (AND/OR) and nested search conditions (e.g., \"Title contains X AND Year \u003e 2020\").\n- **Field-Specific Search**: Dedicated filters for titles, authors, years, and tags.\n- **Citation References**: Inline citations within tables and chat during generation.\n- **Internal MCP Presets**: Custom support for MCP JSON presets for streamlined integrations.\n- **Connectors**: External service connectors for extended workflows.\n\n---\n\n## Development\n\n### Prerequisites\n\n- Node.js 18+\n- Zotero 8\n\n### Project Structure\n\nThe codebase follows a modular architecture:\n\n```\nseerai/\n├── addon/                 # Zotero integration files (XUL/XHTML)\n├── src/\n│   ├── modules/           # Core feature modules\n│   │   ├── chat/          # Chat engine \u0026 state\n│   │   │   └── rag/       # RAG pipeline (chunker, embeddings, retrieval, vector store)\n│   │   ├── assistant.ts   # Main assistant logic\n│   │   ├── firecrawl.ts   # Firecrawl integration\n│   │   ├── nanogptWeb.ts  # NanoGPT web integration\n│   │   ├── ocr.ts         # OCR implementation\n│   │   ├── openai.ts      # LLM \u0026 multimodal client\n│   │   ├── semanticScholar.ts # Semantic Scholar integration\n│   │   └── preferenceScript.ts # Preferences logic\n│   ├── utils/             # Utility functions\n│   └── hooks.ts           # Zotero event listeners\n└── package.json\n```\n\n### Commands\n\n```bash\nnpm start       # Start dev server with hot reload\nnpm run build   # Build for production\nnpm run lint:fix # Fix code style issues\n```\n\n---\n\n## Contributing\n\nContributions are welcome!\n\n1. Fork the repo.\n2. Create a feature branch (`git checkout -b feature/MyFeature`).\n3. Commit changes (`git commit -m 'Add MyFeature'`).\n4. Push to branch (`git push origin feature/MyFeature`).\n5. Open a Pull Request.\n\n---\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## Acknowledgments\n\n- [NanoGPT](https://nano-gpt.com/r/RwCEN6fR) — Partner\n- [Zotero](https://www.zotero.org)\n- [Mistral AI](https://mistral.ai)\n- [Semantic Scholar](https://www.semanticscholar.org)\n- [Firecrawl](https://firecrawl.io)\n- [Marker](https://github.com/VikParuchuri/marker)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdralkh%2Fseerai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdralkh%2Fseerai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdralkh%2Fseerai/lists"}