Skip to main content

Features

Read your files​

  • Browser readers for EPUB, PDF, MOBI/AZW/AZW3, and comics (CBZ/CBR). KFX is download-only.
  • Audiobooks via HTML5 audio with range streaming. Multi-file folders merge into one book with track-aware resume.
  • Comic modes: dual-page spread, fit options, RTL/manga direction, bookmarks.
  • Reading tools: EPUB bookmarks and highlights, reading-time stats, synced EPUB font/theme/spacing prefs.
  • PWA: install to home screen. Service worker stays update-safe and does not cache API responses.

Narration​

  • Listen to EPUBs with three engines: server TTS (when an admin configures an endpoint), in-browser Kokoro TTS (ONNX Runtime Web WASM, q8 weights; the full release binary embeds the runtime, model, and voices; the slim binary athenaeum-slim-* leaves that stack out), and the browser SpeechSynthesis voice.
  • Server TTS is the practical choice for phones and weak hardware: the client only downloads audio, no model download or WASM inference.
  • Audiobook generation: queue a whole EPUB from its book page. The server renders each chapter to MP3 in the background, resumes after restarts, and writes the result under audiobooks/ inside the library, where the scanner picks it up as a multi-file audiobook. Per-user voice, speed, and an optional daily time window live under Settings -> Profile -> Narration.
  • Optional Kokoro sidecar (docker compose --profile kokoro) or any OpenAI-compatible /v1/audio/speech endpoint such as Kokoro-FastAPI or Speaches. Works with full and slim binaries. Configure under Settings -> Administration -> Narration (TTS).

Details: Library and readers and Deploying.

  • Concurrent scan, incremental indexing, SQLite FTS5 search (optional PostgreSQL tsvector). WAL mode and paginated browsing for large libraries.
  • Manual shelves, smart collections, and auto shelves after scan (Recently Added, By Author).
  • Continue reading, tags, 1-5 star ratings, favorites.
  • Multiple library mounts: local folders or MinIO-compatible S3. Per-user mount access for non-admins.
  • Optional EPUB full-text content index (admin job).
  • Resumable chunked uploads with SHA-256 duplicate detection.
  • Metadata edit, external metadata search/apply (including Crossref, arXiv, PubMed), citation fields, BibTeX import/export, optional format conversion.

Catalogs and sharing​

  • OPDS 1.2 at /opds/ and OPDS 2 at /opds/v2/ for e-reader apps.
  • KOSync progress sync at /kosync/.
  • Public share download links.
  • SMTP send-to-email / Kindle.

See OPDS and KOSync and Library and readers.

Users and access​

  • Optional auth: first-run wizard or CLI/env bootstrap.
  • Sessions, profiles, password policy, audit log, guest accounts with expiry.
  • Invites (permanent or guest), optional SMTP and Pocket ID passkey provisioning.
  • TOTP 2FA, optional self-registration, OIDC and admin groups.
  • Optional ALTCHA proof-of-work on login and setup.
  • Admin webhooks (user.create, user.delete, invite.created, invite.accepted, book.upload, library.scan.complete) with HMAC signatures and a delivery log.

See Authentication.

Operations​

  • Single binary with embedded Svelte UI (optional --web-dir for a disk SPA). Releases also publish a slim binary without in-browser Kokoro WASM.
  • Docker Compose, ./install.sh, and host units (systemd, OpenRC, runit, dinit, s6).
  • Prometheus /metrics (admin toggle, optional Basic Auth), extended health.
  • Admin backup/restore zip, JSON config export/import.
  • Optional Sentry / GlitchTip.
  • Release binaries across Linux, macOS, Windows, and BSD. Multi-arch GHCR image.

See Operations and Deploying.

Tech stack​

LayerTechnology
BackendGo (net/http, go:embed), SQLite (modernc), optional PostgreSQL (pgx)
SearchSQLite FTS5 or PostgreSQL tsvector/GIN
Authbcrypt sessions
FrontendSvelte 5, TypeScript, Tailwind CSS v4, Vite, pnpm, PWA
Icons@lucide/svelte
Readersepub.js, pdf.js, HTML5 audio
NarrationKokoro (in-browser or sidecar), SpeechSynthesis
ErrorsSentry / GlitchTip
ToolingTask, Vitest, Playwright, ESLint, Prettier, golangci-lint, GitHub Actions