Skip to the content.

PaperFlux

PaperFlux helps you read scientific papers faster by automatically extracting exact quotations, organizing them by category (e.g., contributions, limitations, claims, evidence), and annotating your PDFs with precise highlights. It also produces a concise, structured summary you can share or extend. The current version requires an OpenAI API key.

The Idea

Features

Getting Started

1. Installation

Quick start (local):

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .

2. Configure the API Key

PaperFlux requires an OpenAI API key. The key is read from an environment variable referenced in config.yaml:

Choose one of the following setups:

3. Usage

Run the CLI:

python -m src.cli --config config.yaml path/to/your.pdf
# or reuse prior quotes without extraction
python -m src.cli --config config.yaml --quotes-file your_paper_quotes.json path/to/your.pdf

Options

Customizing Prompts

PaperFlux uses three editable Jinja2 templates in the prompts/ directory to control how the AI extracts and summarizes information:

rag_category_system_prompt.txt

The system prompt that instructs the AI assistant on its role and behavior. It defines the extraction rules:

This is the “personality” of the extraction assistant.

rag_category_prompt.j2

The user prompt template for category extraction. It:

Edit config.yaml (under extraction_categories) to change what categories are extracted. Edit this template to modify the output structure or instructions.

rag_summary_prompt.j2

The prompt template for generating the final Markdown summary. It:

Edit this to change how the final summary is structured or what information it emphasizes.

All three templates can be customized without modifying any Python code—just edit the files in prompts/ and rerun PaperFlux.

Brief History

Contributing

Contributions are very welcome! Whether you’re fixing a bug, improving extraction accuracy, or adding a new workflow, here’s how to get started:

  1. Fork the repository and create a feature branch.
  2. Set up the project and run tests locally.
  3. Open a PR describing the change and its impact.

Issues, ideas, or questions? Please open an issue or start a discussion—feedback helps shape the roadmap.


For more information about configuration options and advanced features, see config.yaml in the repository.