ZotPilot - Academic Research Assistant
Search, organize, and analyze your Zotero academic paper library with semantic search, citation tracking, and automated tagging
Free to install β no account needed
Copy the command below and paste into your agent.
Instant access β’ No coding needed β’ No account needed
What you get in 5 minutes
- Full skill code ready to install
- Works with 7 AI agents
- Lifetime updates included
Description
--- name: zotpilot description: >- Use when user mentions Zotero, academic papers, citations, literature reviews, research libraries, or wants to search/organize their paper collection. Also triggers on "find papers about...", "what's in my library", "organize my papers", "who cites...", "tag these papers". Always use this skill for Zotero-related tasks. license: MIT compatibility: - Python 3.10+ - Zotero desktop (installed and run at least once) --- # ZotPilot > All script paths are relative to this skill's directory. ## Step 1: Check readiness **Python command:** Use `python3` on Linux/macOS. On Windows, use `python`. Run: `python3 scripts/run.py status --json` (Windows: `python scripts/run.py status --json`) Parse the JSON output and follow the FIRST matching branch: 1. Command fails entirely β **Prerequisites** (see `references/setup-guide.md`) 2. `config_exists` is false β **First-Time Setup** (see `references/setup-guide.md`) 3. `errors` is non-empty β **First-Time Setup** (note: `warnings` like API key not in env are OK if key was passed to `register`) 4. `index_ready` is false or `doc_count` is 0 β go to **Index** below 5. All green β go to **Research** **Inline fallback** (if agent cannot access references/): ```bash python3 scripts/run.py setup --non-interactive --provider gemini python3 scripts/run.py register # Restart your AI agent, then ask again. ``` If any errors: run `python3 scripts/run.py doctor` for diagnostics. ## Index (if doc_count = 0) MCP tools are now available. Index the user's papers: ```bash python3 scripts/run.py index ``` Indexing takes ~2-5 seconds per paper. Documents over 40 pages are skipped by default. After indexing, check for "Skipped N long documents" β offer to index them with `--max-pages 0`. ## Research (daily use) ### Tool selection β pick the RIGHT tool first | User intent | Tool | Key params | |---|---|---| | Find specific passages or evidence | `search_papers` | `query`, `top_k=10`, `section_weights`, `required_terms` | | Survey a topic / "what do I have on X" | `search_topic` | `query`, `num_papers=10` | | Find a known paper by name/author | `search_boolean` | `query`, `operator="AND"` | | Find data tables | `search_tables` | `query` | | Find figures | `search_figures` | `query` | | Read more context around a result | `get_passage_context` | `doc_id`, `chunk_index`, `window=3` | | See all papers | `get_library_overview` | `limit=100`, `offset=0` | | Paper details | `get_paper_details` | `item_key` | | Who cites this? | `find_citing_papers` | `doc_id` | | Tag/organize one paper | `add_item_tags`, `add_to_collection` | `item_key` | | Batch tag/organize many papers | `batch_tags`, `batch_collections` | `items` or `item_keys`, `action` | | Search external databases for new papers | `search_academic_databases` | `query`, `limit=20` | | Add a paper by DOI/arXiv/URL | `add_paper_by_identifier` | `identifier` | | Batch add papers from search results | `ingest_papers` | `papers` (from search_academic_databases) | ### Workflow chains **Literature review:** search_topic β get_paper_details (top 5) β find_references β search_papers with section_weights **"What do I have on X?":** search_topic(num_papers=20) β report count, year range, key authors, top passages **Organize by theme (batch):** search_topic β create_collection β batch_collections(action="add", item_keys=[...]) β batch_tags(action="add", items=[...]) **Find specific paper:** search_boolean first (exact terms) β fallback to search_papers (semantic) β get_paper_details **Find and add new papers:** search_academic_databases β review candidates with user β ingest_papers β index_library **Organize library (classification advisor):** get_library_overview + list_collections + list_tags β analyze themes via search_topic β diagnose issues (uncategorized papers, inconsistent tags, oversized collections) β propose collection hierarchy + tag normalization β interview user for confirmation β batch_collections + batch_tags(add/remove) to execute ### Output formatting - Lead with paper title, authors, year, citation key - Quote the relevant passage directly - Include page number and section name - Group results by paper, not by chunk - Render table content as markdown tables - NEVER dump raw JSON to the user ### Error recovery | Error | Fix | |---|---| | Empty results | Try broader query, or `search_boolean` for exact terms. Check `get_index_stats` | | "GEMINI_API_KEY not set" | Expected if key was passed to `register`. Only re-run setup if provider is wrong | | "ZOTERO_API_KEY not set" | Write ops need Zotero Web API credentials β see `references/setup-guide.md` | | "Document has no DOI" | Cannot use citation tools for this paper | | "No chunks found" | Paper not indexed β run `index_library(item_key="...")` | ### Write operations (tags, collections) Write tools require Zotero Web API credentials (`ZOTERO_API_KEY` + `ZOTERO_USER_ID`). If missing, see **Configure Zotero Web API** in `references/setup-guide.md`. **Single-item:** `add_item_tags`, `set_item_tags`, `remove_item_tags`, `add_to_collection`, `remove_from_collection`, `create_collection` **Batch (max 100 items):** `batch_tags(action="add|set|remove")`, `batch_collections(action="add|remove")` Partial failures are reported per-item without rollback. For detailed parameter reference, see `references/tool-guide.md`. For common issues and fixes, see `references/troubleshooting.md`.
Security Status
Scanned
Passed automated security checks
Related AI Tools
More Career Boost tools you might like
PPT Generator Pro - Claude Code Skill
Free- **Skill εη§°**: ppt-generator-pro - **ηζ¬**: 2.0.0 - **ζθΏ°**: εΊδΊ AI θͺε¨ηζι«θ΄¨ι PPT εΎηεθ§ι’οΌζ―ζζΊθ½θ½¬εΊεδΊ€δΊεΌζζΎ
Humanizer: Remove AI Writing Patterns
FreeTransforms AI-generated text into natural, human-sounding writing by detecting and fixing common AI patterns like inflated symbolism, promotional language, and passive voice
Color Expert
FreeUse when working with color naming, color theory, color spaces, color definitions, or any task involving color knowledge - palettes, ramps, gradients, conversions, accessibility, perceptual matching, pigment mixing, print-vs-screen color, CSS color s
JUnit 5 Testing Skill
FreeGenerates production-grade JUnit 5 unit and integration tests in Java with assertions, parameterized tests, lifecycle hooks, and Mockito mocking
Jest Testing Skill
FreeGenerates Jest unit and integration tests in JavaScript or TypeScript with mocking, snapshots, async testing, and React component testing
Jasmine Testing Skill
FreeGenerates Jasmine BDD-style JavaScript tests with spies, async support, and comprehensive matchers for unit testing