Tome

v0.2 · early release · self-hosted

A self-hosted ebook library that knows how you read.

Most library servers stop at file management. Tome connects to your e-reader, records every reading session, syncs positions both ways, and turns it into stats that get sharper the more you read.

Quick start View on GitHub
Tome home screen

Click any screenshot to zoom · use the theme switcher above to flip every shot.

A home that knows your habits

Continue where you left off, see your streak, glance at what just landed in the library. Built from real reading-session data — not just file metadata.

A home that knows your habits
TomeSync

30 seconds to KOReader sync.

Other tools document how to set up KOSync. Tome ships a plugin pre-configured with your server URL and a fresh API key — no manual entry, no account, no guessing.

With KOSync (everyone else)
  1. Install the KOSync KOReader plugin
  2. Open it, enter your server URL
  3. Register a username
  4. Enter and confirm a password
  5. Configure auto-sync intervals
  6. Hope the connection works
With TomeSync
  1. Click Download Plugin in Tome's Settings
  2. Drop the .koplugin into KOReader's plugins folder
  3. Restart KOReader. Done.
Records sessions, not just position

Time on page, pages turned, device — every reading minute feeds your stats. Plain KOSync only syncs where you stopped.

Browse and download series from KOReader

Open the wrench menu, pick a series, hit "Download rest". Files arrive organised by book-type folder with proper filenames. No OPDS gymnastics.

Web reader and KOReader stay in lockstep

Read on the couch in the browser, pick up on KOReader in bed, come back to the browser the next morning. Bidirectional. Offline-first — sessions queue and flush when you're back online.

Stable book IDs, not file hashes

KOSync identifies books by MD5 of the file — edit metadata, re-save, redownload and the sync history orphans. Tome resolves to a canonical book ID. Your reading history survives file changes.

Series, not just files

Manga, light novels, multi-volume sagas — Tome groups volumes into arcs, tracks progress per book, and remembers which arc you finished. Status badges show ongoing vs completed.

Series, not just files

Stats that get sharper the more you read

Streaks, time-of-day heatmaps, reading pace, completion estimates. Every minute on your e-reader feeds back into actionable insight, not vanity metrics.

Stats that get sharper the more you read

Pin it to your home screen.

Tome ships as a PWA. Install it like a native app — sidebar nav, full-bleed reader, sync status in your pocket.

Mobile home
Mobile reader
Mobile stats

How Tome is different.

Several self-hosted ebook tools exist — here's where Tome sits.

Reading-session tracking (time, pages, streaks)
Zero-config KOReader plugin install
Bidirectional KOReader position sync
Built-in EPUB + comic reader
Stats & reading insights
Modern, theme-aware UI
For KOReader users
Tome
E-reader-first
rich
Calibre-Web
Largest ecosystem
via CWA fork
basic shelves
dated
Komga
Comics powerhouse
comics-first
session logs
functional
Kavita
Featureful all-rounder
yes (v0.8.7+)
progress only
polished

Pick Calibre-Web for the largest ecosystem. Komga if you're comics-only. Kavita for a featureful all-rounder. Tome if reading-session tracking and KOReader integration are what you actually want.

Ship it in 60 seconds.

One Docker image. SQLite under the hood. No external services required.

docker run -d \
  --name tome \
  --restart unless-stopped \
  -p 8080:8080 \
  -v ./data:/data \
  -v ./books:/books \
  -v ./bindery:/bindery \
  ghcr.io/bndct-devops/tome:latest