Voice push-to-talk requires double /voice toggle on session start (regression from v2.1.70 fix)
Status Fixed / completed
Reported on v2.1.73
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 15 comments · opened Mar 11, 2026 · closed Apr 8, 2026
Description
Push-to-talk does not activate on session start despite voiceEnabled: true in ~/.claude/settings.json. The workaround is to run /voice twice (off then on) at the beginning of every new session to re-initialize voice mode.
This appears to be a regression of the fix shipped in v2.1.70 ("Fixed push-to-talk not activating on session start when voiceEnabled: true was set in settings").
Steps to Reproduce
- Ensure
"voiceEnabled": trueis set in~/.claude/settings.json - Start a new Claude Code session (
claude) - Attempt to use push-to-talk (hold Space)
- Expected: Voice recording activates immediately
- Actual: No speech detected / push-to-talk does not activate
- Run
/voice(disables voice) - Run
/voiceagain (re-enables voice) - Push-to-talk now works correctly
Environment
- Claude Code version: 2.1.73
- OS: macOS (Darwin 25.3.0, Apple Silicon)
- Shell: zsh
Settings
{
"voiceEnabled": true
}
Related Issues
- #30904 — Voice mode shows "no speech detected"
- #30293 — "No speech detected" despite working microphone
- v2.1.70 release notes mention fixing this exact scenario
15 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
This is a duplicate of #32558 but I suggest keeping this one since its the best
I also tried rebinding to different keys then space but then I could not get voice mode to work at all
Title: Push-to-talk key handler never fires on Intel Mac — zero key events in debug log (v2.1.74)
Environment:
Description:
Push-to-talk does not work at all on Intel Mac. The double
/voicetoggle workaround described in the original issue does not fix this on x86_64.The native audio module loads successfully, and
startRecordingis called at/voicetoggle time, but no key press events are ever detected for push-to-talk — regardless of keybinding.Debug log evidence:
After this, zero voice-related entries when pressing/holding any push-to-talk key. No
stopRecording, no transcription attempts, no "no speech detected" — nothing.Keybindings tested (all produce zero events):
space(default)alt+spacectrl+shift+zctrl+shift+spacef5ctrl+/Keybindings load correctly per debug log:
Steps to reproduce:
"voiceEnabled": truein~/.claude/settings.jsonclaude, run/voicetwice (off → on)--debuglog.Settings:
Keybindings:
Key difference from original report: The double
/voicetoggle workaround works on Apple Silicon (#33378 OP) but does not work on Intel x86_64. This may be an architecture-specific regression in the native binary's key event handling.Seeing the same behavior on Linux (Pop!_OS, kernel 6.18.7, Ghostty terminal) on v2.1.74.
voiceEnabled: truein~/.claude/settings.json/voiceonce "wakes up" voice mode, after which space bar push-to-talk works normallySo this isn't macOS-specific — same regression on Linux.
Follow-up: Still broken on v2.1.76 — Intel Mac, three terminals tested
Updated from v2.1.74 → v2.1.76 (native binary, x86_64). Same behavior — zero key events from push-to-talk.
Additional terminals tested since last comment:
All three terminals have macOS microphone permission granted (confirmed in System Settings → Privacy & Security → Microphone).
New debug evidence (v2.1.76 session):
After these two lines — zero
[voice]entries in the entire debug log. NostopRecording, no transcription attempts, no "no speech detected", no errors. The key handler simply never fires.Additional verification performed:
sox/recinstalled and working — successfully records 1-second audio viarec /tmp/test.wav trim 0 1(48kHz, 32-bit, CoreAudio input)claude authrefreshed — no changeen-RU,ru-RU(both supported)shift+enter: chat:newlinein custom keybindings.json), relying on defaultctrl+/— still no eventsEnvironment:
This confirms the issue persists across versions (v2.1.74 → v2.1.76) and is not terminal-specific. Likely an architecture-specific (x86_64) regression in the native binary's key event handling, as noted in my previous comment.
Confirming this on Windows 11 + VS Code integrated terminal (Git Bash) across versions 2.1.72–2.1.76.
Analyzed 24 session JSONL files spanning March 11–14: 23 of 24 sessions show "Voice mode disabled." as the first
/voiceresponse, requiring the double-toggle workaround every time. The pattern is 100% reproducible.Closing #34401 as a duplicate of this issue.
+1 for me
Environment:
Confirming on Linux (Ubuntu, kernel 6.8.0-106-generic) with v2.1.76.
"voiceEnabled": truein~/.claude/settings.json/voiceto activateWould love a
voiceAutoStartor forvoiceEnabled: trueto actually auto-activate push-to-talk on session start as intended.🤖 comment by Claude, edited by Alex.
Confirming on Macbook Pro M3 Max 48GB Tahoe 26.2, Claude Code v2.1.77
Same issue here on Windows 11 (10.0.26200) with Claude Code v2.1.77.
Every new session requires /voice → "Voice mode disabled" → /voice again → "Voice mode enabled" before spacebar PTT
works. voiceEnabled: true is set in settings.
This isn't macOS-specific, the platform:macos label should probably be removed or a platform:windows label added.
Edit: Resolved on version: 2.1.80
Confirming this bug persists in v2.1.79 (macOS Darwin 25.3.0), despite the release notes for both v2.1.75 and v2.1.79 claiming fixes for this exact issue.
The workaround remains the same:
/voiceoff →/voiceon at the start of every session.Still experiencing this issue on v2.1.79 on Linux. Enabled globally true in settings and still requires the workaround.
Same as @SalzerRefinedLeads
UPDATE 2026-03-22: 2.1.81 fixes this on macos & linux for me.
This has been resolved for my setup in 2.1.81
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.