Skip to content

Highlights

The curated capabilities zotio advertises as its hero features — the same index zotio which "<goal>" resolves natural-language queries against.

Library trust & health

library health

Ranked, CI-gateable health report: citekey conflicts, duplicates, missing metadata, tag drift, broken attachments — with --for presets for citation or systematic-review readiness.

Why it matters — Run this before any bibliography export or screening handoff; gate CI with --fail-on (exit 11) and publish a shields.io badge with --badge.

items duplicates

Detect likely duplicate items by DOI or normalized title, then merge them safely with duplicates resolve — preview-first.

Why it matters — Duplicates corrupt PRISMA counts and double-cite sources; resolve them before they reach a manuscript.

items retract-check

Find retracted papers in your library: checks every DOI-bearing item against Crossref's Retraction Watch data — retractions, expressions of concern, and corrections, with notice DOIs and dates.

Why it matters — Citing a retracted paper is a career-level embarrassment; catch it before a reviewer does (also gates library health via --check-retractions).

collections gaps

Rank the papers your collection cites most that are missing from your library — citation-graph gap analysis via OpenCitations and Semantic Scholar.

Why it matters — A reviewer will ask why you didn't cite the field's most-cited work; find the gap before they do, then import doi it.

tags audit

Find and fix tag drift: groups tags that differ only by case or variant, shows item counts, and generates ready-to-run merge commands.

Why it matters — Use this before any literature review handoff to clean up tag taxonomy; dirty tags produce unreliable filtered exports.

items audit

Count and list items missing PDFs, abstracts, DOIs, or tags — one command for a complete metadata health report.

Why it matters — Use this before a systematic review export to identify items that need metadata enrichment.

items missing-pdf

List journal articles and book chapters that have no attached PDF — your download queue, ready to script.

Why it matters — Use this to batch-generate a download list for Unpaywall or Sci-Hub scripts.

library stats

See your library broken down by item type, publication year, and top journals — a dashboard in one command.

Why it matters — Use this to understand the shape and bias of a library before a systematic review or citation audit.

schema drift

Detect what a Zotero upgrade changed: new or removed item types, fields, and creator fields vs a saved baseline.

Why it matters — Use this after upgrading Zotero to find item types or fields a new version added that your tooling may not model yet.

Safe writes & import

import scan

Reviewable ingest: triage a folder of PDFs against your library (new vs duplicate vs attach-candidate), resolve metadata, then apply schema-valid creates from an editable manifest.

Why it matters — Bulk-import without making a mess — every create is previewed, deduplicated, and schema-validated before it touches your library.

import doi

Turn a DOI, PMID, arXiv ID, or ISBN into a schema-valid Zotero item — one command per identifier (import doi|pmid|arxiv|isbn).

Why it matters — Add a paper from a citation you found without opening a browser or hand-typing metadata.

items enrich

Fill missing DOIs, abstracts, and open-access PDF links from CrossRef, OpenAlex, Semantic Scholar, and Unpaywall — preview-first, with provenance appended to each item.

Why it matters — Turn the audit's missing-metadata queue into applied fixes; --validate cross-checks stored DOIs read-only.

items preprint-check

Find arXiv preprints that have since been published in a journal (via CrossRef) — and upgrade them with the published DOI using preprint-check fix, preview-first.

Why it matters — Citing a preprint when a journal version exists undermines a bibliography; this catches and fixes it in one pass.

journal undo

Every applied write is journaled; journal undo <run-id> reverses reversible runs (tag renames, collection moves) and loudly refuses the rest.

Why it matters — Batch writes are only safe when you can see what ran and take it back; this is the take-it-back.

Agent & automation surface

items summarize

Assemble a bounded, synthesis-ready context bundle for an item or collection — citation, abstract, your annotations, a capped fulltext excerpt — without ever calling a model.

Why it matters — Hand an LLM exactly the high-signal context it needs for a literature synthesis, bounded and provenance-tagged.

export snapshot

Reproducible, resumable full-library export (JSONL) with a lockfile recording each item's key, version, and content hash.

Why it matters — Prove what changed between two review handoffs by diffing lockfiles instead of eyeballing exports.

watch

Keep the local store fresh with periodic incremental syncs (--interval, --once); --health diffs library health between cycles and reports new findings to stdout or a webhook.

Why it matters — Run it in the background so agents and scripts never read stale data — and hear about new problems the cycle they appear.

workflow run

Run a declarative multi-step workflow spec (JSON) in-process, with per-step status and continue-on-error control.

Why it matters — Chain sync → audit → export into one reviewable spec instead of a brittle shell script.

vault sync

Two-way Obsidian/Logseq vault sync: one Markdown note per item, managed blocks that never clobber your prose, conflict-safe write-back via push/pull/resolve.

Why it matters — Keep a PKM vault and Zotero in lockstep without losing hand-written notes on either side.

init

Guided first run: detect Zotero, enable the local API, set the Web API key, first sync, and a quick health check — one command from install to working setup.

Why it matters — From install to a synced, health-checked library in under a minute; idempotent, and agent-safe under --no-input.

demo

Zero-setup trial: seed a bundled sample library (34 classic papers, one genuinely retracted) into a sandbox and try every local command with ZOTIO_DEMO=1 — no Zotero, no API key.

Why it matters — Evaluate zotio in 30 seconds before pointing it at a real library; the sandbox never touches your real store or credentials.

Export & citations

collections export

Export an entire collection and all its subcollections as a single BibTeX or CSL-JSON file, preserving structure in comments.

Why it matters — Use this to hand a complete literature snapshot to LaTeX or to another researcher without losing the organizational hierarchy.

items citekey-conflicts

Find items without a Better BibTeX citation key or with duplicate keys — prevent LaTeX compilation failures before they happen.

Why it matters — Use this before exporting BibTeX for a LaTeX manuscript to catch key conflicts that cause \cite{} failures.

items bibcheck

Check a manuscript (.tex or pandoc Markdown) against your library: every \cite and @citekey resolved, unknown and ambiguous keys flagged.

Why it matters — Run it before submission — unknown citekeys are LaTeX build failures waiting to happen; gate CI with --fail-on-unknown (exit 11).

Reading workflow

reading-list

Surface your oldest unread papers sorted by date added — your reading backlog, oldest-first, with abstract preview.

Why it matters — Use this to fetch the next paper an agent should fetch fulltext for, or to triage a reading session.

annotations export

Export all highlights and notes from a collection or tag set as a single markdown or JSON file, one section per paper.

Why it matters — Use this to pull a week of reading annotations into a markdown document for synthesis or AI summarization.

annotations timeline

See your annotations ordered by date — find what you were reading and highlighting in any time window.

Why it matters — Use this to extract a week's reading highlights for synthesis or to reconstruct a research trail.

items note-template

Generate a pre-filled markdown reading note (frontmatter + abstract + empty Annotations section) for any item — paste into Obsidian or Logseq.

Why it matters — Use this to initialize a reading note in a PKM system without manually copying fields from the Zotero UI.

items open

Jump from CLI search results directly to the item in the Zotero desktop app.

Why it matters — Use this after finding an item via CLI search to open it for reading without leaving the terminal flow.

library wrapped

Your Zotero year in review — items added by month and type, top venues and authors, annotation activity, PDF coverage — with a shareable SVG card (--card).

Why it matters — The fun one: see (and share) what your reading year actually looked like, straight from the local store.