Skip to main content
Ctrl K

bibr

bibliography rodent 🦫 - a modern scientific extraction pipeline.

32 commitsLast commit ≈ 4 days ago2 stars0 forks

Description

bibr 🦫 — bibr chew paper.pdf | bibr.org

PyPI version Docs License: AGPL v3 Made in Europe Lifecycle: experimental codecov

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

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.

Keywords
No keywords available
Programming language
  • Python 100%
License
</>Source code

Related projects

no image

Research Transparency Check

Updated 1 hour ago
In progress