Speak
Speak text aloud using the local Kokoro TTS service on port 8880.
When to Use
- User says "speak", "say that", "read that aloud", "tell me out loud"
- User asks for voice/audio output
Instructions
- Compose a natural spoken version of your response. Strip markdown, code blocks, bullet points - write it as you'd say it conversationally. Keep it concise.
- Type the response normally so the user has it in the terminal.
- Run the speak script via Bash:
/usr/local/bin/speak "Your spoken text here"
That's it. The speak script handles JSON encoding via jq, calls Kokoro, and plays the audio.
IMPORTANT:
- NEVER run speak in the background (no run_in_background). Background task completions trigger phantom commands due to a Claude Code bug. Always run in foreground.
- Use double quotes around the text argument
- Escape any double quotes inside the text with backslash
- For long responses (500+ words), split into multiple speak calls
- The permission pattern
Bash(/usr/local/bin/speak *)auto-approves these calls - Works in both normal mode and plan mode (no Write tool needed)
- When speaking and your next action needs permission, speak what you are about to do before the tool call so the user knows to check the screen
- When using AskUserQuestion or any tool that requires user permission/input, speak "Response required" before the tool call so the user knows to check the screen even when away from the terminal
Voice Options
ALWAYS uses af_sky (configured in the speak script).
Troubleshooting
If Kokoro isn't running, fall back to macOS say:
say -v Samantha "spoken text here"