Loading...
Loading...
Automatically announces plans, issues, and summaries out loud using TTS. Use this skill PROACTIVELY after completing major tasks like finalizing a plan, resolving an issue, or generating a summary. Each project gets a unique voice so users can identify which project is speaking from another room. Providers fallback in order (google, openai, elevenlabs, say) on rate limits.
npx skill4agent add blacktop/mcp-tts speak.claude/tts-config.json{
"provider_order": ["google", "openai", "elevenlabs", "say"],
"unavailable_providers": [],
"voices": {
"planning": { "provider": "google", "voice": "Kore", "style": "calm" },
"issue": { "provider": "google", "voice": "Aoede", "style": "urgent" },
"summary": { "provider": "google", "voice": "Charon", "style": "satisfied" }
},
"assigned_at": "2025-01-15T10:30:00Z"
}references/voice-pools.jsonsay.claude/tts-config.jsonprovider_orderunavailable_providers| Error Pattern | Action |
|---|---|
| "API key", "unauthorized", "authentication", "GOOGLE_API_KEY", "OPENAI_API_KEY", "ELEVENLABS_API_KEY" | Add provider to |
| "rate limit", "quota", "429" | Try next provider (temporary) |
| Other errors | Try next provider |
.claude/tts-config.jsonunavailable_providers{
"provider_order": ["google", "openai", "elevenlabs", "say"],
"unavailable_providers": ["google"],
...
}| Remove/Replace | With |
|---|---|
| URLs | "see the link" or omit |
| Code blocks | "see the code changes" or brief description |
| File paths | Just the filename (e.g., |
| Long hashes/IDs | "a commit hash" or omit |
| Long number lists | "several values" or count |
| Markdown formatting | Plain text |
| Technical jargon | Simpler alternatives when possible |
mcp__mcp-tts__google_tts
- text: string (required)
- voice: string (default: "Kore")
- model: string (default: "gemini-2.5-flash-preview-tts")mcp__mcp-tts__openai_tts
- text: string (required)
- voice: string (default: "alloy") - alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer, verse
- model: string (default: "gpt-4o-mini-tts")
- speed: number (0.25-4.0, default: 1.0)
- instructions: string (voice modulation hints)mcp__mcp-tts__elevenlabs_tts
- text: string (required)mcp__mcp-tts__say_tts
- text: string (required)
- voice: string (OPTIONAL - prefer leaving unset to use system default voice which sounds more natural)
- rate: integer (RECOMMENDED: 200-250 for natural speech, max 300 unless user asks faster; default: 200)references/voice-pools.json~/.claude/tts-unavailable.json~/.claude/tts-assignments.json~/.claude/tts-unavailable.json{
"unavailable": ["google", "elevenlabs"],
"updated_at": "2025-01-15T10:30:00Z"
}"Here's the plan for the authentication feature. First, I'll create the login component. Then add session management. Finally, write the tests. Three tasks total."
"Found and fixed an issue. The rate limiter wasn't catching timeout errors. Added a try-catch block in the handler. Tests are passing now."
"All done with the authentication system. Added login, logout, and session management. Created five new files and updated the main router. Ready for review."