Remarkable Paper Pro

placeholder. might buy later.

spoiler alert – I bought it.

Build Process

How PDF highlights actually flow to the xochitl-baked copy: KOReader’s sdr is not ironed directly onto the PDF. The round-trip is:

  1. Highlight in KOReader on device → .sdr/metadata.pdf.lua.
  2. make remarkable-pull (or remarkable-sync/merge) reads the sdr, text-searches each highlight against the PDF via pymupdf, writes to sioyek

shared.db.

  1. make remarkable reads sioyek state and embed_pdf_annotations bakes the highlights into the PDF copy in xochitl.

Sioyek is a passthrough in the middle — not a second annotation surface you have to think about. The “iron-on” step at make remarkable time depends on sioyek holding the truth.

Where epubs fit — same flow, no migration needed.

For random-walk (and any epub with a PDF sibling):

  1. Highlight in KOReader on the epub — produces xpointers natively, which is what KOReader wants for reflow.
  2. make remarkable-pull — text-searches each highlight; the pull code redirects to the PDF sibling when present (sibling_pdf_if_exists in

rmsync/sioyek.py), so sioyek stores them keyed to the PDF’s hash.

  1. make remarkable — embed_pdf_annotations uses the PDF sibling (see rmsync/annotations.py:454-461) and bakes those sioyek highlights onto it. The

baked PDF is what the native reMarkable app shows.

So everything you annotate in KOReader-on-epub already reaches the xochitl PDF. No manual migration.

For an epub with no PDF sibling — same flow, one extra wrinkle: embed_pdf_annotations does an on-the-fly epub→PDF conversion per sync to produce the xochitl copy. If that becomes slow or you want to annotate on desktop too, make remarkable-convert-source materializes the sibling once and skips the per-sync conversion.

Decision rule:

  • “I only highlight on device via KOReader” → change nothing. Works today, for epubs and PDFs both.
  • “I want to also highlight on desktop in sioyek for a reflowable book” → run convert-source to get a PDF sibling, annotate that in sioyek.