Zotero Evidence transforms research papers into structured, traceable evidence datasets with AI-assisted screening, extraction, and synthesis.
Define a Codebook, and Zotero Evidence extracts evidence from your literature into a structured Tableau:
| Study | Population | Intervention | Sample | Outcome |
|---|---|---|---|---|
| Smith 2024 | Adults with T2DM | CBT | 248 | HbA1c |
| Lee 2023 | Older adults | Exercise | 126 | QoL |
Each value remains traceable to its supporting evidence in the original paper.
New: JEV model support — a faster, lighter model pre-screens with confidence scores before you review. See JEV pre-evaluation.
- Import & dedup — import RIS/BibTeX/MEDLINE/PubMed XML; duplicates removed automatically.
- Title/Abstract screening — AI suggests Include/Exclude/Unclear for each paper with reasoning; you confirm.
- JEV pre-evaluation (optional) — a faster model gives a quick, confidence-scored pass before you screen.
- Full-text screening — AI checks each paper against every criterion with highlighted evidence; you confirm.
- Extract coding — AI extracts data into your Codebook, backed by highlighted quotes; you confirm.
- Synthesis — AI groups confirmed evidence into themes with one click.
- Consistency — measure AI-human agreement (
Cohen's ϰ), or sample a batch for two reviewers to co-screen. - Export — PRISMA data, screening log, coding data, synthesis output, and the Codebook itself (CSV).
- Archive & share — export a project as a
.zipto back up or share; restore it anywhere.
- Install the plugin in Zotero 7 or later.
- File → AI Settings → AI Provider Settings… — set endpoint, model, API key, and concurrency.
- File → Evidence Project → New Project…, then File → Import Literature → Import to Sources….
- File → Screening Criteria → define one set of inclusion/exclusion criteria.
- File → Codebook → define variables (or import from CSV) before coding begins.
- Work through
TA-Screen Queue→FT-Screen Queue→Extract Coding. - File → Consistency Calculation → Human-AI Screening Consistency….
- File → Synthesis Analysis → Theme Mining…, then File → Export Data when ready to write up.
- File → Evidence Project → Archive Project… to back up or share a project as a
.zip.
For a second opinion instead of just AI-vs-human:
- File → Consistency Calculation → Human-Human Screening Consistency…, pick a sample size, then save the sampled archive.
- Send that
.zipto two reviewers. Each restores it separately and independently screens every sampled item through TA and FT in their own copy, then exports their own screening log. - Import both reviewers' CSVs back into the dialog —
Cohen's ϰis computed automatically, and you can start another round any time. - Click Apply Agreed Results: items both reviewers agreed on become the project's official result; items they disagreed on stay in
TA-Screen Queue, flagged with a colored tag so they're easy to spot in the items list, with both reviewers' calls shown right in the sidebar for a third reviewer to resolve through the normal screening flow.
Repeat steps 1–4 as many times as you like, and every round's own agreement/ϰ stays listed in the dialog.
An optional AI pre-screening pass over TA-Screen Queue, ahead of (or alongside) your own screening — useful for spotting likely-relevant items early and getting their PDFs ready in advance.
- File → Screening Criteria → JEV Pre-evaluation… — set the JEV endpoint (defaults to aihubmix's
/v1/systemone) and API key, and use Test Connection to confirm it's reachable before running a full batch. - Click Run JEV Pre-evaluation. Each item gets include/exclude/unclear probabilities and a confidence score; re-running only evaluates items that don't already have a result, unless you check "re-evaluate already-completed items." A running batch can be cancelled at any time, and reopening the dialog mid-run picks its progress back up.
- Filter by minimum confidence and/or decision to focus on the items that matter most, then fetch full text for them — one at a time, or in bulk for everything currently in view — via Zotero's own full-text retrieval.
- During Title/Abstract screening, each item's JEV result appears as a clearly labeled reference card. It's informational only: your Include/Exclude/Unclear call is the one that counts.
Built with zotero-plugin-scaffold and zotero-plugin-toolkit.
git clone https://github.com/etShaw-zh/zotero-evidence.git
cd zotero-evidence
cp .env.example .env # set ZOTERO_PLUGIN_ZOTERO_BIN_PATH and a dev profile
npm installnpm start— dev server with hot reloadnpm test— run the test suite inside a real Zotero instancenpm run build— production build (.scaffold/build/)npm run lint:check/npm run lint:fix— Prettier + ESLintnpm run release— bump version and publish
src/
|-- hooks.ts # lifecycle hooks, File-menu dispatch
|-- modules/
| |-- project/ # project + Collection structure
| |-- import/ # Zotero.Translate.Import wrapper
| |-- dedup/ # DOI-first / title+author+year dedup
| |-- screening/ # TA judgment, FT per-criterion checklist, criteria, decisions, JEV pre-evaluation
| |-- consistency/ # Human-AI & human-human screening consistency (Cohen's ϰ)
| |-- coding/ # Codebook + Extract Coding services
| |-- synthesis/ # theme mining over confirmed coding evidence
| |-- pdf/ # text extraction, quote location, highlights
| |-- ai/ # AI provider config, chat completions, usage tracking, JEV client
| |-- export/ # PRISMA / screening log / coding export
| |-- archive/ # project archive export/restore (.zip)
| |-- db/ # SQLite schema and migrations
| `-- ui/ # item-pane sections and dialogs
addon/ # manifest, locales, static content
test/ # Mocha suite, run inside Zotero via `npm test`
Copyright © 2026 Jianjun Xiao. AGPL-3.0-or-later, see LICENSE.