From release
Speak text aloud (TTS) and transcribe speech (STT). Supports local (macOS say, mlx-whisper) and cloud (ElevenLabs) providers. Use when user asks to speak, read aloud, listen, transcribe, or use vocal.
npx claudepluginhub fairchild/dotclaude --plugin skill-creatorThis skill uses the workspace's default tool permissions.
Speak text aloud and transcribe speech with local and cloud providers.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Speak text aloud and transcribe speech with local and cloud providers.
/vocal command loop/vocal What should we work on next?
Optional inline config:
/vocal stt=local tts=local duration=8 What should we work on next?/vocal stt=elevenlabs tts=elevenlabs duration=10 Ready when you are.say)uv run ~/.claude/skills/vocal/scripts/tts_local.py --text "Hello Michael"
Examples:
# Save audio to file
uv run ~/.claude/skills/vocal/scripts/tts_local.py \
--text "Build succeeded" \
--voice Alex \
--rate 200 \
--output /tmp/build.aiff
# List macOS voices
uv run ~/.claude/skills/vocal/scripts/tts_local.py --list-voices
# Record microphone for 5 seconds and transcribe
uv run ~/.claude/skills/vocal/scripts/stt_local.py --duration 5
# Transcribe an existing file
uv run ~/.claude/skills/vocal/scripts/stt_local.py --file ./meeting.wav
# List input devices
uv run ~/.claude/skills/vocal/scripts/stt_local.py --list-devices
# Use a specific device
uv run ~/.claude/skills/vocal/scripts/stt_local.py --duration 5 --device 1
uv run ~/.claude/skills/vocal/scripts/tts_elevenlabs.py \
--text "Hello Michael" \
--voice George
Examples:
# Save and play the generated mp3
uv run ~/.claude/skills/vocal/scripts/tts_elevenlabs.py \
--text "Deployment complete" \
--model eleven_turbo_v2_5 \
--output /tmp/deploy.mp3 \
--play
# Record microphone for 5 seconds and transcribe
uv run ~/.claude/skills/vocal/scripts/stt_elevenlabs.py --duration 5
# Transcribe an existing audio file
uv run ~/.claude/skills/vocal/scripts/stt_elevenlabs.py --file ./call.wav
# List input devices
uv run ~/.claude/skills/vocal/scripts/stt_elevenlabs.py --list-devices
# Use a specific device
uv run ~/.claude/skills/vocal/scripts/stt_elevenlabs.py --duration 5 --device 1
uv run ~/.claude/skills/vocal/scripts/tts_local.py --check
uv run ~/.claude/skills/vocal/scripts/stt_local.py --check
uv run ~/.claude/skills/vocal/scripts/tts_elevenlabs.py --check
uv run ~/.claude/skills/vocal/scripts/stt_elevenlabs.py --check
| Provider | Mode | Latency | Quality | Cost |
|---|---|---|---|---|
tts_local.py | Local | Low | Good | Free |
stt_local.py | Local | Medium (first run downloads model) | Good | Free |
tts_elevenlabs.py | Cloud | Very low with flash model | Very high | Paid API |
stt_elevenlabs.py | Cloud | Low | Very high | Paid API |
| Variable | Required | Used by |
|---|---|---|
ELEVENLABS_API_KEY | Yes (cloud only) | tts_elevenlabs.py, stt_elevenlabs.py |
ELEVEN_LABS_API_KEY | Accepted alias | tts_elevenlabs.py, stt_elevenlabs.py |
Set via ~/.env or shell export.
export ELEVENLABS_API_KEY=your-key-here
If transcription fails with permission errors:
System Settings -> Privacy & Security -> Microphonesay: command not found: install or restore macOS command line toolsmlx-whisper import error: run command via uv run so dependencies installAPI key invalid: regenerate key and ensure no whitespaceRun fast provider checks:
uv run ~/.claude/skills/vocal/tests/test_voice.py
Run file-based ask/listen/respond loop (no microphone required):
uv run ~/.claude/skills/vocal/tests/test_voice_loop.py
Include cloud loop validation (requires ElevenLabs key):
uv run ~/.claude/skills/vocal/tests/test_voice_loop.py --cloud
Fixture files for loop validation:
tests/fixtures/loop_prompt.txttests/fixtures/expected_keyword.txtbacklog/voice-bridge-plan.md — standalone process for continuous voice conversation with self-eval loop