This skill should be used when speaking text aloud, managing TTS voices, or controlling audio playback. Triggers on requests to speak, read aloud, announce, use voice output, or manage TTS settings. <example> Context: User wants audio feedback user: "Say hello" </example> <example> Context: User wants to change voice user: "Switch to a different voice" </example> <example> Context: User wants to stop audio user: "Stop talking" </example> <example> Context: User wants to hear available voices user: "What voices do you have?" </example>
From psnnpx claudepluginhub aladac/claude-pluginsThis skill uses the workspace's default tool permissions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Configures VPN and dedicated connections like Direct Connect, ExpressRoute, Interconnect for secure on-premises to AWS, Azure, GCP, OCI hybrid networking.
| Tool | Purpose |
|---|---|
mcp__plugin_psn_local__speak | Speak text aloud (async playback) |
mcp__plugin_psn_local__stop | Stop currently playing audio |
mcp__plugin_psn_local__voices | List installed voice models |
mcp__plugin_psn_local__current | Show active voice and status |
mcp__plugin_psn_local__download | Download a piper voice from HuggingFace |
mcp__plugin_psn_local__test | Test a voice with sample text (sync) |
Voice output using Piper TTS via the psn local MCP server.
psn-mcp --mode local)mcp__plugin_psn_local__speak(text: "Hello, I'm ready to help.")
mcp__plugin_psn_local__stop()
mcp__plugin_psn_local__current()
mcp__plugin_psn_local__voices()
Returns installed voice models with:
en_US-lessac-medium)mcp__plugin_psn_local__download(voice: "en_US-lessac-medium")
Downloads from HuggingFace's Piper voice repository.
mcp__plugin_psn_local__test(voice: "en_US-lessac-medium")
Speaks sample text and waits for completion (synchronous).
Piper voices follow the pattern:
{language}_{region}-{name}-{quality}
Examples:
| Voice | Description |
|---|---|
en_US-lessac-medium | US English, Lessac, medium quality |
en_GB-alan-medium | British English, Alan voice |
en_US-amy-low | US English, Amy, low quality (faster) |
en_US-ryan-high | US English, Ryan, high quality |
Quality levels:
low - Fastest, smaller modelmedium - Balanced (recommended)high - Best quality, larger modelThe active voice is set via environment variable:
PERSONALITY_VOICE=bt7274
Or in .mcp.json:
{
"mcpServers": {
"local": {
"command": "psn-mcp",
"args": ["--mode", "local"],
"env": {
"PERSONALITY_VOICE": "bt7274"
}
}
}
}
speak() starts playback and returns immediately. Audio plays in background.
test() blocks until audio completes. Use for voice previews.
stop() immediately halts any playing audio.
New speak() calls while audio is playing will queue. Use stop() first if you need to interrupt.
# After completing a long task
mcp__plugin_psn_local__speak(text: "Build completed successfully")
# List available voices
voices = mcp__plugin_psn_local__voices()
# Test one
mcp__plugin_psn_local__test(voice: "en_US-ryan-high")
# If satisfied, update config to use it
mcp__plugin_psn_local__stop() # Stop any current speech
mcp__plugin_psn_local__speak(text: "Urgent: deployment failed")
voices()current()download(voice: "voice-name")