ACTIVE Tools

bibguard — Catching Hallucinated Citations Before Submission

One command verifies every reference in a .bib file against five scholarly databases, catching phantom DOIs, fabricated arXiv IDs, author mismatches and retracted papers. Published to PyPI and npm, with a desktop app and a browser extension.

status ACTIVE
type Tools
started 2026-02-01
stack Python TypeScript Node.js Tauri Crossref OpenAlex

// DESCRIPTION

LLMs hallucinate citations, copy-paste corrupts metadata, and retracted papers slip through review. bibguard catches all three before submission rather than after.

pip install bibguard        # Python
npx bibguard paper.bib      # Node.js, zero install

What it checks

  • Five sources — arXiv, Crossref, DBLP, Semantic Scholar, OpenAlex
  • Phantom ID detection — a well-formed DOI or arXiv ID that does not resolve is itself the hallucination signal
  • Kill-shot logic — a phantom ID cannot be talked out of by a similar-looking search result, which is the failure mode of naive fuzzy matching
  • TeX cross-audit — \cite{key} with no entry, and orphan entries never cited
  • Duplicate detection — near-identical entries under different keys
  • Auto-fix — emits a corrected .bib with missing DOIs and eprint IDs filled in
  • Type-aware — @misc/@online entries do not false-alarm as hallucinated

Shipped as four front ends

A Python CLI (PyPI), an npm package for CI pipelines, a Tauri desktop app with .dmg/.msi/.AppImage builds, and a Chrome/Firefox extension for checking citations while browsing. Core requires only requests and bibtexparser.

It has caught real defects

On the finished CIKM 2026 camera-ready, bibguard found a bibliography entry with a fabricated author list — the first author's surname wrong and five of six co-authors not authors of that paper — plus an uncited duplicate of the same DOI. Both were replaced with Crossref's canonical record. See The Recall Ceiling.

For the heavier semantic stack — NLI entailment and Bayesian scoring across five layers — see IntegriRef, the NLPCC 2026 paper this tool grew out of.

// HIGHLIGHTS

  • Published to PyPI and npm; desktop app and browser extension alongside
  • Cross-checks five scholarly databases in one command
  • Phantom-ID kill-shot logic: a non-resolving well-formed ID cannot be overridden
  • Caught a fabricated author list in a real camera-ready bibliography
  • 200-case validation benchmark; Apache-2.0