Distillate

The essence of every paper you read.

Save to Zotero. Read on reMarkable. Distillate does the rest.
An open-source CLI. No accounts, no cloud, your notes stay on your machine.

PyPI v0.2.2 Python 3.10+ MIT License
$ distillate # turn papers into notes! save to Zotero ──> auto-syncs to reMarkable │ read & highlight on tablet just move to Read/ when done │ V paper: archived. notes: auto-saved. > done! next paper?
$ pip install distillate $ distillate --init

How it works

1 Save a paper to Zotero

Use the Zotero browser connector or mobile app. Distillate automatically picks up new papers from your library.

2 PDF syncs to your reMarkable

Distillate uploads the PDF to your tablet. Optionally removes it from Zotero to save storage (300 MB free tier).

3 Read and highlight on your tablet

Highlight the passages that matter to you. When you're done, just move the document to the Read folder and Distillate does the rest.

4 Distillate extracts your highlights

Highlighted text is pulled from the reMarkable, cleaned up, and saved as a structured markdown note grouped by page.

5 Everything stays on your machine

Your highlights, reading log, and PDFs are saved to an Obsidian vault or a plain folder on your computer.

Plug in what you need

Local-first Plain files you own Markdown notes and PDFs on your machine. No accounts, no subscriptions, no lock-in. Works with Obsidian or any folder.
Scheduling launchd & cron Set it and forget it. Runs automatically on macOS or Linux.
Zotero Round-Trip Highlights sync back Highlights flow back to Zotero as searchable annotations, visible in the built-in PDF reader and mobile apps
AI summaries Anthropic API One-liner, key learnings, and a paragraph summary for each paper you read
Paper suggestions Anthropic API Pick what to read next from your queue. Suggestions are promoted to your reMarkable home screen.
Email digest Free Resend account Daily paper suggestions and weekly reading logs, delivered to your inbox
Star on GitHub Questions or ideas? Start a discussion

Commands

distillateSync Zotero -> reMarkable -> notes (default)
distillate --importImport existing papers from Zotero
distillate --statusShow queue health and reading stats
distillate --suggestGet paper suggestions for your queue
distillate --digestShow your reading digest
distillate --scheduleSet up or manage automatic syncing
distillate --listList all tracked papers
distillate --initRun the setup wizard

What you need

ComponentNotes
Zotero accountFreeManages your paper library
reMarkable tabletRequiredWhere you read and highlight (uses rmapi)
Obsidian or output folderOptionalWhere notes are saved locally
Anthropic API keyOptionalFor AI summaries and suggestions
Resend accountOptionalFor weekly digest emails

Built with love and coffee by Romain Lacombe. Powered by rmapi, rmscene, PyMuPDF, and Claude Code.