Rebiber

August 10, 2026 · View on GitHub

Replace unofficial / arXiv BibTeX entries with official DBLP or ACL Anthology records. Cite keys are kept.

Web demo · Colab

Install from GitHub only. We do not publish or support PyPI (pip install rebiber is a 2021 1.1.3 release).

Install

uv tool install git+https://github.com/yuchenlin/rebiber
# or
pip install "rebiber @ git+https://github.com/yuchenlin/rebiber"

Develop from a checkout:

git clone https://github.com/yuchenlin/rebiber.git && cd rebiber
uv sync --extra dev          # or: pip install -e ".[dev]"
uv run pytest

Usage

Omitting -o overwrites each -i file. Start with --dry-run.

rebiber -i refs.bib --dry-run
rebiber -i refs.bib --dry-run --report changes.txt
rebiber -i refs.bib -o refs.official.bib
rebiber -i refs.bib --used-in paper.tex appendix.tex
rebiber -i refs.bib --live-lookup          # opt-in DBLP search after a local miss
rebiber -i *.bib -o ./normalized/
rebiber -i refs.bib --format-only -o pretty.bib
rebiber -i refs.bib --keep author,title,booktitle,journal,year,volume,number,pages,doi --protect-titles

Examples: examples/input.bibexamples/output.bib.

FlagDefaultMeaning
-irequiredOne or more .bib files
-oin placeOutput file, or a directory if -i has multiple files
--dry-runoffPrint the change report; do not write .bib
--report PATHAlso write the change report to a file
--used-in TEX …all keysOnly replace keys cited in these files (\cite / \citep / \citet / \citealp / \citeyear / \nocite). Unused keys are still pretty-printed and still affected by -r / -s / -st / -d
--live-lookupoffOn a local miss, search DBLP by title (max 5 hits). Same author/title guards. Respect DBLP rate limits
--keep FIELDSkeep allAllowlist of fields (ID / ENTRYTYPE always kept)
--protect-titlesoffBrace acronyms in titles (BERT, GPT-2, …)
--format-onlyoffPretty-print only; no DB / DBLP / arXiv rewrite
--no-check-authorsoffSkip last-name overlap (empty authors still do not match)
-rnoneDrop fields, e.g. -r url,biburl,timestamp
-s TrueFalseShorten venues via rebiber/abbr.tsv
-d FalseTrueKeep duplicate cite keys
-st TrueFalseSort entries by cite key
-l / -apackagedCustom bib_list.txt / abbr.tsv
-uRefresh packaged dumps from GitHub main
-vPrint version

Leftover unofficial arXiv entries may still query the arXiv API for year / primaryClass. Use --format-only for a fully offline run.

Matching

  • Authors. A title hit converts only if the first-author last names match or at least two last names overlap. Empty/missing authors never match (including with --no-check-authors). Trailing et al. / et.al. / and others are stripped.
  • Titles. Digit-preserving key first (16x1632x32), then the letters-only key used by older dumps.
  • Live DBLP. Prefers a published (non-arXiv/CoRR) hit; skips if several published hits remain. Digit keys must agree.
  • eprint. If the input has an arXiv id and the official record does not, it is copied onto the replacement (local dump and live).
  • ArXiv form. Unofficial preprints become @misc with eprint / archivePrefix / primaryClass. Already-published papers are not rewritten because an abstract mentions arXiv.
  • Broken entries. Unparsed or unclosed records are kept, not dropped.

Build a dump JSON:

uv run python -m rebiber.bib2json -i path/to/conf.bib -o path/to/conf.json

Example

@article{lin2020birds,
  title={Birds have four legs?! NumerSense: Probing Numerical Commonsense Knowledge of Pre-trained Language Models},
  author={Lin, Bill Yuchen and Lee, Seyeon and Khanna, Rahul and Ren, Xiang},
  journal={arXiv preprint arXiv:2005.00683},
  year={2020}
}

becomes the official EMNLP 2020 @inproceedings (same cite key), with anthology URL and DOI.

Supported venues

Toggle files in rebiber/bib_list.txt. ACL Anthology includes *CL main conferences and workshops. Other dumps are main tracks only (no CVPR/ICCV workshops).

A monthly Action opens a PR with fresh DBLP + anthology data. Years below are what is in this repo, not “whatever DBLP has tomorrow.”

Kept current (monthly job + recent dumps)

VenueYears
ACL Anthologycurrent (split acl_1/2/3.json)
AAAI2010–2026
ACCV2022, 2024
AISTATS2013–2025
BMVC2010–2024
CHI2010–2026
CVPR2000–2025
ECCV2022, 2024
ICASSP2015–2025
ICCVodd years 2003–2025
ICLR2013–2025
ICML2000–2025
IJCAI2011, 2013, 2015–2025
INTERSPEECH2016–2025
KDD2010–2026
ICRA / IROS2020–2025 (main)
RSS / CoRL2020–2024 (main)
JMLR2020–2026
TMLR2022–2026
WACV2022–2026
MLSys2019–2025
MICCAI2022–2025 (main)
NeurIPS2000–2025
SIGIR2010–2026
UAI2010–2025
WWW2001–2026

Not in the index: COLM (empty DBLP toc). ICLR/ICML/CVPR 2026, RSS/CoRL 2025, ECCV 2026 — not on DBLP yet.

Historical (frozen ~2020): ALENEX, ASONAM, BigData, CIDR, CIKM, COLT, MM, RecSys, SDM, SIGMOD (through 2022; later years are PACMMOD), SODA, STOC, WSDM.

Thanks to Anton Tsitsulin for the original dump collection.

Adding a venue

uv run python -m rebiber.download_dblp --confs iclr --start-year 2026

That writes rebiber/data/{conf}{year}.bib.json and appends bib_list.txt when needed. PRs welcome.

Star history

In-repo SVGs, refreshed weekly from the GitHub API (no third-party token).

All-time stars

2026 year-to-date

Contact

billyuchenlin@gmail.com · i@yuchenlin.xyz · GitHub issues