AI-powered PDF annotation for research papers
Project description
PaperFlux
AI-powered PDF annotation for research papers. PaperFlux extracts exact quotations, organizes them by category (contributions, limitations, claims, evidence), and annotates your PDFs with precise highlights. It works with either OpenAI or Anthropic (Claude) models.
Quick Start
1. Installation
Install the latest release from PyPI:
python -m pip install paperflux
For local development from a cloned repository:
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
2. Set API Key
PaperFlux uses OpenAI by default. Set the key for the provider you plan to use:
# OpenAI (default)
export PAPERFLUX_OPENAI_API_KEY="sk-your-key"
# Anthropic (when provider: "anthropic")
export PAPERFLUX_ANTHROPIC_API_KEY="sk-ant-your-key"
Select the backend with the provider key in config.yaml ("openai" or "anthropic").
3. Run
paperflux init
paperflux --config config.yaml path/to/paper.pdf
Features
- Pluggable LLM backend: OpenAI or Anthropic (Claude)
- Batch processing:
*.pdf - Three detail levels (low/medium/high)
- RAG-based extraction with exact quotes
- Color-coded highlights by category
- Markdown summary with sticky note
- Quote-match report with matched/skipped counts and scores
- Layout-aware quote matching across column, table, figure, and caption interruptions
- Stage-level CLI progress during extraction and annotation
- Configurable prompts and colors
Documentation
For detailed setup, configuration options, and advanced usage, see the full documentation.
Contributing
Contributions welcome! Fork the repo, create a feature branch, and open a PR.
License
See LICENSE for details.
Project details
Release history Release notifications | RSS feed
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 paperflux-4.0.20260530.tar.gz.
File metadata
- Download URL: paperflux-4.0.20260530.tar.gz
- Upload date:
- Size: 33.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ba5aa31ff62e78b3583d15a474a7835c1a44581fc004a0061e42effd0051bc7
|
|
| MD5 |
01f5af62eb01e183db01854f20743787
|
|
| BLAKE2b-256 |
0bbd03d8a6c13fc9a8624c55e4bc3b94e5ed9338bd037eefe7151bcac19fccce
|
Provenance
The following attestation bundles were made for paperflux-4.0.20260530.tar.gz:
Publisher:
publish.yml on ehabets/PaperFlux
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
paperflux-4.0.20260530.tar.gz -
Subject digest:
8ba5aa31ff62e78b3583d15a474a7835c1a44581fc004a0061e42effd0051bc7 - Sigstore transparency entry: 1684985818
- Sigstore integration time:
-
Permalink:
ehabets/PaperFlux@89a868dc0aaf87fce6cb427f6a3e7de4f4f7051c -
Branch / Tag:
refs/tags/v4.0.20260530 - Owner: https://github.com/ehabets
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@89a868dc0aaf87fce6cb427f6a3e7de4f4f7051c -
Trigger Event:
release
-
Statement type:
File details
Details for the file paperflux-4.0.20260530-py3-none-any.whl.
File metadata
- Download URL: paperflux-4.0.20260530-py3-none-any.whl
- Upload date:
- Size: 32.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c25b185d5da183615424a2f18263a358adee1388b0c75183e36cae1a32d6f01
|
|
| MD5 |
ea7796739bdbfedf10c4907dafa12bf7
|
|
| BLAKE2b-256 |
f82203b7970e17c57ea83db3752c3f023208017945c40dad23586cfb0666773f
|
Provenance
The following attestation bundles were made for paperflux-4.0.20260530-py3-none-any.whl:
Publisher:
publish.yml on ehabets/PaperFlux
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
paperflux-4.0.20260530-py3-none-any.whl -
Subject digest:
1c25b185d5da183615424a2f18263a358adee1388b0c75183e36cae1a32d6f01 - Sigstore transparency entry: 1684985923
- Sigstore integration time:
-
Permalink:
ehabets/PaperFlux@89a868dc0aaf87fce6cb427f6a3e7de4f4f7051c -
Branch / Tag:
refs/tags/v4.0.20260530 - Owner: https://github.com/ehabets
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@89a868dc0aaf87fce6cb427f6a3e7de4f4f7051c -
Trigger Event:
release
-
Statement type: