Research zotero
Sync, inspect, and export Zotero user or group libraries for literature-heavy research workflows. Use when Codex needs to reuse a Zotero library or collection as a curated paper corpus, export BibTeX or CSL-JSON, inspect collections/tags/groups, prepare citation artifacts for paper planning, or seed literature review and novelty review from an existing Zotero library. Default to the current user's library when an API key is available and no explicit library is provided.From its SKILL.md
npx -y skills add kenantang/codex-and-claude-skills --skill research-zoteroAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.0 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Research Zotero
Quick start
- Use
scripts/inspect_zotero_account.pyfirst when you need to confirm which library the current API key can see. - If no library is specified, default to the current user's library resolved from the provided API key or
$ZOTERO_API_KEY. - Use
scripts/fetch_zotero_items.pyto sync a library, collection, or tag/query slice into normalized JSON. - Use
scripts/export_zotero_items.pywhen a downstream skill needs BibTeX, CSL-JSON, RIS, or raw exported item payloads. - In orchestrated mode, prefer
./zotero/as the canonical stage root and record actual paths inartifact-index.md.
Modes
Inspect mode
- Use this when the user wants to know what the current API key can access.
- Resolve the default user library through
/keys/current. - Inspect accessible groups when group libraries might matter.
Sync mode
- Use this when another research skill needs a curated Zotero corpus as structured JSON.
- Sync a whole library or narrow to:
- collection
- tags
- query
- item type
- Write normalized artifacts that downstream skills can consume without calling Zotero again.
Export mode
- Use this when another skill or external tool needs citation exports rather than raw Zotero item JSON.
- Export:
bibtexcsljsonris- raw
json
Input contract
- Minimum:
- Zotero API access via
--api-keyor$ZOTERO_API_KEY, or Zotero MCP access when available
- Zotero API access via
- Optional:
library_type:userorgrouplibrary_idcollection_keytagsqueryitem_type- export format
- output directory or file paths
Default-library rule
- If no explicit
userorgrouplibrary is provided and an API key is available, resolve the current key via/keys/currentand use that user library by default. - Do not ask the user for a library ID if the API key already resolves it.
- If the key lacks the necessary library access, stop and report the permission gap explicitly.
Output contract
- Canonical orchestrated directory:
./zotero/ - Primary sync artifacts:
zotero-account.jsonzotero-items.jsonzotero-sync.md
- Optional support artifacts:
zotero-groups.jsonlibrary-export.biblibrary-export.csl.jsonlibrary-export.ris
zotero-items.jsonshould preserve:- library type and ID
- collection key if used
- tags/query/item type filters
- item count
- original Zotero item payloads
- Record output paths in
artifact-index.mdwhen used inside an orchestrated pack.
Workflow
1) Resolve access first
- Use
scripts/inspect_zotero_account.py. - Confirm:
- default user library
- accessible groups
- whether the key can read the relevant library
2) Choose the narrowest useful library scope
- Default to the current user's library when the task is broad and no narrower source is specified.
- Prefer a collection, tags, or query when:
- the full library is too broad
- the task is for one domain or project
- a downstream skill needs a focused corpus
3) Sync normalized item JSON
- Use
scripts/fetch_zotero_items.py. - If no library is specified, let the script resolve the default user library from the key.
- Preserve the raw Zotero item payloads rather than flattening away useful metadata too early.
- When helpful, write
zotero-sync.mdalongside the JSON output.
4) Export citation formats only when needed
- Use
scripts/export_zotero_items.pywhen the task specifically needs:- BibTeX for LaTeX
- CSL-JSON for citation tooling
- RIS for external import
- Avoid exporting citation formats as the only artifact if downstream research skills still need full item metadata.
5) Hand off to sibling skills
research-systematic-literature-review:- consume
zotero-items.jsonas a curated discovery/citation-validation source
- consume
research-novelty-review:- use Zotero collections or tags to seed strongest-overlap searches
research-paper-plan:- use exported BibTeX or CSL-JSON plus item metadata for citation planning
research-rebuttal:- use the synced library to pull cited sources or related prior art quickly
References
references/zotero-integration.mdreferences/zotero-artifact-contract.md
Scripts
scripts/inspect_zotero_account.py: resolve the default library and accessible groups for the current API keyscripts/fetch_zotero_items.py: sync Zotero items into normalized JSON, defaulting to the current user's library when possiblescripts/export_zotero_items.py: export library items in BibTeX, CSL-JSON, RIS, or JSON formats
What ships with it: 7 files
15.3 KB alongside SKILL.md, 4 of them executable
agents/
- openai.yaml295 B
references/
scripts/
- export_zotero_items.pyruns3.8 KB
- fetch_zotero_items.pyruns3.7 KB
- inspect_zotero_account.pyruns1.2 KB
- _zotero.pyruns3.4 KB