Skip to content

Licenses and credits

This page lists the license of Cloudy Reader, the licenses of its main components, and the sources of its voices and models. This page is not legal advice.

Cloudy Reader is licensed under the Apache License 2.0. The LICENSE file in the repository holds the terms. The app’s copyright line reads “Copyright © 2026 the Cloudy Reader authors.”

The release also bundles GPL components, including piper-tts, jdk4py, and phonemizer-fork. Distributing the app is subject to the licenses of those components.

The tables list the main components of the app, with the license that each package’s metadata names for the version in the release. The app also contains smaller supporting libraries, such as those that spaCy depends on, and each keeps its own license.

These components carry a GPL license. The Source column links the PyPI release page of the exact version, which lists the source distribution. PyPI lists no source distribution for jdk4py, so its link opens the project.

Component Version License Role Source
piper-tts 1.8.0 GPL-3.0-or-later Piper voice engine, with espeak-ng phonemization piper-tts 1.8.0 on PyPI
phonemizer-fork 3.3.2 GPLv3 or later (package classifier) Phonemization for Kokoro phonemizer-fork 3.3.2 on PyPI
jdk4py 25.0.2.1 GPL v2 (package classifier) Java runtime that runs OPSIN jdk4py on GitHub

The jdk4py runtime reports itself as OpenJDK Runtime Environment Temurin-25.0.2+10. Its legal/java.base folder holds the GNU GPL version 2 and an ASSEMBLY_EXCEPTION file.

PyInstaller 6.22.3 builds the app. Its license is GPLv2-or-later with a build exception.

These components carry an LGPL license. The num2words link opens the PyPI release page, which lists the source distribution. PyPI lists no source distribution for the Qt for Python packages, so that link opens the project’s source repository.

Component Version License Role Source
PySide6-Essentials and shiboken6 6.12.0 LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only The window Qt for Python repository
num2words 0.5.14 LGPL Installed with the Kokoro engine num2words 0.5.14 on PyPI

The table lists the other main components in alphabetical order.

Component Version License Role
click 8.5.0 BSD-3-Clause Command-line toolkit that spaCy imports
en_core_web_sm 3.7.1 MIT English language model for the Kokoro engine
en_ner_craft_md 0.5.4 CC BY-SA 3.0 Scientific name-detection model, trained on CRAFT
httpx 0.28.1 BSD-3-Clause HTTP client for lookups and downloads
inflect 7.6.0 MIT Declared dependency of the app
misaki 0.9.4 Apache License 2.0 Phoneme markup for Kokoro
mlx 0.32.4 MIT Runs Kokoro on Apple silicon
mlx-audio 0.6.3 MIT Kokoro model code
numpy 1.26.4 BSD Audio arrays in the voice engines
onnxruntime 1.31.1 MIT Runs Piper voices
py2opsin 1.2.0 MIT Python wrapper that runs the OPSIN parser
scipy 1.17.1 BSD Needed by mlx-audio
spacy 3.7.5 MIT Runtime for the name-detection model
thinc 8.2.5 MIT Part of the spaCy stack
transformers 5.22.1 Apache License 2.0 Bundled with the Kokoro engine

Cloudy Reader does not include voice files. At the first launch the app downloads them from Hugging Face repositories, each pinned to one revision:

The voice files and the Kokoro model are third-party works. They are not part of the Cloudy Reader source, and they keep the terms of their publishers. Read the model card of each repository for those terms.

The name-detection model en_ner_craft_md 0.5.4 ships inside the app. It is the scispaCy CRAFT model, and its license is CC BY-SA 3.0.

The app can send requests to PubChem, UniProt, and Hugging Face. Each service applies its own terms. See Privacy for what each request contains.

  • PubChem answers name lookups for chemical names.
  • UniProt answers name lookups for protein and gene names.
  • Hugging Face hosts the pinned voice files.

Cloudy Reader builds on the work of these projects and data sources: