Voice mode shows 'no speech detected' - feature appears disabled internally in v2.1.69

Resolved 💬 3 comments Opened Mar 5, 2026 by laychopy Closed Mar 8, 2026

Description

Voice mode (/voice) can be toggled on/off in the CLI UI, but it never detects speech. The command shows "Voice mode enabled. Hold Space to record." but when pressing Space and speaking, it always reports "no speech detected."

Investigation

After debugging, I found the root cause in cli.js:

  1. The voice enabled flag is hardcoded to false: GD=!1
  2. The hVz function (voice handler) returns a no-op: hVz=({enabled:A})=>({state:"idle",handleKeyEvent:()=>{},isAvailable:!1})
  3. The whisper transcription pipeline is wired up but never activated because enabled is always false

The microphone and audio capture work correctly at the OS level:

  • ffmpeg records audio successfully (mean_volume: -38.6 dB, max_volume: -19.0 dB)
  • sox/rec also captures audio to file (verified with ffmpeg volumedetect), though the visual meter shows 0.00% (separate coreaudio display bug)
  • macOS System Settings confirms mic input levels are active

Environment

  • Claude Code version: 2.1.69
  • OS: macOS Sonoma (Darwin 24.6.0)
  • Architecture: x86_64
  • Terminal: Ghostty
  • sox version: sox_ng 14.7.1 (also tested with sox 14.4.2)
  • ffmpeg version: 8.0.1
  • Node.js: v22.22.0

Expected behavior

Voice mode should record audio when Space is held and transcribe it using Whisper.

Actual behavior

Voice mode toggle works in UI but the recording/transcription pipeline is disabled in code, resulting in "no speech detected" every time.

Steps to reproduce

  1. Run claude
  2. Type /voice → "Voice mode enabled"
  3. Hold Space and speak clearly
  4. Release Space → "no speech detected"

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗