Distillate

A research alchemist in your terminal.

Save to Zotero. Read on your reMarkable or any device. Distillate does the rest.

distillate
$ distillate ─── ⚗️ Nicolas ────────────────────────────── 42 papers read · 7 in queue Your research alchemist. Type /help or /quit. > What should I read next? 🔮 Consulting the oracle Based on your recent interest in multimodal agents, I'd suggest ReAct [3] — a complementary approach to what you highlighted in Toolformer. It's been in your queue the longest at 12 days.
PyPI v0.6.0 Python 3.10+ MIT License

Try it out:

$ uv tool install distillate $ distillate --init
Star on GitHub Questions or ideas? Start a discussion

How it works

Save. Read. Highlight. Ask.

1 Save a paper to Zotero

Use the Zotero browser connector, mobile app, or ask Nicolas to add a paper by arXiv ID or URL.

2 Read and highlight

On your reMarkable tablet, or on any device with the Zotero app — iPad, Android, desktop.

3 Highlights become structured notes

Just move the paper to your Read folder on reMarkable, or tag it "read" in Zotero. Distillate extracts highlights, generates a summary, and saves a markdown note.

4 Ask Nicolas anything about your library

Search papers, compare findings, get reading suggestions, check stats — all in natural language from your terminal.

Built in

An open-source CLI. No accounts, no cloud, your notes stay on your machine.

⚗️ Meet Nicolas Interactive agent Named after Nicolas Flamel, the legendary alchemist. Ask him about your library in natural language — he searches papers, synthesizes across your highlights, suggests what to read next, and adds papers to Zotero.
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.
Zotero Round-Trip Highlights sync back Highlights flow back to Zotero as searchable annotations, visible in the built-in PDF reader and mobile apps.
Handwritten notes reMarkable Handwritten margin notes rendered as ink on your PDFs, with typed text extracted. Works on RM1, RM2, and Paper Pro.
Citekey rename Automatic When metadata changes in Zotero, notes and PDFs are renamed to match. No orphaned files or broken links.

Plug in what you need

Optional features you can enable with an API key or a config flag.

AI summaries Anthropic API One-liner, key learnings, and a paragraph summary for each paper you read.
Handwriting extraction Claude Vision · reMarkable Margin notes transcribed via Claude and woven into your AI summary. Your thinking becomes part of your notes.
Trending papers HuggingFace Browse what's trending in AI research. Included in daily emails and available via the agent.
Smart metadata Semantic Scholar Auto-completes publication dates, venues, and citation counts from Semantic Scholar when Zotero data is incomplete.
Collection filtering Zotero collections Scope Distillate to a specific Zotero collection instead of scanning your entire library.
Email digest Free Resend account Daily paper suggestions and weekly reading logs, delivered to your inbox.

Stay in the loop

Get notified about new features and releases. No spam, unsubscribe anytime.

Commands

distillateLaunch the research assistant (default)
distillate "What's in my queue?"Ask a one-off question
distillate --syncSync papers and generate notes
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 --initRun the setup wizard

What you need

ComponentNotes
ZoteroManages your paper libraryFree
reMarkableRead on tablet with ink & handwriting (uses rmapi)Optional
AnthropicPowers the agent, summaries, handwriting OCR, and suggestionsOptional
ObsidianWhere notes are saved locallyOptional
ResendFor weekly digest emailsOptional

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