mrkeyoor.com_
Mon 07 Sept 15:57 UTC
Self-Hostedevaluationupdated 07 Sept 2026

koodo-reader review

Koodo Reader is an ebook library and reader for desktop, mobile, browsers, and self-hosted web use. It opens many DRM-free book and document formats, then adds reading controls, notes, sync, OCR, text-to-speech, and optional AI tools in one application.

Verdict

Our Koodo Reader build passed in 107 seconds, but its test command found 0 tests and failed, so the application is easier to try than its source is to trust. It is a strong choice for DRM-free readers who value format breadth, sync choices, and a consistent library across several platforms. Self-hosters and contributors should add their own acceptance checks, replace example credentials, and test every AI or sync provider they plan to use.

We ran it

Lab card: what happened when we ran koodo-readerScreenshot of koodo-reader (koodoreader.com)
Install✓ · 191s2844 packages · 1342 MB
Build✓ · 107s
Tests✗ · 18sran, no count parsed
Repo891 files~114,621 lines of source · 27.9 MB · 4 CI workflows · Dockerfile

Answers from our run

Does koodo-reader build from source?

Dependencies installed in 191 seconds (2844 packages), and the build succeeded in 107 seconds. We cloned commit d3a7b84 into a clean Debian container with 3 CPUs and no project-specific setup.

Do koodo-reader's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use koodo-reader?

Developers who require a maintained automated test suite: our run checked 459 files, found 0 matching tests, and exited 1.

What are the alternatives to koodo-reader?

Calibre, KOReader, Thorium Reader. Our Koodo Reader build passed in 107 seconds, but its test command found 0 tests and failed, so the application is easier to try than its source is to trust.

Setup3/5Build passed; 2,844 packages and native pieces add weight
Docs4/5Broad user and deployment docs with several translations
Community5/528,091 stars and September 2026 release and code activity
Maturity3/5Wide platform support, but the source test command finds no tests

Who it’s for

Readers who want one library across Windows, macOS, Linux, Android, iOS, and the web.
Self-hosters who want a browser reader, OPDS feed, and control over storage.
People with DRM-free EPUB, PDF, Kindle, comic, text, and document files.
Heavy annotators who need notes, highlights, exports, dictionaries, OCR, or reading statistics.

Who it’s NOT for

Developers who require a maintained automated test suite: our run checked 459 files, found 0 matching tests, and exited 1.
Readers whose Kindle or Mobipocket books still have DRM: the README limits support to DRM-free files.
Users who depend on custom text-to-speech plugins: the v2.4.4 notes say sandboxing and context isolation removed that support.
Teams expecting every OpenAI-compatible model to behave alike: issue 1643 reports HTTP 400 errors and thinking text returned as translations with some providers.
People who need ordinary ZIP, 7z, or RAR archives opened directly: that remains an open feature request in issue 1341.

Setup reality

Our sandbox installed 2,844 yarn packages in 191 seconds and used 1,342 MB. The production build succeeded in 107 seconds. Tests failed with exit code 1 after 18 seconds because react-scripts test found no tests among 459 checked files.

End users can install a packaged app or use the hosted web version. Source development needs Node 20 or newer and Yarn. Self-hosting uses the supplied Dockerfile and compose file; sync, cloud imports, AI providers, Readwise, Notion, and similar integrations need their own accounts or credentials.

This is an Electron and React codebase with native dependencies, OCR components, desktop packaging, and separate mobile clients. The checkout had 4 CI workflows but no tests directory. Docker operators should replace the example server username and password before enabling its HTTP service.

Version 2.4.4 covers books, documents, comics, and six platforms

Koodo Reader combines a personal ebook library with reader apps for Windows, macOS, Linux, Android, iOS, and the web. Its format list includes EPUB, PDF, DRM-free Kindle and Mobipocket files, FictionBook, comic archives, Markdown, DOCX, and several HTML variants. Reading tools cover layouts, typography, notes, highlights, OCR, dictionaries, text-to-speech, and exports. The result feels closer to a personal reading workspace than a bare EPUB viewer.

That breadth lives in a sizable source tree. Our commit d3a7b84 checkout contained 891 files, roughly 114,621 lines of source, and 27.9 MB before installation. The desktop package mixes React with Electron and native dependencies, while the wider product also has mobile clients and a web deployment. Contributors should choose one target first. A desktop release, browser build, and mobile behavior do not share every runtime constraint or plugin capability.

Twelve sync targets trade simplicity for user choice

The README lists OneDrive, Google Drive, Dropbox, iCloud, MEGA, pCloud, Yandex Disk, Box, FTP, SFTP, WebDAV, SMB, and object storage for sync or backup. Koodo can also exchange progress with KOReader and send notes to tools such as Readwise, Notion, Obsidian, and Joplin. This is unusually flexible for readers who already keep books in several places, though each chosen service brings its own authentication and failure modes.

Our source install pulled 2,844 packages in 191 seconds and occupied 1,342 MB. That is a meaningful maintenance surface for an app whose packaged download hides the dependency tree from most readers. Native pieces such as better-sqlite3, Electron packaging, OCR binaries, and platform installers make source development more demanding than the two-command README section suggests. Node 20 or newer is required, and the project uses Yarn for the measured checkout.

What happened when we ran it

Our 3-CPU, 8 GB Debian sandbox completed the production build in 107 seconds after the 191-second install. The repository had a Dockerfile, a compose file, and 4 CI workflow files. Those are useful signs for people evaluating browser deployment or contribution workflows. The successful build establishes that commit d3a7b84 could compile in the clean Node 22 environment we used; it says nothing about opening a particular ebook or syncing an existing library.

Tests ended after 18 seconds with exit code 1. react-scripts test checked 459 files and reported 0 matches for its configured test patterns. The log explicitly says no tests were found, and our checkout had no tests directory. This is not a failed assertion in a working suite. It means the standard test command offered no automated behavioral coverage in our run, so upgrades need manual checks against representative books, platforms, and storage providers.

Sandboxing in v2.4.4 removes custom TTS plugins

Release v2.4.4 enables Electron sandboxing and context isolation by default, and disables renderer access to the local machine. That is a welcome security boundary for software that renders downloaded books and web-derived content. The tradeoff is explicit in the release notes: custom text-to-speech plugins are no longer supported. Users who wrote or installed one should test the built-in options before moving a main library to this release.

The same release adds folder auto-import, movable AI panels, HTTP and SOCKS5 proxy settings, scanned-PDF annotations, and fixes for import, export, footnotes, tables, and mobile PDFs. Our 891-file source scan cannot tell whether those paths work with your documents. Keep a copy of the library and use a small fixture set containing EPUB, PDF, comic, and note exports before trusting an upgrade with irreplaceable annotations.

Third-party AI behavior varies by provider

Koodo lets users bring a model for translation, dictionary lookup, summaries, and encyclopedia-style answers. Issue 1643 reports that some third-party models return HTTP 400 on Android, while desktop translation may surface thinking content instead of the final text. The reporter also names models that work, so this is not evidence that every AI integration is broken. It is evidence that nominal API compatibility does not guarantee equal request and streaming-response behavior.

Our test command found 0 tests that might catch a provider-format regression. Anyone relying on AI translation should try the exact model, endpoint, platform, and reading action before paying for a large quota. The same principle applies to remote storage. A credentials form and a successful login do not prove that conflict handling, deletion, notes, and progress sync behave as expected during an interrupted transfer. Keep an export outside the configured sync target.

The supplied container needs deliberate credentials and storage

The Dockerfile serves the built web application and can enable an HTTP file service, KOReader sync, and OPDS. Its image exposes ports 80, 8080, and 7200, while the compose example maps the first two and mounts an uploads directory. The source also contains example server credentials. Operators should replace those values, decide which services are enabled, restrict network access, and back up the mounted data rather than treating the compose file as a finished public deployment.

GitHub showed 28,091 stars and 271 combined issues and pull requests, with a push on September 7, 2026. Release v2.4.4 landed on September 3, so development is current even though the release note calls it a stable-release candidate and points cautious users to v1.7.4. Koodo is easy to recommend as an end-user trial for DRM-free reading. The 2,844-package source tree and absent tests make it a more qualified recommendation for self-hosters and contributors.

Alternatives

ProjectWhat it isPick it when
Calibre gh↗A mature desktop ebook manager with conversion, metadata editing, device transfer, and a content server.pick this instead when library management and format conversion matter more than a modern cross-device reading interface.
KOReader gh↗A reader built for e-ink devices and Android with extensive document controls.pick this instead when Kindle, Kobo, PocketBook, or other e-ink hardware is your main screen.
Thorium ReaderA desktop Readium-based reader with strong EPUB accessibility support.pick this instead when accessible desktop EPUB reading is the primary requirement.

What people are saying

  1. [github-trending] koodo-reader/koodo-reader

Sources

  1. Koodo Reader README
  2. Koodo Reader v2.4.4 release
  3. Issue 1643: third-party AI model compatibility
  4. Issue 1341: direct archive opening request
  5. Koodo Reader Dockerfile

More self-hosted reviews

LunaTV · warmbly · valkey · codex2api · hydra · codex-lb · the whole board →