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.

library prisma

PRISMA 2020 identification-stage counts for a screening corpus: records identified (per source database), duplicate records removed, records after deduplication — scoped to a collection or tag.

Why it matters — Arrive at Rayyan or ASReview with certified counts for the PRISMA 2020 flow diagram.

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.

Search synced metadata, or use --fulltext to resolve matching PDF text to parent papers with attachment keys and snippets.

Why it matters — Find the paper that contains a passage without opening each PDF or accepting an opaque attachment hit.

library stats

See item types, publication years, top journals, PDF coverage, and item intake grouped by month or year.

Why it matters — Use this to understand the shape, bias, and growth 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 find

Resolve a DOI, ISBN, PMID, arXiv ID, citation key, URL, OpenAlex work ID, or exact title against the local mirror.

Why it matters — Check whether a paper already exists before an import creates a duplicate.

items enrich

Fill missing DOIs and abstracts from CrossRef, OpenAlex, or Semantic Scholar; fill missing citation fields from CrossRef; and attach open-access PDFs from Unpaywall — preview-first, with provenance.

Why it matters — Turn audit findings into applied fixes; --validate reports CrossRef citation discrepancies and OpenCitations DOI registration failures without writing.

attachments add

Attach a local PDF (or any file) to an existing item as a synced stored attachment via the Zotero Web API upload protocol — preview-first and retry-safe (an identical retry no-ops instead of duplicating).

Why it matters — Close the missing-PDF loop: a file you already hold becomes a proper synced attachment without touching the desktop client.

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.

items similar

Rank locally similar papers with explainable signals: shared collections, tags, creators, publication venue, and rare-word fulltext overlap — no embeddings or network calls.

Why it matters — Find nearby papers for literature synthesis from the synced mirror, with human-readable reasons for every recommendation.

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.