
claudio-audiobook
io.github.restantePublished by GitHub account restantev0.2.0Updated Oct 24, 2026
Make audiobooks locally with Kokoro voices from your AI assistant. Nothing leaves your computer.
Overview
A local MCP server that lets an assistant write and render audiobooks on your own machine using Kokoro voices, with no cloud text-to-speech.
- What you can do
- Create audiobooks: the assistant writes spoken-style text and renders it to an audiobook file, optionally with chapters, tags and cover art, as a background job that survives restarts and resumes finished chapters after an interruption. Check progress and setup: query the status of a running render and verify the installation is ready. List and choose voices: browse the available Kokoro voices and languages, pick one or blend two, and set speed, pauses and output format. Convert existing text: turn a markdown file into an audiobook, preview chapters and estimated length before rendering, and optionally use a second Pocket TTS engine with more languages and voice cloning.
- When to use it
- Useful when you want listening material generated from scratch or from your own notes, articles or documentation, and want it produced offline on your computer without per-character speech fees or an account. Good for revision notes, long articles, language practice or onboarding docs turned into audio.
- Requirements
- Runs locally over stdio as a PyPI package, typically launched with uvx or installed with uv; uv is needed for the Claude Code path. The voice model (about 330 MB) downloads once on first use, and the optional Pocket engine downloads PyTorch and models of about 1 GB. No account, API key or GPU is required; CPU only. Optional defaults are set through CLAUDIO_AUDIOBOOK_* environment variables such as VOICE, SPEED, FORMAT, OUTPUT and AUTHOR.
Installation
In SourceWeft
- Open claudio-audiobook in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
🎧 claudio-audiobook
An MCP server that lets your AI assistant make audiobooks
Say "create a python course audiobook". The AI writes it, a local voice reads it. Free, private, offline.
Works with Claude Desktop · Claude Code · Cursor · VS Code (Copilot) · Gemini CLI · Codex CLI · any MCP client
[CI] [License: MIT] [Release] [MCP server] [Python 3.10+] [Runs locally]
What it is
claudio-audiobook is a Model Context Protocol (MCP) server. You add it to an AI assistant, and the assistant gains the ability to turn text into an audiobook on your computer. It is built and tested first for Claude (Desktop and Code, as a one-click extension and a plugin), and it works with other MCP-capable tools too. It also has a plain command line for use without any AI.
Not supported: web chat apps that cannot run local MCP servers (the ChatGPT and Gemini websites).
Why
Text-to-speech APIs charge per character and send your text to someone else's server. Audiobook apps only play books that already exist. claudio-audiobook closes the gap: you describe the audiobook you want, Claude writes it as spoken prose, and an 82M-parameter Kokoro voice reads it on your own machine.
Hear it
Real output, no editing. Voice bf_emma, from the text in docs/samples/python-intro.md:
▶ python-intro-bf_emma.mp3 (18 seconds, 109 KB)
That sample rendered in about 6 seconds on the author's Mac (CPU only). A real 11-chapter, 36-minute exam course took about 3 minutes.
Install in 60 seconds
You need uv for Claude Code (install it:
macOS brew install uv, Windows winget install --id=astral-sh.uv -e). Everything else, including ffmpeg, is
installed for you. The voice model (about 330 MB, once) downloads on first use.
Claude Code
Prefer just the MCP server, without the skill?
Claude Desktop
- Download
claudio-audiobook-<version>.mcpbfrom Releases. - Open it with Claude Desktop (Settings → Extensions).
- Optional: set your default voice, speed and folder in the extension's settings.
Desktop installs the dependencies itself.
Want the Pocket TTS engine in Desktop? Install claudio-audiobook-pocket-<version>.mcpb from the same Releases page
instead of the standard one (install one or the other). It adds Pocket TTS (7 languages, voice cloning) and a "Default
engine" setting. Its first launch downloads PyTorch and the voice engine, about 1 GB: under a minute on a fast connection
in testing, longer on a slow one, and Claude may show the extension as failed until it finishes (wait, then reconnect).
Other AI tools
It is a standard MCP server (stdio), so it is not tied to Claude. Install it once, then point your tool at it:
Installing first matters: the first run of uvx has to download and install everything, which can
exceed a client's start-up timeout. If your tool cannot find the command, use its full path (which claudio-audiobook-mcp).
Cursor · ~/.cursor/mcp.json or .cursor/mcp.json
VS Code (GitHub Copilot) · .vscode/mcp.json or run MCP: Open User Configuration
Use agent mode so Copilot can call tools.
Gemini CLI · ~/.gemini/settings.json
or gemini mcp add --scope user claudio-audiobook claudio-audiobook-mcp. Check with /mcp.
Codex CLI (OpenAI) · ~/.codex/config.toml
or codex mcp add claudio-audiobook -- claudio-audiobook-mcp. Codex waits only 10 seconds for a server to start
by default, so raise startup_timeout_sec as above. Check with codex mcp list.
Set defaults (voice, speed, folder) with CLAUDIO_AUDIOBOOK_* environment variables in the same config, for example
"env": { "CLAUDIO_AUDIOBOOK_VOICE": "bf_emma" }. Any agent that can run a shell can also use the
command line directly.
Status: the server was checked with a generic MCP stdio client (handshake, tool list, a dry run), and the tool schemas are tested to avoid constructs that Cursor and Gemini mishandle. The configs above follow each tool's current documentation but have not yet been run inside those tools. If one doesn't work for you, please open an issue.
Examples
Just ask. Claude agrees the scope, writes the text, shows the chapter list and length, renders in the background and tells you where the file is.
A course from nothing
create a python course audiobook, for beginners, about an hour, in a calm British voice
Your own text
Turn ~/notes/book.md into an audiobook.
Steer it in plain English
slower · a different voice · mix af_heart and bf_emma 60/40 · longer pauses between sentences · make it mp3
Ideas people can do with it
- 🎓 Revision notes or an exam course you can listen to on the commute
- 📰 A long article or paper, read aloud while you cook
- 🧒 A bedtime story, in a voice you picked
- 🌍 Language practice: an Italian text read by
if_sara, or an English text read with a French accent - 💼 Onboarding docs or a team handbook as a podcast-style audio file
What you get
[Cover, tags and chapter list read from a finished .m4b]
Command line
A real run (from docs/samples/python-intro.md): three chapters in, one .m4b
with chapter marks out.
[Terminal: claudio-audiobook builds an m4b with three chapters]
No Claude needed for text you already have:
Preview before rendering. This is real output:
Chapters start at # headings (or lines like Chapter 3); a file without headings is cut into parts.
Interrupted? Run it again: finished chapters are kept, and only chapters whose text or settings changed are redone.
Play it anywhere: chapters, tags and cover art
The default output is an M4B, the standard audiobook file: AAC audio with chapter marks, the tags players use to file it under Audiobooks (title, author, narrator, genre "Audiobook"), and a cover.
[A generated title cover]- Cover art is made for you, locally. Ask the AI for a look ("a dark green cover"): it picks the colours and
passes them as
cover_colors. Or give your own picture: "use ~/Pictures/cover.png" (--cover). Acover.jpgorcover.pngyou drop in the book's folder is used too.--cover noneskips it. - Author and narrator come from the chat ("by Ada Lovelace") or the
--authorflag. Set a default author once in the Desktop extension settings. - The generated cover uses the built-in Latin font: titles in Chinese, Japanese or Korean show empty boxes, so give those books their own cover image.
Import it into:
Choose --format mp3 for players that don't read M4B (some car stereos). Audible and Kindle use closed formats
and cannot import it.
Optional second engine: Pocket TTS
Pocket TTS (Kyutai, 100M parameters) is an optional second voice engine. In the author's small blind listening test (one listener) it was preferred for neutral English and its Italian was judged good. It is as fast as Kokoro on a laptop CPU (about 4x real time on an Apple M1), speaks English, Italian, French, German, Portuguese, Spanish and Dutch, has 27 built-in voices, and can clone a voice from a short clip. Kokoro stays the default.
Ask for it in chat: "use the pocket engine, in Italian". Differences from Kokoro, so nothing is silently ignored:
- No
speed,clause_pauseortrimsettings (asking for another speed is an error). The sentence and chapter pauses work. voiceis a catalogue name (alba,giovanni, ...) or the path of a clean 5 to 30 second clip to clone. Only clone a voice you have the right to use. Leave it out and each language gets its default voice (Italian:giovanni).- In Claude Desktop, use the separate
claudio-audiobook-pocketextension (see Install). The standard extension installs only the default dependencies and does not include Pocket TTS. - Each language's model (about 400 MB) downloads once from Hugging Face the first time that language is used.
- Pocket TTS weights are © Kyutai, licensed CC BY 4.0; the code is MIT.
54 voices, 9 languages
Blend two voices into a new one: --voice af_heart:0.6,bf_emma:0.4. List them all with claudio-audiobook voices.
Every setting
Available as MCP tool arguments, CLI flags, and (for the first five, and the author) defaults in the Desktop settings or the
CLAUDIO_AUDIOBOOK_* environment variables.
--dry-run shows the chapters and the estimated length without rendering. --force redoes everything.
claudio-audiobook doctor checks the install.
How it works
Four MCP tools (make_audiobook, audiobook_status, list_voices, setup_check), a write_audiobook prompt
and an audiobook skill. Works with any MCP client that can run a local stdio server.
Privacy
claudio-audiobook runs on your machine. Your text and audio are never uploaded, and there is no telemetry, no account and no API key.
It uses the network in two ways only: installing the package and its dependencies from PyPI (done by uv or
pip), and a one-time download of the voice model: Kokoro from its GitHub release, checked against a SHA-256
sum, or, if you choose the optional Pocket engine, its model and voices from Hugging Face. It starts only its own programs: the bundled ffmpeg, a start-up check of the speech engine, and a
background worker of this same package. It does not read or send credentials. Its settings are
CLAUDIO_AUDIOBOOK_* environment variables, and only the home folder (~, $HOME) is ever expanded in a path.
FAQ
Does it cost anything? No. Claude itself is whatever plan you already have; the voice is free and local.
How good is the voice? Judge for yourself: listen to the sample. Kokoro is among the best small open TTS models, but it is not a human narrator. Expect clean, natural reading with occasional odd stress on unusual names.
Does it need a GPU? No. It runs on CPU.
Windows / Linux? The code is cross-platform and CI runs the tests. macOS is the tested path for Claude Desktop; Windows is not yet tested end to end. Reports welcome.
Can I use a different voice model? Point CLAUDIO_AUDIOBOOK_MODEL_FILE and CLAUDIO_AUDIOBOOK_VOICES_FILE at
your own copy of the Kokoro files.
Contributing
Issues and PRs welcome, especially: Windows testing, new languages, and sample audiobooks. See
CLAUDE.md for architecture and rules.
If this saved you a subscription, a ⭐ helps others find it.
MIT. Voices by Kokoro via kokoro-onnx.
Source: README.md at commit ff5832c
Tools
0Version history
3- v0.2.0LatestOct 17, 2026
- v0.1.4Oct 17, 2026
- v0.1.3Oct 15, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts