Zotero
$
npx mdskill add openai/plugins/ZoteroManage local Zotero libraries via API for citation workflows.
- Searches libraries and exports BibTeX for academic writing.
- Connects to local Zotero Desktop running on localhost:23119.
- Executes Python scripts to enable API and handle citations.
- Returns JSON data or syncs references into LaTeX drafts.
SKILL.md
.github/skills/ZoteroView on GitHub ↗
--- name: Zotero description: Use Zotero Desktop from Codex to enable/probe the local API, search a local Zotero library, list items/collections/tags, export BibTeX, insert citation keys into LaTeX or Markdown drafts, read indexed full text when requested, and import BibTeX/RIS records into Zotero through the connector server. Use when the user mentions Zotero, citations, references.bib, BibTeX export, local Zotero API, localhost:23119, or adding citations from a Zotero library. --- # Zotero Use this skill to operate a user's local Zotero Desktop library from Codex. Core helper: ```bash python3 <plugin-root>/skills/zotero/scripts/zotero.py <command> ``` Resolve `<plugin-root>` by going two directories up from this `SKILL.md` file. The helper is stdlib-only and follows the repo convention of running plugin Python helpers with `python3` / `#!/usr/bin/env python3`; it does not require Codex-specific runtime discovery. ## Fast starts Check readiness in one command: ```bash python3 <plugin-root>/skills/zotero/scripts/zotero.py status --json ``` Enable the local API and restart Zotero if needed: ```bash python3 <plugin-root>/skills/zotero/scripts/zotero.py enable --restart ``` Search and export citation data: ```bash python3 <plugin-root>/skills/zotero/scripts/zotero.py search "transformer" --json python3 <plugin-root>/skills/zotero/scripts/zotero.py export-bibtex --out references.bib ``` Insert a citation from Zotero into a draft and keep `references.bib` in sync: ```bash python3 <plugin-root>/skills/zotero/scripts/zotero.py cite --query "Attention Is All You Need" --tex paper.tex --bib references.bib --marker '<cite>' ``` ## Workflow 1. Start with `status --json`. Do not rediscover prefs, ports, or profile paths manually unless the helper fails. 2. If `local_api_enabled_pref` is false, run `enable --restart` when the user asked you to operate Zotero. This updates Zotero's local preference and restarts Zotero so port `23119` comes up. 3. Use read-only local API commands for normal work: - `inventory` for item/collection/tag summaries. - `search <query>` for papers/items. - `export-bibtex` or `sync-bib` for `.bib` files. - `cite` for inserting a citation into a draft. 4. Only retrieve attachment file URLs or full text when the user asks for PDFs, attachment paths, or full-text content. 5. Treat Zotero library writes as explicit write actions. Before `import-bibtex`, `import-ris`, or connector save commands, confirm the exact record/source and destination unless the user's prompt already explicitly asked to add/import it. ## Common commands ```bash # Readiness and route map python3 <plugin-root>/skills/zotero/scripts/zotero.py status --json python3 <plugin-root>/skills/zotero/scripts/zotero.py probe --json # Library inventory python3 <plugin-root>/skills/zotero/scripts/zotero.py inventory python3 <plugin-root>/skills/zotero/scripts/zotero.py collections python3 <plugin-root>/skills/zotero/scripts/zotero.py tags # Search and export python3 <plugin-root>/skills/zotero/scripts/zotero.py search "BERT" python3 <plugin-root>/skills/zotero/scripts/zotero.py export-bibtex --out references.bib python3 <plugin-root>/skills/zotero/scripts/zotero.py export-bibtex --item-key PXW99EKT python3 <plugin-root>/skills/zotero/scripts/zotero.py citations --style apa --json # Draft editing python3 <plugin-root>/skills/zotero/scripts/zotero.py cite --item-key PXW99EKT --tex paper.tex --bib references.bib --marker '<cite>' python3 <plugin-root>/skills/zotero/scripts/zotero.py cite --query "BERT" --markdown notes.md --bib references.bib --marker '<cite>' # Attachments and full text; use only on request python3 <plugin-root>/skills/zotero/scripts/zotero.py children PXW99EKT --json python3 <plugin-root>/skills/zotero/scripts/zotero.py fulltext 2JAZS9U8 --out attention-fulltext.txt python3 <plugin-root>/skills/zotero/scripts/zotero.py file-url 2JAZS9U8 # Writes to Zotero; confirm first unless explicitly requested python3 <plugin-root>/skills/zotero/scripts/zotero.py selected-target --json python3 <plugin-root>/skills/zotero/scripts/zotero.py import-bibtex --file new-reference.bib --yes python3 <plugin-root>/skills/zotero/scripts/zotero.py import-ris --file new-reference.ris --yes ``` ## Output standards - For inventory/search, return title, creators, year, Zotero item key, and BibTeX key when available. - Explain the two-key distinction when relevant: Zotero item keys like `PXW99EKT` are not the same as exported BibTeX keys like `vaswani_attention_2023`. - For `.bib` export, return the absolute output path and entry count. - For draft citation insertion, report the edited file, inserted citation key, and updated `.bib` path. - For blockers, name the exact gate: Zotero app missing, local API disabled, port closed, connector unavailable, no matching item, or write not confirmed. ## Route details Read `references/local-api-routes.md` only when you need endpoint details beyond the helper commands.
More from openai/plugins
- accessibility-and-inclusive-visualizationMake data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.
- agent-browserBrowser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.
- agent-browser-verifyAutomated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass/fail before continuing.
- agents-sdkBuild AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.
- ai-elementsAI Elements component library guidance — pre-built React components for AI interfaces built on shadcn/ui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.
- ai-gatewayVercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.
- ai-generation-persistenceAI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation
- ai-sdkVercel AI SDK expert guidance. Use when building AI-powered features — chat interfaces, text generation, structured output, tool calling, agents, MCP integration, streaming, embeddings, reranking, image generation, or working with any LLM provider.
- aiq-deploy|
- aiq-research|