Voice mode: add toggle recording as alternative to push-to-talk

Resolved 💬 3 comments Opened Mar 20, 2026 by chrs-myrs Closed Mar 24, 2026

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"
  }
}

View original on GitHub ↗

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