frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Distillate – Zotero papers → reMarkable highlights → Obsidian notes

https://distillate.dev
3•rhl•2h ago
I read a lot of research papers for work. My workflow evolved around an ever-growing inbox of bookmarked papers from arXiv et al. Great for exploration, but hard to keep track of what I read.

Distillate bridges the tools I already use: Zotero (literature management), reMarkable (reader + highlighter), and Obsidian (notes). It automates the whole pipeline:

$ distillate

save to Zotero ──> auto-syncs to reMarkable

                        │

         read & highlight on tablet
         just move to Read/ when done

                        │

                        V

         auto-saves notes + highlights
It polls Zotero for new papers, uploads PDFs to the reMarkable via rmapi, then watches for papers you've finished reading in your Read folder. When it finds one, it:

- Parses .rm files using rmscene to extract highlighted text (GlyphRange items)

- Searches for that text in the original PDF using PyMuPDF and adds highlight annotations

- Enriches metadata from Semantic Scholar (publication date, venue, citations)

- Creates a structured markdown note with metadata, highlights grouped by page, and the annotated PDF (I keep mine in an Obsidian vault)

The core workflow just needs Zotero and a reMarkable — no paid APIs, no cloud backend, your notes stay on your machine. Optional extras if you plug them in:

- AI summaries via Claude (one-liner + key learnings from your highlights)

- Daily reading suggestions from your queue

- Weekly email digest via Resend

- Obsidian Bases database for tracking your reading

Stack: rmapi for reMarkable Cloud, rmscene for .rm parsing, PyMuPDF for PDF annotation. Python 3.10+, pip installable.

The trickiest part was highlight extraction: reMarkable stores highlighted text as GlyphRange items in a scene tree, and matching that text back to positions in the original PDF required fuzzy search with OCR cleanup, plus special merging logic for e.g. cross-page highlights. Happy to say it works well ~99% of the time now.

Install: pip install distillate && distillate --init

Code: https://github.com/rlacombe/distillate

Site: https://distillate.dev

I built this for myself but would love feedback, especially from other reMarkable + Zotero users. What's missing from your workflow? What else should I add?

Comments

rhl•2h ago
Adding that I've worked on a CLI install flow which walks you through setting up Zotero, reMarkable, and key optional features as switfly as possible.

It leaves aside power user features (e.g. emails, GitHub Actions to sync when laptop is asleep, etc.), which are listed here: https://distillate.dev/power-users.html

mtrovo•26m ago
I created something very similar but to display raindrop links into the remarkable and sync highlights back into raindrop. I also added a GenAI powered paper summary filter as a preface to the papers it send to the remarkable which is working quite well.

As you mentioned Remarkable file format is a PITA to extract highlights, one thing that helped a lot was to add an OCR fix phase that uses Gemini flash model to fix common OCR errors and to merge single highlights that are across pages.

rhl•2m ago
Oh nice, that's a great idea! I'm exploring OCR of handwritten notes for future features, will give the Gemini pipeline a try.

Show HN: AsteroidOS 2.0 – Nobody asked, we shipped anyway

https://asteroidos.org/news/2-0-release/index.html
227•moWerk•4h ago•27 comments

Show HN: I wrote a technical history book on Lisp

https://berksoft.ca/gol/
140•cdegroot•7h ago•38 comments

Show HN: Pg-typesafe – Strongly typed queries for PostgreSQL and TypeScript

https://github.com/n-e/pg-typesafe
26•n_e•5h ago•7 comments

Show HN: Auto-Layouting ASCII Diagrams

https://github.com/switz/box-of-rain
6•switz•3d ago•2 comments

Show HN: I built the Million Dollar Homepage for agents

https://onemillionpixels.ai/
6•talboren•9h ago•2 comments

Show HN: I'm launching a LPFM radio station

https://www.kpbj.fm/
41•solomonb•3h ago•29 comments

Show HN: I taught LLMs to play Magic: The Gathering against each other

https://mage-bench.com/
84•GregorStocks•7h ago•65 comments

Show HN: Writing a C++20M:N Scheduler from Scratch (EBR, Work-Stealing)

https://github.com/lixiasky-back/tiny_coro-build_your_own_MN_scheduler
2•lixiasky•44m ago•0 comments

Show HN: 6cy – Experimental streaming archive format with per-block codecs

https://github.com/byte271/6cy
26•yihac1•6h ago•8 comments

Show HN: Continue – Source-controlled AI checks, enforceable in CI

https://docs.continue.dev
36•sestinj•6h ago•7 comments

Show HN: Glitchy camera – a circuit-bent camera simulator in the browser

https://glitchycam.com
160•elayabharath•1d ago•21 comments

Show HN: KrillClaw – 49KB AI agent runtime in Zig for $3 microcontrollers

https://github.com/krillclaw/KrillClaw
4•myonatan•2h ago•2 comments

Show HN: Distillate – Zotero papers → reMarkable highlights → Obsidian notes

https://distillate.dev
3•rhl•2h ago•3 comments

Show HN: OpenBoot – 2 commands to replace a 3-hour Mac setup ritual

https://github.com/openbootdotdev/openboot
9•superjam2026•6h ago•3 comments

Show HN: Cycast – High-performance radio streaming server written in Python

https://github.com/LukeB42/Cycast
18•LukeB42•7h ago•2 comments

Show HN: Jemini – Gemini for the Epstein Files

https://jmail.world/jemini
457•dvrp•1d ago•90 comments

Show HN: Scanned 1927-1945 Daily USFS Work Diary

https://forestrydiary.com/
112•dogline•23h ago•27 comments

Show HN: Relay – I built a modern web-based IRC/Discord replacement

https://relay.moltic.dev/
8•redmageinc•8h ago•0 comments

Show HN: Wildex – Pokémon Go for real wildlife

https://apps.apple.com/us/app/wildex-identify-plants-animals/id6748092158
99•AnujNayyar•1d ago•69 comments

Show HN: NBA-API-ts – Zero-dep TypeScript client for 138 NBA stats endpoints

https://github.com/gek0z/nba-api-ts
2•gek0z•3h ago•1 comments

Show HN: I curated 130 US PDF forms and made them fillable in browser

https://simplepdf.com/forms
7•nip•4h ago•0 comments

Show HN: Maths, CS and AI Compendium

https://github.com/HenryNdubuaku/maths-cs-ai-compendium
85•HenryNdubuaku•1d ago•19 comments

Show HN: Free alternative to Wispr Flow, Superwhisper, and Monologue

https://github.com/zachlatta/freeflow
259•zachlatta•1d ago•123 comments

Show HN: Lap – Fast photo browsing for libraries (Rust and Tauri)

https://github.com/julyx10/lap
2•julyxx•5h ago•0 comments

Show HN: 2D Coulomb Gas Simulator

https://simonhalvdansson.github.io/2D-Coulomb-Gas-Tools/index_gpu.html
39•swesnow•1d ago•9 comments

Show HN: Simple org-mode web adapter

https://github.com/SpaceTurth/Org-Web-Adapter
61•turth•1d ago•7 comments

Show HN: Self-Hosted Task Scheduling System (Back End and UI and Python SDK)

https://github.com/Ghiles1010/Cratos-UI
2•rilesthefirst•6h ago•0 comments

Show HN: Listen to sounds around the world and guess the location

https://placethesound.vikborges.com
2•bit_nomad•6h ago•0 comments

Show HN: PIrateRF – Turn a $20 Raspberry Pi Zero into a 12-mode RF transmitter

https://github.com/psyb0t/piraterf
7•metadescription•9h ago•3 comments

Show HN: Trained YOLOX from scratch to avoid Ultralytics (aircraft detection)

https://austinsnerdythings.com/2026/02/13/training-yolox-aircraft-detection-mit-license/
2•auspiv•6h ago•0 comments