Adds text-to-speech to Claude Code using Kokoro TTS, speaking responses, tool steps, and notifications aloud. Lets you enable/disable voice output, change voice and speed, silence speech mid-output, and speak arbitrary text on demand.
This skill should be used when the user asks to "change narrator voice", "set voice", "list voices", "narrator cast", "switch voice", "cast voice", or wants to change the text-to-speech voice used by narrator.
This skill should be used when the user asks to "hush", "be quiet", "stop speaking", "silence narrator", "narrator hush", "shut up", or wants to immediately stop all current and queued speech output.
This skill should be used when the user asks to "disable narrator", "turn off voice", "stop narrator", "disable voice output", "narrator off", "mute narrator", or wants to deactivate text-to-speech output.
This skill should be used when the user asks to "enable narrator", "turn on voice", "start narrator", "enable voice output", "narrator on", or wants to activate text-to-speech output for Claude Code responses.
This skill should be used when the user asks to "speak this", "read this aloud", "narrator speak", "say this out loud", or wants Claude to speak specific text or a summary of the last action on-demand, regardless of whether narrator is enabled.
Matches all tools
Hooks run on every tool call, not just specific ones
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.

A Claude Code plugin that speaks responses aloud using Kokoro TTS, a local neural text-to-speech engine. No cloud APIs, no latency — everything runs on your machine.
In Claude Code, run these slash commands:
Add the marketplace:
/plugin marketplace add shreyas-s-rao/claude-code-narrator
Install the plugin:
/plugin install narrator
Reload:
/reload-plugins
Linux note: If
/tmpis a separate filesystem (tmpfs), plugin installation may fail withEXDEV: cross-device link not permitted. Fix by setting TMPDIR before launching Claude Code:mkdir -p ~/.cache/tmp && TMPDIR=~/.cache/tmp claudeThen run the install commands above in that session. This is a Claude Code platform limitation, not specific to this plugin.
If you've cloned the repo locally:
Add the marketplace:
/plugin marketplace add /path/to/claude-code-narrator
Install and reload as above
claude --plugin-dir /path/to/claude-code-narrator
/narrator:on in Claude Code~/.claude-narrator-venv) on first run. This takes a few minutes./narrator:cast af_bella (or any voice from the table below)/narrator:hush to stop current speech, /narrator:off to disable entirely| Command | Description |
|---|---|
/narrator:on | Enable voice output (auto-installs Kokoro on first run) |
/narrator:off | Disable voice output |
/narrator:cast [voice] | Change voice or list available voices |
/narrator:speed [value] | Change speech speed (0.5–2.0, default 1.1) |
/narrator:speak [text] | Speak on demand, even if narrator is off |
/narrator:hush | Silence all current and queued speech |
All commands accept --local to apply settings to the current directory only (see Per-Directory Config).
| Voice | Gender | Description |
|---|---|---|
af_heart | Female | Warm, expressive (default) |
af_bella | Female | Clear, professional |
af_nicole | Female | Soft, gentle |
af_sarah | Female | Bright, energetic |
af_sky | Female | Calm, composed |
am_adam | Male | Deep, authoritative |
am_michael | Male | Warm, friendly |
am_fenrir | Male | Bold, commanding |
| Event | What you hear |
|---|---|
| Tool use (Read, Write, Bash, etc.) | Short description, e.g. "Reading file settings dot json" |
| Text between tool calls | The assistant's intermediate commentary |
| Final response | First ~1000 characters, ending at a sentence boundary |
| Notification | Title and message from Claude Code notifications |
| User input | Speech is automatically silenced when you type or click |
You can override narrator settings per directory, which is useful when running multiple Claude Code sessions with different voices.
/narrator:on --local # enable narrator in this directory only
/narrator:cast --local am_adam # use a different voice in this directory
/narrator:speed --local 1.5 # use a different speed in this directory
/narrator:off --local # disable narrator in this directory only
Local settings are stored in <cwd>/.claude-code-narrator/config. Only the keys you set locally are overridden — missing keys fall back to the global config at ~/.claude-code-narrator/config.
Add the local config file to your .gitignore so it's not committed:
echo .claude-code-narrator >> .gitignore
All sessions share a single daemon and FIFO (sequential playback, no overlap). Each session's utterances carry their own voice and speed settings, so if session A uses am_adam and session B uses af_bella, utterances interleave with the correct voices.
To work on the plugin locally, clone the repo and load it:
git clone https://github.com/shreyas-s-rao/claude-code-narrator
npx claudepluginhub shreyas-s-rao/claude-code-narrator --plugin narratorMulti-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Memory compression system for Claude Code - persist context across sessions
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Write feature specs, plan roadmaps, and synthesize user research faster. Keep stakeholders updated and stay ahead of the competitive landscape.