Update to Zotero
Snapshot Oct 2, 2026 · 00:05 UTC · version 0.1.2
Collection source: downloaded plugin package. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.
Supporting file metadata differs
Newly listed paths: agents/openai.yaml. This compares saved file lists, not package contents; a different collection source can change the list.
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Supporting files
[{"relative_path":"assets/icon.png","size_in_bytes":9908},{"relative_path":"references/local-api-routes.md","size_in_bytes":1872},{"relative_path":"scripts/zotero.py","size_in_bytes":29806}]
[{"relative_path":"agents/openai.yaml","size_in_bytes":266},{"relative_path":"assets/icon.png","size_in_bytes":9908},{"relative_path":"references/local-api-routes.md","size_in_bytes":1872},{"relative_path":"scripts/zotero.py","size_in_by...
Compare saved observations
Download comparison JSONFull technical diff · 1 changed fields
changed /included_files
[
{
"relative_path": "assets/icon.png",
"size_in_bytes": 9908
},
{
"relative_path": "references/local-api-routes.md",
"size_in_bytes": 1872
},
{
"relative_path": "scripts/zotero.py",
"size_in_bytes": 29806
}
][
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 266
},
{
"relative_path": "assets/icon.png",
"size_in_bytes": 9908
},
{
"relative_path": "references/local-api-routes.md",
"size_in_bytes": 1872
},
{
"relative_path": "scripts/zotero.py",
"size_in_bytes": 29806
}
]Full snapshot data
{
"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.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 266
},
{
"relative_path": "assets/icon.png",
"size_in_bytes": 9908
},
{
"relative_path": "references/local-api-routes.md",
"size_in_bytes": 1872
},
{
"relative_path": "scripts/zotero.py",
"size_in_bytes": 29806
}
],
"name": "Zotero",
"skill_md_contents": "---\nname: Zotero\ndescription: 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.\n---\n\n# Zotero\n\nUse this skill to operate a user's local Zotero Desktop library from Codex.\n\nCore helper:\n\n```bash\npython3 <plugin-root>/skills/zotero/scripts/zotero.py <command>\n```\n\nResolve `<plugin-root>` by going two directories up from this `SKILL.md` file.\n\nThe 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.\n\n## Fast starts\n\nCheck readiness in one command:\n\n```bash\npython3 <plugin-root>/skills/zotero/scripts/zotero.py status --json\n```\n\nEnable the local API and restart Zotero if needed:\n\n```bash\npython3 <plugin-root>/skills/zotero/scripts/zotero.py enable --restart\n```\n\nSearch and export citation data:\n\n```bash\npython3 <plugin-root>/skills/zotero/scripts/zotero.py search \"transformer\" --json\npython3 <plugin-root>/skills/zotero/scripts/zotero.py export-bibtex --out references.bib\n```\n\nInsert a citation from Zotero into a draft and keep `references.bib` in sync:\n\n```bash\npython3 <plugin-root>/skills/zotero/scripts/zotero.py cite --query \"Attention Is All You Need\" --tex paper.tex --bib references.bib --marker '<cite>'\n```\n\n## Workflow\n\n1. Start with `status --json`. Do not rediscover prefs, ports, or profile paths manually unless the helper fails.\n2. 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.\n3. Use read-only local API commands for normal work:\n - `inventory` for item/collection/tag summaries.\n - `search <query>` for papers/items.\n - `export-bibtex` or `sync-bib` for `.bib` files.\n - `cite` for inserting a citation into a draft.\n4. Only retrieve attachment file URLs or full text when the user asks for PDFs, attachment paths, or full-text content.\n5. 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.\n\n## Common commands\n\n```bash\n# Readiness and route map\npython3 <plugin-root>/skills/zotero/scripts/zotero.py status --json\npython3 <plugin-root>/skills/zotero/scripts/zotero.py probe --json\n\n# Library inventory\npython3 <plugin-root>/skills/zotero/scripts/zotero.py inventory\npython3 <plugin-root>/skills/zotero/scripts/zotero.py collections\npython3 <plugin-root>/skills/zotero/scripts/zotero.py tags\n\n# Search and export\npython3 <plugin-root>/skills/zotero/scripts/zotero.py search \"BERT\"\npython3 <plugin-root>/skills/zotero/scripts/zotero.py export-bibtex --out references.bib\npython3 <plugin-root>/skills/zotero/scripts/zotero.py export-bibtex --item-key PXW99EKT\npython3 <plugin-root>/skills/zotero/scripts/zotero.py citations --style apa --json\n\n# Draft editing\npython3 <plugin-root>/skills/zotero/scripts/zotero.py cite --item-key PXW99EKT --tex paper.tex --bib references.bib --marker '<cite>'\npython3 <plugin-root>/skills/zotero/scripts/zotero.py cite --query \"BERT\" --markdown notes.md --bib references.bib --marker '<cite>'\n\n# Attachments and full text; use only on request\npython3 <plugin-root>/skills/zotero/scripts/zotero.py children PXW99EKT --json\npython3 <plugin-root>/skills/zotero/scripts/zotero.py fulltext 2JAZS9U8 --out attention-fulltext.txt\npython3 <plugin-root>/skills/zotero/scripts/zotero.py file-url 2JAZS9U8\n\n# Writes to Zotero; confirm first unless explicitly requested\npython3 <plugin-root>/skills/zotero/scripts/zotero.py selected-target --json\npython3 <plugin-root>/skills/zotero/scripts/zotero.py import-bibtex --file new-reference.bib --yes\npython3 <plugin-root>/skills/zotero/scripts/zotero.py import-ris --file new-reference.ris --yes\n```\n\n## Output standards\n\n- For inventory/search, return title, creators, year, Zotero item key, and BibTeX key when available.\n- Explain the two-key distinction when relevant: Zotero item keys like `PXW99EKT` are not the same as exported BibTeX keys like `vaswani_attention_2023`.\n- For `.bib` export, return the absolute output path and entry count.\n- For draft citation insertion, report the edited file, inserted citation key, and updated `.bib` path.\n- For blockers, name the exact gate: Zotero app missing, local API disabled, port closed, connector unavailable, no matching item, or write not confirmed.\n\n## Route details\n\nRead `references/local-api-routes.md` only when you need endpoint details beyond the helper commands.\n"
}SHA-256 of public snapshot: 2b79073a5b06cb0cddbf60b0c532aeca045a1d7ea98f2a13c7d2b79ed6a94a0a