bibliography rodent 🦫 - a modern scientific extraction pipeline. Chews through papers, powered by open source and Metascience. Originally built for Metacheck with accuracy as a priority.
- Reads PDF, DOCX, JATS XML, HTML, and ePub.
- Extracts metadata, references, full text, tables, figures, and equations into a versioned JSON format, and writes whole corpora as Parquet tables for pandas, polars, DuckDB, or R.
- Includes sentence and page references to help check extractions against the source.
- Works through the CLI, Python, an HTTP API, a web demo, or MCP.
- Lets you choose local or cloud models, limit page ranges, and skip extraction stages.
Alpha: Expect bugs and uneven extraction quality. Current evaluation is strongest for English-language social science papers. See known limitations.
Requires Python 3.11–3.14 and the system prerequisites. Install from PyPI in a project managed by uv:
uv init --python 3.12 paper-extraction
cd paper-extraction
uv add bibr
uv run bibr setup
uv run bibr chew paper.pdf -o result.jsonIn an existing Python environment, you can also install with
python -m pip install bibr and run bibr setup / bibr chew directly.
The setup wizard detects your hardware, configures OCR and the LLM, and offers to install any additional dependencies. Core installs run bibr's trained models through ONNX Runtime; PyTorch, the demo, MCP, and hardware-specific serving runtimes are optional extras. The first run may download models and runtimes. See the tester guide for platform-specific instructions and the source installation guide for development setup.
uv run bibr chew papers/ -o results/ # Process a directory
uv run bibr batch papers/ --out corpus/ # Resumable corpus run, plus Parquet tables
uv run bibr tables results/ --out tables/ # JSON exports → one Parquet file per table
uv run bibr chew paper.pdf --dry-run # Preview the processing plan
uv add 'bibr[demo]' # Add the optional web demo
uv run bibr demo # Open it locallyReferences are parsed locally by default. Use --refs llm to parse them with the
LLM, or --refs off to skip them. More options: CLI reference.
import bibr
result = bibr.chew("paper.pdf")
print(result.title)
references = result.references.df # pandas DataFrame
result.save("result.json")
bibr.write_tables(bibr.chew("papers/"), "tables/") # corpus → Parquet, keyed by paper_idSee the Python guide for batch processing and
reusing loaded models with bibr.Chewer.
bibr uses LLMs selectively for tasks such as front-page metadata, with support
for small models tuned for extraction. You can disable downstream LLM extraction
with --no-llm, which returns structural output; PDF OCR may still use a
vision-language model. The LLM use note covers these choices
and how agentic LLMs helped develop bibr. It is a work in progress.
- Configuration — OCR, LLMs, reference parsing, and presets.
- Deployment — HTTP API (
bibr serve), Docker, hardware, and authentication. - MCP server — extraction tools for agents (
bibr mcp). - JSON schema and pipeline architecture.
- Evaluating extraction quality on papers from your workflow.
If you use bibr in research, please cite the software and report the version you used. Use GitHub's Cite this repository button or the citation metadata to generate a citation. When a Zenodo archive is available for your release, cite its version-specific DOI so readers can identify the exact software used. Otherwise, cite the repository URL together with the version or commit.
Bug reports, test papers, and contributions are welcome. See CONTRIBUTING.md for development setup, tests, and pull requests.
Development began privately in December 2025. This public repository starts with a clean source snapshot for the 0.5.0 launch; the earlier development history remains private. Selected early design documents and their original contributions are preserved in the project history.
Special thanks to Daniël Lakens and Lisa DeBruine (@debruine), for putting faith and patience in the project, and being generous with their time to help make bibr 🦫 better for everyone.
Lisa also contributed to the early paper-structure and metadata design documentation preserved in the project history.
Also, to the whole Metacheck team, and TU Eindhoven.
We are grateful to the open-source projects that bibr builds on:
- PaddleOCR-VL-1.6 (PaddlePaddle) — default OCR recognizer
- GLM-OCR (Z.ai / Tsinghua University) — explicit compatibility backend and fallback
- GROBID — a major source of inspiration for structured scientific document parsing
- LitServe (Lightning AI) — serving infrastructure
- PP-DocLayoutV3 (PaddlePaddle) — document layout analysis
- wtpsplit — sentence segmentation
- Crossref — reference metadata enrichment
AGPL-3.0-or-later.
The export schema documents in docs/schema/ are dedicated to
the public domain under CC0 1.0,
so other tools can adopt the format freely.
