Skip to main content

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

CLI

Command What it does
paperlab version Print installed version
paperlab init [--force] Create ~/.paperlab/{config.toml, sessions/}
paperlab read <paper.pdf> Run the 4-agent review (see flags below)
paperlab list Table of past sessions
paperlab show <session-id> [--format markdown|json] Reprint a past session
paperlab config get <key> Read provider / model / mode / lang / extra.<k>
paperlab config set <key> <value> Update config.toml
paperlab web Launch Gradio dashboard

paperlab read flags:

Flag Values Default
--mode rigorous, learning from config
--lang en, ru from config
--provider see table below from config
--model any model string the provider accepts from config
--format markdown, json markdown
--output file path stdout
--skip-preflight skip provider readiness checks off

The global --verbose / -v flag turns on debug logging to stderr. Before starting a review paperlab runs a preflight check: for ollama — that the service is running; for cloud providers — that an API key is saved. If not, it prints a clear hint and exits without running the review. Use --skip-preflight to bypass.

paperlab read paper.pdf --mode rigorous --lang en
paperlab read paper.pdf --mode learning --lang ru --provider ollama --model qwen2.5:7b
paperlab read paper.pdf --format json --output report.json

Providers

paperlab uses LiteLLM under the hood. Supported provider names:

Name Where it runs Auth Model string example
ollama Local (default) none qwen2.5:7b, llama3.2:3b
openrouter Cloud OPENROUTER_API_KEY openrouter/anthropic/claude-3.5-sonnet
together Cloud TOGETHERAI_API_KEY together_ai/meta-llama/Llama-3-70b-chat-hf
groq Cloud GROQ_API_KEY groq/llama-3.1-70b-versatile
gemini Cloud GEMINI_API_KEY gemini/gemini-1.5-pro
anthropic Cloud ANTHROPIC_API_KEY claude-3-5-sonnet-20241022
openai Cloud OPENAI_API_KEY gpt-4o
custom Any OpenAI-compatible endpoint as needed LiteLLM convention
fake In-process test double none any

Switch globally with paperlab config set provider <name> or per invocation with --provider.

API keys. The web dashboard (paperlab web) lets you pick a provider, save its API key, and browse available models. Keys are stored locally in ~/.paperlab/keys.toml (file mode 600, never leaves your machine); environment variables take precedence over the stored file. For Ollama the dashboard detects whether it is installed and running, lists installed models with sizes, and recommends models that fit your RAM.

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 version Печатает установленную версию
paperlab init [--force] Создаёт ~/.paperlab/{config.toml, sessions/}
paperlab read <paper.pdf> Запускает разбор четырьмя агентами (флаги ниже)
paperlab list Таблица прошлых разборов
paperlab show <session-id> [--format markdown|json] Печатает прошлый разбор
paperlab config get <key> Читает provider / model / mode / lang / extra.<k>
paperlab config set <key> <value> Обновляет config.toml
paperlab web Запускает Gradio-дашборд

Флаги paperlab read:

Флаг Значения По умолчанию
--mode rigorous, learning из конфига
--lang en, ru из конфига
--provider см. таблицу провайдеров из конфига
--model любая строка, которую понимает провайдер из конфига
--format markdown, json markdown
--output путь к файлу stdout
--skip-preflight пропустить проверку готовности провайдера off
paperlab read paper.pdf --mode rigorous --lang ru
paperlab read paper.pdf --mode learning --lang en --provider ollama --model qwen2.5:7b
paperlab read paper.pdf --format json --output report.json

Глобальный флаг --verbose (-v) включает подробный лог в stderr. Перед запуском разбора paperlab делает preflight-проверку: для ollama — что сервис запущен, для облачных провайдеров — что API-ключ сохранён; при отсутствии печатает понятную подсказку и выходит без прогона. Пропустить проверку можно флагом --skip-preflight.

Провайдеры

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

  • 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

Metadata

Release files for paperlab 0.1.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for paperlab 0.1.9
File Size Uploaded
paperlab-0.1.9.tar.gz 57.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for paperlab 0.1.9
File Interpreter ABI Platform
paperlab-0.1.9-py3-none-any.whl Python 3 none any Details

Total release size: 102.2 kB

Release files / paperlab-0.1.9.tar.gz

Download URL paperlab-0.1.9.tar.gz
Size 57.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ecc3da2910cc4db1ddf9c5fd5db3e8bca2f836b3a1f4d26f44eacf01b476d3dd
BLAKE2b-256 checksum
How to use checksums
30bbda64442a0d42a2b725c99b87b1cae5610b844f31e8e567e78f493321b258
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 11, 2026.

Transparency log

Release files / paperlab-0.1.9-py3-none-any.whl

Download URL paperlab-0.1.9-py3-none-any.whl
Size 45.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
93c19b094eb4eae4e41856a5bfab28407c44249651acdee7577ce20fbe42e7b4
BLAKE2b-256 checksum
How to use checksums
95bb2b248d55bd1882fb5c3047b009da8f0f07ef4d2c7a584f9394753d889eb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.9 This release

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page