Kitten TTS turns text into natural-sounding speech on your own machine. The flagship Kitten TTS 2 model is a 1.7B-parameter, 1-bit model that runs in real time on a CPU and several times faster on Apple Silicon, with 47 built-in voices across 20 languages, emotion tags such as [joyful], inline sounds such as a laugh, and emphasis markup. The older 0.8 models are tiny, 15M to 80M parameters, for devices with very little memory.
It is on the list because it is easy to run: one pip install, a few lines of Python, no Hugging Face login and no GPU required. Long text is split on sentences and joined smoothly, and there are optional backends for MLX on a Mac and vLLM on NVIDIA GPUs, plus a Docker image serving an OpenAI-compatible speech API.
About 16,500 stars, with the code under Apache-2.0. The model weights have their own licence (Kitten TTS 2 uses the Stellon Labs Community License), so read it before commercial use. The model can also clone a voice from a 5 to 30 second recording; only clone voices you have permission to use.
- Repository: github.com/KittenML/KittenTTS
- Licence: Apache-2.0 (Apache License 2.0)
- Language: Python. Stars: 16.5K. Forks: 1,000. Last push: Oct 22, 2026.
- Scan: safe, Oct 26, 2026, commit afd9dfd
Who it is for
Developers who need offline speech in an app, game or accessibility tool, people making narration without a cloud TTS subscription, and anyone with a laptop but no GPU.
Getting started
1. Install the package
pip install kittenml2. Generate a WAV file with a built-in voice
python -c "from kittenml import KittenTTS; m = KittenTTS('KittenML/kitten-tts-2'); m.generate_to_file('Hello, world.', 'output.wav', voice='Bruno')"3. On an Apple Silicon Mac, add the faster MLX backend
pip install "kittenml[mlx]"The first run downloads the model from Hugging Face: about 947 MiB, or 506 MiB if you pass weights="emb4". Python 3.9 or later and about 6 GB of RAM are needed for Kitten TTS 2 on a CPU.
Safety scan
We cloned KittenML/KittenTTS at commit afd9dfd on Oct 26, 2026 and ran the checks described on the GitHub Tools page: credential patterns, decode-and-execute code, install-time scripts, committed binaries, risky CI workflows, every host the code talks to, known vulnerabilities in pinned dependencies, and project hygiene. A person read every hit. This is what we found.
- No secrets, no suspicious code patterns, no committed binaries and no bare-IP URLs in about 16,000 lines of Python.
- No install hooks or installer scripts. The only outside hosts are GitHub, arXiv papers, Hugging Face for the weights and the project's own kittenml.com.
- No lockfile, so the scanner did not look up known advisories for the dependencies, which include PyTorch and ONNX Runtime.
- No GitHub workflows at all, so there is no CI that could be abused, and also no automated testing visible in the repository. Licence present; no security policy, contributing guide or Dependabot.
What the scanner counted
| Check | Result |
|---|---|
| Secrets | None found. |
| Suspicious code | None found. |
| Install-time code | None: nothing runs at install beyond the package manager itself. |
| Committed binaries | None. |
| CI workflows | No GitHub Actions workflows. |
| Network hosts | 6 distinct hosts referenced from source; most often github.com, arxiv.org, www.apache.org, kittenml.com. No URLs to bare IP addresses. |
| Known vulnerabilities | No lockfile to check: dependencies are declared as ranges, so what gets installed is whatever is current on the day. |
| Project hygiene | Has licence file. Missing security policy, automated dependency updates, CodeQL, contributing guide. |
| OpenSSF Scorecard | Not scored: the project is not in Scorecard's weekly index. |
By the numbers
| Stars | 16.5K |
|---|---|
| Forks | 1,000 |
| Contributors | 7 |
| Commits | 80 |
| Open issues | 93 |
| Open pull requests | 50 |
| Releases | 3 |
| Latest release | 0.8.1 |
| Licence | Apache-2.0 |
| Main language | Python |
| Project age | 1 year |
| Last push | Oct 22, 2026 |
| Tracked files | 69 |
| Lines of code | 16.2K |
| Checkout size | 4 MB |
Lines by language: Python 14.9K, Markdown 1,144, TOML 68.
Questions
Is Kitten TTS free?
The code is free under Apache-2.0. The models are licensed separately: Kitten TTS 2 is under the Stellon Labs Community License, and each model's Hugging Face page has its terms. The company also sells commercial licences and support.
Does Kitten TTS need a GPU?
No. Kitten TTS 2 runs in real time on a CPU with about 6 GB of RAM, and the small 0.8 models run on far less. A CUDA GPU or Apple Silicon makes it faster.
Can Kitten TTS clone a voice?
Yes, Kitten TTS 2 can imitate a speaker from a 5 to 30 second clip. Use it only for your own voice or voices you have clear permission to use; imitating someone without consent can be illegal.
This post is part of GitHub Tools, where every repository is cloned and scanned before it is written up. The scan is a snapshot of one commit on one day; the repository has moved on since, so check it before you install.
