Bug
`provider_preview()` in `.claude/hooks/provider-commands.sh` (backing the `/agent-vibes:preview` slash command) only has `case` arms for `piper` and `macos`. When the active provider (`.claude/tts-provider.txt`) is `kokoro` (or `elevenlabs`/`windows-sapi`), it falls through to the default arm and prints:
```
❌ Unknown provider: kokoro
```
with no preview playback at all.
Repro
```bash
echo kokoro > .claude/tts-provider.txt
bash .claude/hooks/provider-commands.sh preview af_heart
-> ❌ Unknown provider: kokoro
```
Expected
A `kokoro` case arm (and ideally `elevenlabs`/`windows-sapi`) mirroring the existing `piper`/`macos` arms: validate the voice id against `KOKORO_VOICES`-style list, then call `"$SCRIPT_DIR/play-tts.sh" "" "" ...` the same way the other providers do.
Location
`.claude/hooks/provider-commands.sh`, function `provider_preview()` (around line 491), `case "$current_provider" in ... piper) ... ;; macos) ... ;; should add kokoro here esac`.
Bug
`provider_preview()` in `.claude/hooks/provider-commands.sh` (backing the `/agent-vibes:preview` slash command) only has `case` arms for `piper` and `macos`. When the active provider (`.claude/tts-provider.txt`) is `kokoro` (or `elevenlabs`/`windows-sapi`), it falls through to the default arm and prints:
```
❌ Unknown provider: kokoro
```
with no preview playback at all.
Repro
```bash
echo kokoro > .claude/tts-provider.txt
bash .claude/hooks/provider-commands.sh preview af_heart
-> ❌ Unknown provider: kokoro
```
Expected
A `kokoro` case arm (and ideally `elevenlabs`/`windows-sapi`) mirroring the existing `piper`/`macos` arms: validate the voice id against `KOKORO_VOICES`-style list, then call `"$SCRIPT_DIR/play-tts.sh" "" "" ...` the same way the other providers do.
Location
`.claude/hooks/provider-commands.sh`, function `provider_preview()` (around line 491), `case "$current_provider" in ... piper) ... ;; macos) ... ;; should add kokoro here esac`.