Skip to main content

Multi-agent LLM tool for critically reading biomedical and pharmacology research papers

Project description

paperlab

English | Русский


English

paperlab is an open-source multi-agent LLM tool for critically reading biomedical and pharmacology research papers. Local by default, provider-agnostic, built for students and researchers.

What it does

You give paperlab a PDF of a research paper. Four AI agents read it in parallel:

  • Summarizer — what the paper actually claims
  • Methodologist — study design, CONSORT/PRISMA/STROBE compliance, reproducibility
  • Critic — statistical weaknesses, p-hacking, cherry-picking, conflicts of interest
  • Contextualizer — where this fits in the field, related work

You get a structured report in Markdown or JSON. Two modes:

  • rigorous — strict peer-review style critique for postgrads and researchers
  • learning — gentle explanation for undergraduates reading their first papers

Two output languages: English or Russian.

Install

Requires Python 3.11 or 3.12. Python 3.14 is not yet supported (some transitive dependencies do not build on 3.14).

pipx install --python python3.12 paperlab
paperlab init

Alternative — install with pip inside a project venv:

python3.12 -m venv .venv && source .venv/bin/activate
pip install paperlab
paperlab init

Install from source:

git clone https://github.com/zhakhatoff/paperlab.git
cd paperlab
python3.12 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
paperlab --help

paperlab init creates ~/.paperlab/ with a default config.toml and a sessions/ subdirectory. Run with --force to overwrite an existing config.

pipx broken on Python 3.14? If pipx install fails with ensurepip errors, your pipx shared venv is running on Python 3.14. Pin it to 3.12:

rm -rf ~/.local/pipx/shared
PIPX_DEFAULT_PYTHON=$(brew --prefix python@3.12)/bin/python3.12 pipx ensurepath

Use

paperlab read paper.pdf --mode rigorous --lang en
paperlab read paper.pdf --mode learning --lang ru --provider ollama --model qwen2.5:7b
paperlab list                    # your review history
paperlab show <session-id>       # revisit a past review
paperlab web                     # open the browser dashboard (phase 8)

Output format:

paperlab read paper.pdf --format markdown          # default
paperlab read paper.pdf --format json --output report.json

Providers

paperlab uses LiteLLM under the hood, so any of these work out of the box:

  • ollama (local, default, free)
  • openrouter (unified access to GPT, Claude, Gemini, Llama, etc.)
  • together, groq, gemini, anthropic, openai
  • custom (any OpenAI-compatible endpoint, e.g. your university's GPU cluster)

Switch with paperlab config set provider ollama or pass --provider per invocation.

Config

paperlab config get provider          # print current value
paperlab config set provider openai   # update config.toml
paperlab config set model gpt-4o
paperlab config set extra.base_url http://localhost:11434

Config is stored in ~/.paperlab/config.toml (or $PAPERLAB_HOME/config.toml).

Privacy

Everything runs locally. PDFs never leave your machine unless you explicitly configure a cloud provider. History is stored in ~/.paperlab/sessions/ as JSONL — grep, back up, delete freely.

Contributing

See CONTRIBUTING.md.

License

MIT


Русский

paperlab — open source инструмент для критического чтения биомедицинских и фармакологических научных статей с помощью команды ИИ-агентов. Локальный по умолчанию, поддерживает разных провайдеров, сделан для студентов и исследователей.

Что делает

Вы даёте paperlab PDF научной статьи. Четыре агента читают её параллельно:

  • Summarizer — что статья реально утверждает
  • Methodologist — дизайн исследования, соответствие CONSORT/PRISMA/STROBE, воспроизводимость
  • Critic — статистические слабости, p-hacking, cherry-picking, конфликты интересов
  • Contextualizer — место в поле, связь с литературой

Получаете структурированный разбор в Markdown или JSON. Два режима:

  • rigorous — жёсткая критика в стиле peer-review для аспирантов и исследователей
  • learning — мягкий разбор для студентов, читающих первые статьи

Два языка вывода: английский или русский.

Установка

Требуется Python 3.11 или 3.12. Python 3.14 пока не поддерживается (часть транзитивных зависимостей не собирается на 3.14).

pipx install --python python3.12 paperlab
paperlab init

Или через pip в проектном venv:

python3.12 -m venv .venv && source .venv/bin/activate
pip install paperlab
paperlab init

Из исходников:

git clone https://github.com/zhakhatoff/paperlab.git
cd paperlab
python3.12 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
paperlab --help

pipx падает на Python 3.14? Если pipx install валится с ошибкой про ensurepip, у pipx общий venv на Python 3.14. Перегони его на 3.12:

rm -rf ~/.local/pipx/shared
PIPX_DEFAULT_PYTHON=$(brew --prefix python@3.12)/bin/python3.12 pipx ensurepath

Команда paperlab init создаёт ~/.paperlab/ с дефолтным config.toml и поддиректорией sessions/. Флаг --force перезаписывает существующий конфиг.

Использование

paperlab read paper.pdf --mode rigorous --lang ru
paperlab read paper.pdf --mode learning --lang en --provider ollama --model qwen2.5:7b
paperlab list                    # история разборов
paperlab show <session-id>       # открыть прошлый разбор
paperlab web                     # веб-интерфейс в браузере (фаза 8)

Формат вывода:

paperlab read paper.pdf --format markdown          # по умолчанию
paperlab read paper.pdf --format json --output report.json

Провайдеры

Работает с любым из этих без изменений в коде:

  • ollama (локально, по умолчанию, бесплатно)
  • openrouter (единый доступ к GPT, Claude, Gemini, Llama и т.д.)
  • together, groq, gemini, anthropic, openai
  • custom (любой OpenAI-совместимый endpoint)

Переключение: paperlab config set provider ollama или флаг --provider при запуске.

Конфигурация

paperlab config get provider          # показать текущее значение
paperlab config set provider openai   # обновить config.toml
paperlab config set model gpt-4o
paperlab config set extra.base_url http://localhost:11434

Конфиг хранится в ~/.paperlab/config.toml (или $PAPERLAB_HOME/config.toml).

Приватность

Всё работает локально. PDF не покидает вашу машину, если вы явно не настроили облачного провайдера. История хранится в ~/.paperlab/sessions/ в формате JSONL — можно грепать, бэкапить, удалять.

Участие в разработке

См. CONTRIBUTING.md.

Лицензия

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

paperlab-0.1.1.tar.gz (30.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

paperlab-0.1.1-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

Details for the file paperlab-0.1.1.tar.gz.

File metadata

  • Download URL: paperlab-0.1.1.tar.gz
  • Upload date:
  • Size: 30.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for paperlab-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b899bef4d52454061f0e122d434921fb0e753cf8a195c6faecc3efc7dc4b15b1
MD5 1454f8fdf65dd04fc506dcab6828ac4e
BLAKE2b-256 2d00b11fc74bd03ac852ad01c6e4d1e104b762f2e13c07bba3b05f3b6f4f42b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for paperlab-0.1.1.tar.gz:

Publisher: publish.yml on zhakhatoff/paperlab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file paperlab-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: paperlab-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 27.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for paperlab-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8b73498c96b084fc115b7586677ff0b7d69d78484ce7d416c9673bf6d34121de
MD5 3e29f05533075f3cf5b21d8d77533461
BLAKE2b-256 6ddb30b4a6b72e0c5ffe85b36e4d78ca69b3c0562202dd87c36172ef787fee7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for paperlab-0.1.1-py3-none-any.whl:

Publisher: publish.yml on zhakhatoff/paperlab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page