16miku/academic-skill-eval/pyzotero

Claude Code and agent skill by 16miku/academic-skill-eval

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Interact with Zotero reference management libraries using the pyzotero Python client. Retrieve, create, update, and delete items, collections, tags, and attachments via the Zotero Web API v3. Use this skill when working with Zotero libraries programmatically, managing bibliographic references, exporting citations, searching library contents, uploading PDF attachments, or building research automation workflows that integrate with Zotero.

Install

npx vskill@latest install 16miku/academic-skill-eval/pyzotero

SKILL.md

The same SKILL.md was published earlier as leonchaox/qinyan-academic-skills/pyzotero.

Pyzotero

Pyzotero is a Python wrapper for the Zotero API v3. Use it to programmatically manage Zotero libraries: read items and collections, create and update references, upload attachments, manage tags, and export citations.

Authentication Setup

Required credentials — get from https://www.zotero.org/settings/keys:

  • User ID: shown as "Your userID for use in API calls"
  • API Key: create at https://www.zotero.org/settings/keys/new
  • Library ID: for group libraries, the integer after /groups/ in the group URL

Store credentials in environment variables or a .env file:

ZOTERO_LIBRARY_ID=your_user_id
ZOTERO_API_KEY=your_api_key
ZOTERO_LIBRARY_TYPE=user # or "group"

See references/authentication.md for full setup details.

Installation

bash
uv add pyzotero
# or with CLI support:
uv add "pyzotero[cli]"

Quick Start

python
from pyzotero import Zotero
zot = Zotero(library_id='123456', library_type='user', api_key='ABC1234XYZ')
# Retrieve top-level items (returns 100 by default)
items = zot.top(limit=10)
for item in items:
print(item['data']['title'], item['data']['itemType'])
# Search by keyword
results = zot.items(q='machine learning', limit=20)
# Retrieve all items (use everything() for complete results)
all_items = zot.everything(zot.items())

Core Concepts

  • A Zotero instance is bound to a single library (user or group). All methods operate on that library.
  • Item data lives in item['data']. Access fields like item['data']['title'], item['data']['creators'].
  • Pyzotero returns 100 items by default (API default is 25). Use zot.everything(zot.items()) to get all items.
  • Write methods return True on success or raise a ZoteroError.

Reference Files

FileContents
references/authentication.mdCredentials, library types, local mode
references/read-api.mdRetrieving items, collections, tags, groups
references/search-params.mdFiltering, sorting, search parameters
references/write-api.mdCreating, updating, deleting items
references/collections.mdCollection CRUD operations
references/tags.mdTag retrieval and management
references/files-attachments.mdFile retrieval and attachment uploads
references/exports.mdBibTeX, CSL-JSON, bibliography export
references/pagination.mdfollow(), everything(), generators
references/full-text.mdFull-text content indexing and retrieval
references/saved-searches.mdSaved search management
references/cli.mdCommand-line interface usage
references/error-handling.mdErrors and exception handling

Common Patterns

Fetch and modify an item
python
item = zot.item('ITEMKEY')
item['data']['title'] = 'New Title'
zot.update_item(item)
Create an item from a template
python
template = zot.item_template('journalArticle')
template['title'] = 'My Paper'
template['creators'][0] = {'creatorType': 'author', 'firstName': 'Jane', 'lastName': 'Doe'}
zot.create_items([template])
Export as BibTeX
python
zot.add_parameters(format='bibtex')
bibtex = zot.top(limit=50)
# bibtex is a bibtexparser BibDatabase object
print(bibtex.entries)
Local mode (read-only, no API key needed)
python
zot = Zotero(library_id='123456', library_type='user', local=True)
items = zot.items()

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/16miku/academic-skill-eval/pyzotero/badge)](https://verified-skill.com/skills/16miku/academic-skill-eval/pyzotero)

Something wrong with this skill or its page? Tell us.