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.
- 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 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")
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.
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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bibr-0.5.1.tar.gz.
File metadata
- Download URL: bibr-0.5.1.tar.gz
- Upload date:
- Size: 976.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04eafeaaee17da1286a6575755d526e44ed9854e8bc99068e9f103365abd8e2d
|
|
| MD5 |
230e1009598fec6410b04b1f223f05d5
|
|
| BLAKE2b-256 |
93cfaaf25f4164fb07e670bd003ef6dc22598c0688f7cf34c1ddbd62db3a904c
|
Provenance
The following attestation bundles were made for bibr-0.5.1.tar.gz:
Publisher:
release.yml on scienceverse/bibr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bibr-0.5.1.tar.gz -
Subject digest:
04eafeaaee17da1286a6575755d526e44ed9854e8bc99068e9f103365abd8e2d - Sigstore transparency entry: 2809324715
- Sigstore integration time:
-
Permalink:
scienceverse/bibr@0022587f2c902e2e60452133a9881f45c6f5d88d -
Branch / Tag:
refs/tags/v0.5.1 - Owner: https://github.com/scienceverse
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0022587f2c902e2e60452133a9881f45c6f5d88d -
Trigger Event:
push
-
Statement type:
File details
Details for the file bibr-0.5.1-py3-none-any.whl.
File metadata
- Download URL: bibr-0.5.1-py3-none-any.whl
- Upload date:
- Size: 1.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67b4e812c8a6063e86bd0df34bc523b9a95bae465b5ba6bbddec117d6fe541f7
|
|
| MD5 |
0b456388cadf8de1b2ce80de7a53a87f
|
|
| BLAKE2b-256 |
27d5b3358d88b57ba3236dfd4eb832e69091c9795c03a75f94250e3f3ec6d93e
|
Provenance
The following attestation bundles were made for bibr-0.5.1-py3-none-any.whl:
Publisher:
release.yml on scienceverse/bibr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bibr-0.5.1-py3-none-any.whl -
Subject digest:
67b4e812c8a6063e86bd0df34bc523b9a95bae465b5ba6bbddec117d6fe541f7 - Sigstore transparency entry: 2809324780
- Sigstore integration time:
-
Permalink:
scienceverse/bibr@0022587f2c902e2e60452133a9881f45c6f5d88d -
Branch / Tag:
refs/tags/v0.5.1 - Owner: https://github.com/scienceverse
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0022587f2c902e2e60452133a9881f45c6f5d88d -
Trigger Event:
push
-
Statement type: