claude-code - 💡(How to fix) Fix [BUG] `voice:pushToTalk` multi-binding silently picks one key; the chosen key changed in v2.1.141

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

Error Messages/Logs

Code Example



---

{
  "context": "Chat",
  "bindings": {
    "space": "voice:pushToTalk",
    "alt+n": "voice:pushToTalk",
    "alt+v": "voice:pushToTalk"
  }
}

---

{
  "context": "Chat",
  "bindings": {
    "alt+v": "voice:pushToTalk",
    "alt+n": "voice:pushToTalk",
    "space": "voice:pushToTalk"
  }
}
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

When multiple keys are bound to voice:pushToTalk in ~/.claude/keybindings.json, only one of them is ever active — the rest are silently ignored. Which key is selected changed in v2.1.141:

  • v2.1.140 and earlier: the first key listed in the config object is active.
  • v2.1.141 and later: the last key listed is active.

The docs (Voice dictation) imply multiple keys can be active at the same time ("Omit it if you want both keys active"), which does not hold in practice.

Additionally, binding only alt+v (without setting space: null) disables the default space binding — alt+v works, space does not. The mere presence of an explicit voice:pushToTalk binding overrides the default, suggesting the action accepts at most one binding at a time.

What Should Happen?

Either:

(a) All keys bound to voice:pushToTalk should trigger push-to-talk, matching the docs wording about "both keys active"; or

(b) If the action is single-key by design, the docs should state this explicitly, and the selection rule should not silently change between versions.

Error Messages/Logs

Steps to Reproduce

In the Chat context of ~/.claude/keybindings.json, bind multiple keys to voice:pushToTalk. Two configurations were tested.

Configuration A (space first):

{
  "context": "Chat",
  "bindings": {
    "space": "voice:pushToTalk",
    "alt+n": "voice:pushToTalk",
    "alt+v": "voice:pushToTalk"
  }
}

Configuration B (alt+v first):

{
  "context": "Chat",
  "bindings": {
    "alt+v": "voice:pushToTalk",
    "alt+n": "voice:pushToTalk",
    "space": "voice:pushToTalk"
  }
}

Enable voice mode with /voice, then press each bound key.

Actual behavior:

  • Configuration A: space works on ≤v2.1.140, alt+v works on ≥v2.1.141.
  • Configuration B: alt+v works on ≤v2.1.140, space works on ≥v2.1.141.

Documentation reference: Voice dictation shows an example pairing meta+k with space: null and notes "Omit it if you want both keys active" — implying coexistence is supported.

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

2.1.140

Claude Code Version

2.1.143

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

VS Code integrated terminal

Additional Information

Tested linux-x64 binaries from GitHub releases (SHA256-verified). Versions not listed were not available as downloadable binaries.

  • First-key selection: v2.1.119, v2.1.121, v2.1.122, v2.1.123, v2.1.128, v2.1.129, v2.1.131, v2.1.132, v2.1.133, v2.1.136, v2.1.137, v2.1.138, v2.1.139, v2.1.140.
  • Last-key selection: v2.1.141, v2.1.142, v2.1.143.

TERM=xterm-256color.

Open questions:

  • Can voice:pushToTalk be bound to multiple keys simultaneously? If not, please update Voice dictation — the "both keys active" sentence is misleading.
  • Is the change in which key is selected (first listed → last listed) across v2.1.140 → v2.1.141 expected, or a side effect of another change?

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING