bibr
bibliography rodent 🦫 - a modern scientific extraction pipeline.
Description
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.
Get started
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.json
In 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.
Usage
Command line
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 locally
References are parsed locally by default. Use --refs llm to parse them with the
LLM, or --refs off to skip them. More options: CLI reference.
Python
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_id
See the Python guide for batch processing and
reusing loaded models with bibr.Chewer.
LLM use
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.
Documentation
- 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.
Citation
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.
Contributing
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.
Acknowledgments
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 (THUDM, 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
License
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.
