A local, multi-voice audiobook generator: an LLM casts every character in its own voice, kept consistent across a whole series — with voice design, per-line emotion, seven languages, and M4B / Audiobookshelf export. Runs on your own machine; you own the files. Kokoro · Qwen3-TTS.
15
stars
9,541
commits
TypeScript
primary language
Sep 10, 2026
updated

Any book, performed by a full cast — kept true, kept yours, book after book.
▶ Hear a 90-second sample — the same passage as one narrator, then the full cast: castwright.ai/#demo.
Turn a manuscript into a finished, full-cast audiobook on your own machine — every character in their own voice, consistent across a whole series. Castwright runs locally end-to-end; with no cloud analyzer key set, nothing leaves your computer.
Upload .md / .txt / .epub / .pdf / .mobi / .azw3 → an analyzer
extracts characters, chapters, and per-sentence speaker tags → assign a voice to
each character → generate per-chapter audio → listen, revise, and export to M4B
or MP3.
metadata.json, and a folder cover), and SRT/VTT captions (per sentence or per line, whole-book or per-chapter). EBU R128 loudness normalisation is on by default. No lock-in.The full user guide — installing, uploading a book, casting, generating audio, listening, exporting, and every feature area — lives on the wiki, illustrated with real screenshots.
Castwright is source-available — not OSI open source. The code is licensed under the Functional Source License v1.1 with an Apache-2.0 future grant (FSL-1.1-ALv2, a.k.a. FSL-1.1-Apache-2.0) — see LICENSE. In short: use, modify, and share it for any purpose except building a competing product or service; two years after each release, that release's code becomes Apache-2.0. Leading with this plainly is deliberate — it bars a competing fork from day one while keeping the source fully readable.
docs/legal/brand-and-trademarks.md.Contributing: issues welcome; PRs by invitation for now (a DCO sign-off and a lightweight CLA apply — see CONTRIBUTING.md).
TypeScript
76.0%
JavaScript
12.8%
Python
8.2%
Dart
2.2%
A local, multi-voice audiobook generator: an LLM casts every character in its own voice, kept consistent across a whole series — with voice design, per-line emotion, seven languages, and M4B / Audiobookshelf export. Runs on your own machine; you own the files. Kokoro · Qwen3-TTS.
15
stars
9,541
commits
TypeScript
primary language
Sep 10, 2026
updated

Any book, performed by a full cast — kept true, kept yours, book after book.
▶ Hear a 90-second sample — the same passage as one narrator, then the full cast: castwright.ai/#demo.
Turn a manuscript into a finished, full-cast audiobook on your own machine — every character in their own voice, consistent across a whole series. Castwright runs locally end-to-end; with no cloud analyzer key set, nothing leaves your computer.
Upload .md / .txt / .epub / .pdf / .mobi / .azw3 → an analyzer
extracts characters, chapters, and per-sentence speaker tags → assign a voice to
each character → generate per-chapter audio → listen, revise, and export to M4B
or MP3.
metadata.json, and a folder cover), and SRT/VTT captions (per sentence or per line, whole-book or per-chapter). EBU R128 loudness normalisation is on by default. No lock-in.The full user guide — installing, uploading a book, casting, generating audio, listening, exporting, and every feature area — lives on the wiki, illustrated with real screenshots.
Castwright is source-available — not OSI open source. The code is licensed under the Functional Source License v1.1 with an Apache-2.0 future grant (FSL-1.1-ALv2, a.k.a. FSL-1.1-Apache-2.0) — see LICENSE. In short: use, modify, and share it for any purpose except building a competing product or service; two years after each release, that release's code becomes Apache-2.0. Leading with this plainly is deliberate — it bars a competing fork from day one while keeping the source fully readable.
docs/legal/brand-and-trademarks.md.Contributing: issues welcome; PRs by invitation for now (a DCO sign-off and a lightweight CLA apply — see CONTRIBUTING.md).
TypeScript
76.0%
JavaScript
12.8%
Python
8.2%
Dart
2.2%