Tome
Features

Built-in reader

EPUBs, manga (CBZ/CBR), and PDFs render directly in the browser. No external app required. Position is tracked at page granularity and syncs both ways with KOReader via TomeSync.

Reading time
EPUB reader rendering Frankenstein

EPUB reader

Built on foliate-js, the same engine that powers Foliate on the desktop. Pagination, not infinite scroll — pages re-flow to your viewport.

Controls

  • Themes: light, sepia, dark. Independent of the app theme — you can read in sepia inside a dark Tome.
  • Font: system serif, sans, or monospace, sized 12–28px.
  • Table of contents: drawer on the left. Click to jump.
  • Position memory: EPUB position is a CFI (Canonical Fragment Identifier) — resilient against re-flow, so resuming on a different device with a different font size lands you on the same paragraph, not the same pixel offset.

Keyboard shortcuts

KeyAction
or SpaceNext page
Previous page
tToggle TOC drawer
sToggle settings panel
EscClose drawer / exit reader

Manga / CBZ reader

Custom streaming reader — pages are fetched on demand from the server, so you can open a 2 GB manga volume without downloading the archive. Works for CBZ; CBR support requires unrar-free server-side (already in the Docker image).

Layout modes

  • Page mode — one page (or two-page spread) at a time, click or arrow to advance.
  • Webtoon mode — vertical infinite scroll. Best for Korean / Chinese vertical comics.

Per-volume options

  • Reading direction: LTR (default) or RTL. RTL flips arrow keys and spread order — important for Japanese manga.
  • Fit: width, height, or original.
  • Single vs spread: spread mode pairs pages 2-3, 4-5, etc. The cover stays solo.
  • Theme: light, dark, sepia background — useful for matte e-ink screens reading in low light.

PDF

Served as application/pdf; the browser's built-in viewer handles rendering. Position is tracked at the page level — no CFI equivalent, since PDFs are fixed-layout. If you want a richer PDF experience, send the file to KOReader (it does PDF reflow well) and your position still syncs.