Bug Description
The STT plugin's SessionStart hook in stt/hooks/hooks.json is missing the || true fallback that the TTS plugin has. When the STT dependencies are not installed (e.g., before running setup), the hook returns a nonzero exit code, causing Claude Code to display a SessionStart:startup hook error on every session start.
Steps to Reproduce
- Enable the
elevenlabs-stt plugin in Claude Code
- Do NOT run
/elevenlabs-stt:setup (dependencies not installed)
- Start a new Claude Code session
- Observe:
SessionStart:startup hook error is displayed
Expected Behavior
The hook should fail silently (like the TTS plugin does), since it's expected that the daemon may not be set up yet.
Root Cause
STT (stt/hooks/hooks.json):
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/exec.py -m elevenlabs_stt.daemon start --background 2>/dev/null || python ${CLAUDE_PLUGIN_ROOT}/scripts/exec.py -m elevenlabs_stt.daemon start --background"
TTS (tts/hooks/hooks.json):
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/exec.py -m elevenlabs_tts.daemon start --background 2>/dev/null || python ${CLAUDE_PLUGIN_ROOT}/scripts/exec.py -m elevenlabs_tts.daemon start --background 2>/dev/null || true"
The TTS hook ends with 2>/dev/null || true, ensuring it always returns exit code 0. The STT hook is missing both the 2>/dev/null on the second fallback and the || true.
Suggested Fix
Add 2>/dev/null || true to the end of the STT SessionStart hook command, matching the TTS plugin's pattern.
Environment
- Claude Code v2.1.92
- Windows 11
- Python 3.13
Bug Description
The STT plugin's
SessionStarthook instt/hooks/hooks.jsonis missing the|| truefallback that the TTS plugin has. When the STT dependencies are not installed (e.g., before running setup), the hook returns a nonzero exit code, causing Claude Code to display aSessionStart:startup hook erroron every session start.Steps to Reproduce
elevenlabs-sttplugin in Claude Code/elevenlabs-stt:setup(dependencies not installed)SessionStart:startup hook erroris displayedExpected Behavior
The hook should fail silently (like the TTS plugin does), since it's expected that the daemon may not be set up yet.
Root Cause
STT (
stt/hooks/hooks.json):TTS (
tts/hooks/hooks.json):The TTS hook ends with
2>/dev/null || true, ensuring it always returns exit code 0. The STT hook is missing both the2>/dev/nullon the second fallback and the|| true.Suggested Fix
Add
2>/dev/null || trueto the end of the STT SessionStart hook command, matching the TTS plugin's pattern.Environment