Skip to content

v1.0.0 — Codex

Choose a tag to compare

@bndct-devops bndct-devops released this 25 May 18:17

The first stable release. Tome has been in daily use for two months — this tag marks the point where the schema, API, and plugin protocol are stable.

What's in Tome

  • TomeSync — a purpose-built KOReader plugin (not a KOSync wrapper). Records reading sessions with page-level granularity, syncs positions bidirectionally between e-reader and web, lets you browse and bulk-download series from the device menu, and works fully offline. No other self-hosted library ships anything like it.
  • Reading stats — three tabs of insights built on real session data from your e-reader. Streaks, time-of-day heatmaps, reading pace, completion estimates, author affinity, series completion ladders, library growth.
  • Built-in readers — EPUB (foliate-js) with themes, font controls, and CFI position memory. Manga/CBZ with page, webtoon, and spread modes, RTL toggle. PDF via browser.
  • Series & arcs — volumes group into series with status badges (ongoing/completed/hiatus) and optional story arcs.
  • Metadata from 3 sources — Hardcover, Google Books, and OpenLibrary with a diff UI and cover picker.
  • Bindery — drop-folder inbox with manual review or auto-import on a schedule. Content-hash dedup.
  • OPDS feed — browse and download from KOReader, Moon+ Reader, Panels, or any OPDS client. Per-user PINs.
  • Multi-user — admin / member / guest roles with server-enforced per-book visibility.
  • Themes — light, dark, amber, plus fully custom 10-value hex palettes.
  • PWA — installable on iOS and Android.
  • API tokens — universal-scope tome_* bearer tokens for every /api/* endpoint.
  • Scribe (alpha) — Claude Code skill for batch ingest, metadata audits, and series annotation.

Stable surfaces

These are stable as of 1.0 — breaking changes get a major-version bump:

  • HTTP API at /api/*
  • OPDS feed at /opds/
  • TomeSync KOReader plugin protocol
  • Environment variables
  • On-disk library layout

Quick start

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

Open http://localhost:8080 and follow the setup wizard.

Links