CMDV Reader app icon

CMDV Reader for iPhone and iPad

Your library, on your terms.

A reader for the books you already own, on the server you already run. Point it at Calibre-Web, Komga, Kavita, COPS, or anything that speaks OPDS, and read what it finds there.

Coming to the App Store View the source on GitHub

Why it exists

It is a client, not a store.

Reading apps come in two kinds. The polished ones want you inside their store and treat the books you already own as an afterthought. The self-hosting ones respect your library but are built by developers for developers, and it shows. CMDV Reader is for the person who already runs Calibre-Web on a machine in a cupboard and wants an app that treats that as the point rather than a workaround.

What makes it different

Built so you never lose what you've done.

🖍️

Annotations that outlive your files

Delete a download and the highlights stay. Re-download the book, even a different edition or a re-converted file, and they find their way back, matched by identity, then by content, then by the words themselves. A highlight that genuinely cannot be placed is kept and flagged, never quietly deleted.

📈

Statistics that don't flatter you

Idle time is excluded rather than capped, so a book left open on a table contributes nothing. Reading speed is a median across sessions with outliers thrown out. Streaks have a forgiving mode, because a strict one punishes people for having a life.

🔐

Sync you own

A small server you run yourself keeps positions, highlights, sessions, and settings in step across devices. Everything is encrypted on the device under a key derived from a passphrase only you hold, so the server cannot read what it stores. Book files and catalogue passwords never sync.

📤

Everything is exportable

Highlights as Markdown, Obsidian-flavoured Markdown, Readwise CSV, or JSON. Everything else as one documented ZIP of plain JSON you can read with any tool, with an import that actually restores it. Backups run weekly by default, to a folder you choose.

🔊

It reads aloud

System voices with sentence or word follow-along, a sleep timer, lock-screen controls, background audio, and chapter auto-advance. Nothing being read leaves the device.

🔍

Search inside your books

Full text across every book in your library through a local index that can be rebuilt or cleared without touching the library. Search across your annotations too.

📖

A proper reading experience

Paged or scrolling, full typography controls, and four themes (Day, Sepia, Night, True Black) with WCAG AA contrast. Literata, Atkinson Hyperlegible, and OpenDyslexic are bundled, with a one-tap dyslexia-friendly preset. Global defaults with per-book overrides. Comics get left-to-right and right-to-left, double-page spreads, fit modes, pinch zoom, and vertical webtoon mode.

🔑

Signs in the way your server does

Username and password, Digest, bearer token, single sign-on through a web view for Authentik, Authelia, or Cloudflare Access, and self-signed certificates you verify by fingerprint and the app then pins. Credentials live in the device keychain and are never exported or synced.

🧩

Open source

Licensed under MPL-2.0. If the app ever stops being maintained, the source is there, and so is your data in a format any tool can read.

Features

The full list.

FormatsEPUB 2 and 3 (reflowable and fixed-layout), PDF, CBZ comics, FB2
CataloguesOPDS 1.2 and 2.0, multiple servers, search, pagination
Sign-inUsername and password, Digest, bearer token, single sign-on through a web view, self-signed certificates verified by fingerprint
ReadingPaged or scrolling, typography controls, four themes, bundled Literata, Atkinson Hyperlegible, and OpenDyslexic, global defaults with per-book overrides
ComicsLeft-to-right and right-to-left, double-page spreads, fit modes, pinch zoom, vertical webtoon
AnnotationsHighlights, underlines, strikethrough, notes, bookmarks, five renamable colours
SearchFull text inside your books, and across your annotations
StatisticsTime, words, pages, reading pace, a 30-day chart, streaks, daily goals, per-book finish-by dates
SpeechSystem voices, follow-along highlighting, sleep timer, background audio
PortabilityAnnotation export in four formats, full backup and restore, scheduled
SyncSelf-hosted, end-to-end encrypted, per-device tokens, individually revocable
AccessibilityVoiceOver, Dynamic Type, WCAG AA contrast in every theme

What it deliberately does not do

Said plainly.

Known limits

Stated rather than hidden.

Requirements

What you need.

DeviceiPhone or iPad, iOS 18 or later
LibraryA server that speaks OPDS, which you supply. Calibre-Web, Calibre-Web Automated, Komga, Kavita, or COPS.
SyncOptional. The sync server is a small open-source service you run yourself.
Sourcegithub.com/marc2912/CMDV-Reader, MPL-2.0
HelpSupport · Privacy policy