Voice mode: add toggle recording as alternative to push-to-talk
Problem
Push-to-talk (voice:pushToTalk) relies on key-repeat detection to determine when a key is held vs released. This works well with Space but fails with custom keybindings in terminal environments where modifier combos and function keys don't generate reliable key-repeat events (e.g. Alacritty + tmux).
Tested and failed: Alt+V, Ctrl+Shift+V, F3, Alt+W — none produce the sustained key-repeat that Claude Code needs to detect "holding".
Proposal
Add a voice:toggleRecord action alongside the existing voice:pushToTalk:
- First press: start recording
- Second press: stop recording and submit transcription
This would require only two discrete key events (no repeat detection), making it work reliably with any key or key combination that the terminal can deliver — including modifier combos and function keys.
Context
- Environment: WSL2, Alacritty, tmux, ZSA Voyager (34-key split keyboard)
- Space works for push-to-talk but a dedicated voice key on a minimal keyboard would be preferable
- Terminal fundamentally lacks key-up events; toggle mode sidesteps this limitation entirely
Suggested keybinding integration
{
"context": "Chat",
"bindings": {
"f3": "voice:toggleRecord"
}
}This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗