Koodo Reader
Cross-platform ebook reader supporting PDF, EPUB, MOBI, comics and more, with sync across Windows, macOS, Linux, Android, iOS, and Web.
What is Koodo Reader?
Koodo Reader is a free, open-source ebook and document reader that runs on Windows, macOS, Linux, Android, iOS, and the Web. It is built with Electron and TypeScript and supports a long tail of formats that includes PDF, EPUB, MOBI, AZW, FB2, DJVU, CBR/CBZ, TXT, Markdown, DOCX, HTML, and RTF. The app is aimed at readers who want one library that follows them across every device they own, without paying for a subscription.
Key features
- Cross-platform parity: the same library, reading progress, highlights, and notes are available on desktop, mobile, and the web app.
- Sync and backup to OneDrive, Google Drive, Dropbox, iCloud, MEGA, pCloud, Yandex Disk, Box, FTP, SFTP, WebDAV, SMB, or any S3-compatible object store.
- AI tools: optional integration with custom AI models for translation, dictionary lookup, summaries, and an in-line encyclopedia, all running against your own keys.
- OPDS catalogue support, plus a browser extension to save articles on the open web straight into your library.
- Plugin ecosystem with 50+ built-in plugins for translation, dictionaries, OCR (Paddle and Tesseract), text-to-speech, and more.
- Library features: bookmarks, notes, highlights exportable to CSV/Markdown/HTML/TXT/PDF, multi-level labels, snapshot/version-control, statistics, and password protection (with biometric unlock on supported devices).
Comparison to paid PDF software
Koodo Reader covers the same ground as Adobe Acrobat, Foxit Reader, PDF Expert, and Calibre (closed-source forks), but does it under an AGPL-3.0 licence with no premium tier and no advertisements. Unlike the paid readers, the mobile and web apps are full citizens of the same library, and cloud sync does not require a vendor account: you point Koodo Reader at any WebDAV or S3 bucket you control. Compared with PDF Expert for iOS or Adobe Acrobat Reader, the AI features are optional and self-hosted by default, the sync layer is end-user configurable, and the entire app remains usable fully offline.