ref-downloader
Use when the user asks to batch-download academic PDFs with ref-downloader — either ALL references of one paper (Mode A: DOI or PDF input), OR a custom batch of papers (Mode B: DOI/title/arXiv-PMID list, or abstract query like "Author X's recent papers"). Not for one-off PDFs, paper search, or Zotero import.
npx skills add ltczding-gif/ref-downloader --skill ref-downloader --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# Ref Downloader — Agent Runbook > Slim entry for agent mode. The full 8-step manual runbook with code > snippets for Mode A debug + `PUBLISHER_MAP` extension procedure > lives in [references/agent-runbook.md](references/agent-runbook.md). > Human users see [../../README.md](../../README.md). `<SKILL_DIR>` = this folder (`skills/ref-downloader` in the source repo, or wherever the user copied this skill — e.g. `~/.claude/skills/ref-downloader/`). Python scripts live in `<SKILL_DIR>/scripts/`; config files (`config.example.toml`, `config.local.toml`) live at `<SKILL_DIR>/`. ## Mode router This skill handles two flows. **Pick before running.** - **Mode A — Reference-list download** (original use case). User provides ONE paper (DOI or local PDF) and wants "all of its references". Pipeline: `extract_refs.py` → `validate_refs.py` → `download_refs.py`. - **Mode B — Custom batch download**. User provides their own batch of papers — DOIs, paper titles, non-DOI identifiers (arXiv / PMID / Semantic Scholar IDs), OR an abstract query ("Smith 在 Google Scholar 上的文章" / "Nature Energy 2023 papers"). The agent resolves whatever was given to DOIs, then runs `validate_refs.py` → `download_refs.py` di
- Mode router
- Trigger family
- Mode A — Reference-list download
- When to invoke
- Primary entry
- Pre-flight checklist (confirm before running)
- Mode B — Custom batch download
- Step 0 — Canonicalize input (always runs first)
- B.0 — Normalize non-DOI identifiers
- B.1 — DOI extraction
- B.2 — Title → DOI lookup
- B.3 — Discovery from abstract description
- Mode B flow (after sub-flow resolution)
- Mode B pre-flight checklist
python "<SKILL_DIR>/scripts/run_ref_downloader.py" <DOI_OR_PDF_PATH> cd <OUTPUT_DIR> python <SKILL_DIR>/scripts/validate_refs.py <project_name> python <SKILL_DIR>/scripts/download_refs.py <project_name> [--auto] [--fail-fast] cd "<SKILL_DIR>" pip install playwright pymupdf playwright install msedge # downloads Edge driver cp config.example.toml config.local.toml # then user edits [crossref].mailto python <SKILL_DIR>/scripts/extract_refs.py <DOI> # → refs_raw.json python <SKILL_DIR>/scripts/validate_refs.py <PROJECT> # → refs_validated.json
What does the ref-downloader skill do?
Use when the user asks to batch-download academic PDFs with ref-downloader — either ALL references of one paper (Mode A: DOI or PDF input), OR a custom batch of papers (Mode B: DOI/title/arXiv-PMID list, or abstract query like "Author X's recent papers"). Not for one-off PDFs, paper search, or Zotero import.
How do I install it?
Run `npx skills add ltczding-gif/ref-downloader --skill ref-downloader --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From ltczding-gif/ref-downloader, a repository with 134 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
