zotero-merge-prep

Consolidates duplicate Zotero records by unioning metadata and normalizing item types before merging.

1|Updated Jul 13, 2026
One-click install
npx skills add https://github.com/thurlow-research/ResearchClaudeCodeSkills --skill zotero-merge-prep-thurlow-research
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: zotero-merge-prep
Source: https://github.com/thurlow-research/ResearchClaudeCodeSkills/tree/main/desktop/skills/zotero-merge-prep
Command: npx skills add https://github.com/thurlow-research/ResearchClaudeCodeSkills --skill zotero-merge-prep-thurlow-research

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Zotero's native "Merge Items" keeps only the master record's field values, silently dropping authors, DOIs, abstracts, and URLs that existed only on duplicate copies, and it only detects duplicates of the same item type — so a preprint and its published journal version are never grouped. This Skill prepares duplicates beforehand so the merge loses nothing. ## Core Features & Use Cases - Duplicate Detection: Find candidate duplicates by title search, shared DOI/arXiv ID, or scan an entire collection with union-find clustering that catches truncated or mangled titles. - Metadata Union: Merge the best value per field across all copies — longest author list, longest abstract, non-arXiv DOI, publisher URL, venue, and date — with optional gap-filling from OpenAlex. - Item Type Normalization: Convert all copies to the type of the most-complete record (journalArticle > conferencePaper > bookSection > preprint), tagging orig-type:/orig-date: for lineage so Zotero can group them. - Use Case: After importing papers via browser extensions, run a collection scan to cluster duplicates, preview consolidation with --dry-run, then commit so Zotero's Duplicate Items merge drops nothing. ## Quick Start Ask Claude to find and consolidate the duplicate records for a paper title in your Zotero library, previewing with a dry run before committing the metadata union and type normalization.

Frequently Asked Questions about zotero-merge-prep

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I merge duplicate items in Zotero without losing metadata?

Run the prep command on the duplicate title or item keys before using Zotero's Merge Items. The script unions authors, abstracts, DOIs, URLs, venues, and dates across all copies and normalizes item types, so Zotero's master-only merge drops nothing.

Why doesn't Zotero detect my preprint and journal article as duplicates?

Zotero only groups duplicates of the same item type, so a preprint and its published version never appear together. This Skill normalizes all copies to one item type, tagging orig-type and orig-date, making them mergeable.

How do I find all duplicates in a Zotero collection at once?

Use the scan command with the collection key. It clusters items by shared DOI or arXiv ID, or by fuzzy title matching with a 60% substring guardrail, and can prep every group in one pass with the --prep flag.

Does this Zotero dedupe tool delete or overwrite my records?

No deletions occur. The script only fills fields and changes item types, preserving originals via orig-type and orig-date tags plus the Extra field. The actual merge remains a manual action in the Zotero client, and dry-run is the default mode.

What API keys are required for Zotero merge preparation?

A Zotero write API key, library ID, and library type (group or user) are required since records are edited. OpenAlex credentials are optional and only used to gap-fill missing abstracts, DOIs, venues, and authors.

What happens when duplicate titles are too different to auto-match?

When titles differ due to OCR errors, capitalization, or variants, pass explicit item keys with the --keys flag to skip title search. A same-work confidence below 0.85 blocks prep unless overridden with --force or --keys.