[FEATURE] Allow multiple push-to-talk keybindings configured per language in voice-dictation settings.
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Voice dictation (/voice) only supports a single language at a time, configured globally
in settings.json. Switching languages requires manually changing the setting between
recordings, which interrupts the workflow when working in multilingual contexts.
Proposed Solution
Allow multiple push-to-talk keybindings, each bound to a specific language. This could
be implemented in two complementary ways:
- Keybinding configuration:
{ "key": "v", "command": "/voice lang=pt-br" }
{ "key": "b", "command": "/voice lang=es-es" }
{ "key": "c", "command": "/voice lang=en" }
- Command syntax with inline language parameter:
/voice lang=pt-br (activates push-to-talk with PT-BR transcription)
/voice lang=es-es (activates push-to-talk with ES-ES transcription)
Alternative Solutions
- Manually update the "language" setting in settings.json before each recording session.
Works but breaks the flow — requires leaving the conversation to edit a config file.
- Use a third-party STT tool (e.g. local Whisper) with per-key language switching via
a custom CLI wrapper. Functional but adds external dependencies and process noise
into the chat context.
Priority
Medium - Would be very helpful
Feature Category
CLI commands and flags
Use Case Example
A developer working in a multilingual environment (e.g. team meetings in Spanish,
documentation in Portuguese, code comments in English) uses /voice to dictate messages
to Claude Code. Currently they must stop, edit settings.json, and resume each time
they switch languages. With per-language keybindings, they could press "b" to dictate
in Spanish and "v" to dictate in Portuguese without leaving the conversation.
Additional Context
The /voice command already supports mixing voice and typing within the same message
(tap mode). Per-language keybindings would extend this composability to multilingual
messages — press one key, speak in language A, press another, speak in language B,
then submit a single composed message.
Another practical scenario: a developer building a multilingual system instructs
Claude Code in English, but needs to dictate labels, error messages, or UI strings
in the target language. For example, asking Claude to "create a label called [dictates
in Portuguese: 'Arquivo não encontrado']" — without per-language keybindings, the
English STT would misinterpret or mangle the Portuguese string, forcing a manual
settings switch just to dictate a single value.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗