Voice mode regression: transcription broken in 2.1.81-2.1.83 (works in 2.1.80)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Voice mode activates ("listening.." indicator appears, colored block cursor animates across the screen), but no transcribed text ever appears in the input field. When Space is released, the indicator disappears and the prompt is empty. No error messages are shown.
This is a regression — voice transcription works correctly on 2.1.80 but is broken on 2.1.81, 2.1.82, and 2.1.83.
Key evidence:
- Claude Desktop app voice mode works perfectly on the same machine, same microphone, same Anthropic account — confirming the mic, audio pipeline, and server-side transcription service are all functional.
- Rolling back to 2.1.80 via
ln -sf ~/.local/share/claude/versions/2.1.80 ~/.local/bin/claudeimmediately restores working voice transcription in the CLI. - The visual behavior differs between working and broken versions: in 2.1.80 the cursor stays at the start of the input and transcribed text populates progressively. In 2.1.83 the cursor moves across the screen but no text appears.
What Should Happen?
When holding Space in voice mode, audio should be captured and transcribed text should progressively appear in the input field, as it does in 2.1.80.
Error Messages/Logs
No visible errors. CLAUDE_DEBUG=1 claude 2>/tmp/debug.log produces an empty log file for voice-related events.
Additional finding: rec (sox) reports can't set sample rate 16000; using 48000 — if the native audio path is broken and falls back to rec, the sample rate mismatch could explain why the server returns no transcription. However, this is likely a secondary issue since native audio should be used on macOS.
Steps to Reproduce
- Install Claude Code 2.1.83 (fresh install via
curl -fsSL https://claude.ai/install.sh | bash) - Run
claudein Terminal.app /voiceto disable,/voiceto re-enable (required due to #36748)- Hold Space and speak
- Observe: "listening.." appears, cursor animates, but no text is transcribed
- Release Space — input field is empty
Workaround
Roll back to 2.1.80:
ln -sf ~/.local/share/claude/versions/2.1.80 ~/.local/bin/claude
Claude Model
Claude Opus 4.6
Is this a regression?
Yes
Last Working Version
2.1.80
Claude Code Version
2.1.83
Platform
Claude.ai (OAuth)
Operating System
macOS (Darwin 25.1.0, arm64)
Terminal/Shell
Terminal.app (zsh)
Additional Information
- Authentication: claudeAiOauth
soxinstalled via Homebrew (14.4.2_6)recsample rate warning:can't set sample rate 16000; using 48000- Microphone permissions confirmed for Terminal.app in System Settings > Privacy & Security > Microphone
- No third-party voice/audio tools interfering (superwhisper quit, third-party voice-mode MCP removed)
- Related issues: #36748 (voice not initializing on startup), #33383 (voice mode not functioning)
9 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Thanks for the workaround!
Root cause identified and patched — see #38690 for full analysis.
Two bugs in
useVoiceKeybindingHandler:useEffectdependency array includes setState, causing hold-detection counter to reset every renderstopImmediatePropagation()is a no-op in Ink's EventEmitter — space passes through to chat inputWorking patch verified on v2.1.83 (macOS ARM64).
Have same issue on Linux Manjaro, works in 2.1.81, but not in 2.1.83. Have some old still runnings claudes that work :)
Confirming this issue on macOS (Darwin 24.6.0). Audio capture works (cursor animates during speech) but no text is transcribed.
(This comment was posted using Claude Code via Claude CLI)
Same issue here.
Confirming this regression also affects the Windows desktop app (not just macOS/Linux CLI).
Environment:
Symptoms: Listening indicator appears and cursor animates during speech, but no text is transcribed. Input field is empty on release — identical to the CLI reports above.
Note:
/voiceis not a recognized command in the desktop app, so the toggle workaround from #36748 doesn't apply here. The CLI rollback workaround also doesn't apply. Desktop app users have no known workaround.This was fixed in v2.1.84 — Fixed voice push-to-talk: holding the voice key no longer leaks characters into the text input, and transcripts now insert at the correct position (regressed in v2.1.83). If you're still seeing this in the latest version, please comment with your version and repro and we'll reopen.
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.