ai-setup 6 min read

Distillate – Papers to ML Experiments with Claude

Python tool that polls Zotero for new papers, syncs PDFs to reMarkable, extracts highlights, and spins up Claude Code research agents from your reading.

By
Share: X in
Distillate product thumbnail

TL;DR

TL;DR: Distillate connects Zotero and reMarkable to Claude Code, letting you turn a pile of annotated research papers into running ML experiments without leaving your terminal.

Source and Accuracy Notes

⚠️ This section is MANDATORY. All links must be verified from actual source, not guessed.

What Is Distillate?

Distillate is an open-source Python tool (MIT licensed, Python 3.10+) that bridges the gap between reading research papers and running machine learning experiments. It was launched on Hacker News in February 2026.

The core idea: you read papers on your reMarkable, highlight passages, and Distillate automatically extracts those highlights, matches them back to the original PDF positions, and feeds them into a Claude Code research agent that designs and runs experiments for you.

It has two distinct modes:

  • Research agent mode — spawns autonomous Claude Code agents in tmux sessions that iteratively improve ML models based on your research questions or paper insights
  • Pipeline mode — a simpler sync-only workflow: Zotero → reMarkable → highlight extraction → structured markdown notes with AI summaries
$ distillate

  ─── ⚗️  Nicolas ──────────────────────────────
  Your research alchemist.
  🧪 4 experiments · 12 runs · 1 running
  📚 42 papers read · 7 in queue

> /conjure tiny-matmul --duration 30m
  🧪 Spawning research agent...
  Created distillate-xp-tiny-matmul

> /distill tiny-matmul
  🔬 Distilling 8 runs...
  Best: run-7 (loss 0.0023, -42% from baseline)
  Key insight: block size 64 outperforms larger batches.

Setup Workflow

Step 1: Install

pip install distillate
# or
uv pip install distillate

Python 3.10+ required. No separate API key needed — Distillate runs through your Claude Code subscription.

Step 2: Initialize

distillate --init

The setup wizard walks you through connecting Zotero, choosing a reading surface (reMarkable, iPad, or desktop), and configuring optional features like AI summaries and email digests.

Step 3: Connect Your Tools

Zotero (required) — save papers to Zotero as usual. Distillate polls your Zotero library for new entries.

reMarkable (recommended) — Distillate uses rmapi to upload PDFs to your reMarkable cloud. Read and highlight as normal.

Claude Code (required for agents) — the claude CLI must be installed and authenticated. Distillate spawns agents that run inside tmux sessions.

Step 4: Run the Pipeline

distillate          # Start the full REPL with research agents
distillate --sync   # Classic pipeline-only mode: Zotero → highlights → notes
distillate --brew  # Sync papers and process highlights without running agents

Optional: Desktop App

Distillate ships a desktop app with four tabs:

  • Control Panel — metric chart, session timer, goal tracking
  • Session — live terminal attached to the running Claude Code agent
  • Results — runs grid with research insights
  • Prompt — view and edit PROMPT.md with markdown rendering

Launch it from the REPL or separately after installation.

How Highlight Extraction Works

The trickiest part of the pipeline, as the author notes, is matching reMarkable highlights back to positions in the original PDF.

reMarkable stores highlighted text as GlyphRange items in a scene tree. Distillate:

  1. Parses .rm files using rmscene to extract GlyphRange text
  2. Searches for that text in the original PDF using PyMuPDF with fuzzy matching and OCR cleanup
  3. Merges highlights across page breaks
  4. Enriches metadata from Semantic Scholar (publication date, venue, citations)
  5. Creates structured markdown with metadata, highlights grouped by page, and the annotated PDF

The pipeline works approximately 99% of the time for clean highlights. Cross-page highlights and handwriting adjacent to text may need manual correction.

Key Skills in the REPL

| Command | Role | Description | |---------|------|-------------| | /conjure | Laboratory | Launch a research agent from a question | | /steer | Laboratory | Guide a running agent mid-experiment | | /assay | Laboratory | Deep analysis of experiment results | | /distill | Laboratory | Extract insights from session histories | | /brew | Library | Sync papers and process highlights | | /forage | Library | Discover trending papers | | /transmute | Both | Turn paper insights into experiment ideas |

Security Notes

  • Your papers and notes stay on your machine — no cloud backend required
  • The Zotero → reMarkable sync uses the official rmapi cloud API
  • Claude Code agents run locally in tmux sessions under your user account
  • Optional AI summaries call out to Claude; email digests use Resend

FAQ

Q: Do I need a reMarkable tablet? A: No. The pipeline mode works with just Zotero and Claude Code. The reMarkable integration is optional but recommended for the full highlight-extraction workflow.

Q: Does it work with Zotero alternatives like Paperpile or Mendeley? A: Not currently. The pipeline is Zotero-specific. The GitHub repo is open source, so contributions for other managers are welcome.

Q: How does the Claude Code billing work? A: Distillate uses your existing Claude Code subscription — no separate API key or billing setup. The research agents run as Claude Code sessions under your account.

Q: Can I run this on a server without a display? A: Yes. The CLI and pipeline modes are fully terminal-based and work on headless servers. The desktop app requires a display, but it connects to the same backend as the CLI.

Q: What happens to my data? A: Everything stays local. Papers live in your Zotero library, notes are markdown files in your vault, and experiment outputs are git repos on your machine. Distillate does not upload anything to its own servers.

Conclusion

Distillate solves the paper-to-experiment gap that kills research momentum. Instead of manually translating paper ideas into code, you read, highlight, and let the agent iterate — then distill what actually worked back into your notes.

If you already live in Zotero and reMarkable, the setup is under 10 minutes. If you just want to run Claude Code research agents on arXiv papers without managing infrastructure, start with pip install distillate && distillate --init.

Install: pip install distillate Site: distillate.dev GitHub: github.com/rlacombe/distillate