Voice Commands
Control the terminal with voice input.
Overview
vmux can route speech in two modes:
- CMD mode: Parses speech into terminal/app commands (Ctrl, Alt, Cmd, arrows, special keys, letters).
- PROSE mode: Sends your spoken text as plain terminal text.
Voice input is useful when you do not have a physical keyboard nearby or want quick hands-free control sequences.
Activating Voice Input
You can toggle voice from the spatial keyboard mic key, then choose mode in the voice ornament:
- CMD for command parsing.
- PROSE for plain dictated text.
While listening, vmux shows live transcript/status feedback in the keyboard voice UI.
Modes
CMD Mode
Speech is tokenized and parsed into one or more VoiceCommand actions, then dispatched through the same input pipeline used by keyboard/keybind handling.
PROSE Mode
The finalized transcript is sent as normal text input (handleTextInput) without command parsing.
Supported Commands
Standalone Letters
Voice mode is command-focused, so you can speak individual keys directly.
| Voice Command | Terminal Input |
|---|---|
| "c" | c |
| "sea" / "see" | c |
| "alpha bravo" | ab |
| "c d e" | cde |
NATO words and common homophones are mapped to letters to reduce speech-recognition misses.
Control Keys
Say "control" followed by a letter to send a Ctrl key combo.
| Voice Command | Terminal Input |
|---|---|
| "control c" | Ctrl + C (interrupt) |
| "control d" | Ctrl + D (EOF/logout) |
| "control z" | Ctrl + Z (suspend) |
| "control l" | Ctrl + L (clear screen) |
| "control a" | Ctrl + A (beginning of line) |
| "control e" | Ctrl + E (end of line) |
| "interrupt" | Ctrl + C (shortcut alias) |
You can also say "ctrl" instead of "control" — both work.
Command (Cmd) Modifier
Say "command" (or "cmd") followed by a letter.
| Voice Command | Result |
|---|---|
| "command n" | Cmd+N (default: new window) |
| "command c" | Cmd+C (default: copy selection) |
| "command v" | Cmd+V (default: paste) |
Cmd combos are resolved through the app keybind resolver, so behavior follows your current keybind configuration.
Current parser support is Cmd + single letter (not punctuation/shift phrases), so only Cmd+letter keybinds are reachable by voice today.
Exact App Commands
Voice CMD mode also supports exact phrase matches for command-palette commands.
Examples:
| Voice Command | Result |
|---|---|
| "new window" | Runs New Window |
| "close window" | Runs Close Window (Keep Session Running) |
| "terminate session" | Runs Terminate Session |
| "open settings" | Runs Open Settings |
| "zoom in" | Runs Zoom In |
| "set font size" | Opens the Set Font Size command editor |
These matches are strict and based on the shared command catalog (same IDs used by palette and keybinds). If a phrase does not match an exact catalog phrase, vmux does not dispatch it as an app command.
Arrow Keys
Say a direction to send an arrow key. Add a number to repeat it.
| Voice Command | Action |
|---|---|
| "up" | Up arrow, once |
| "down 5" | Down arrow, 5 times |
| "left three" | Left arrow, 3 times |
| "arrow right 2" | Right arrow, 2 times |
Numbers work as digits ("5") or words ("five"). Word numbers are supported from one through twenty.
Special Keys
| Voice Command | Terminal Input |
|---|---|
| "escape" | Escape key |
| "normal" | Escape key (alias for vim users) |
| "enter" or "return" | Enter key |
| "tab" | Tab key |
| "backspace" or "delete" | Backspace key |
Alt Combos
Say "alt" or "option" followed by a letter to send an Alt key combo.
| Voice Command | Terminal Input |
|---|---|
| "alt d" | Alt + D (delete word forward) |
| "option f" | Alt + F (forward word) |
| "alt b" | Alt + B (backward word) |
Chaining Commands
You can say multiple commands in a single phrase. For example:
- "control c up up enter" — interrupt, go up twice in history, then execute
- "escape down three enter" — exit insert mode, move down 3 lines, confirm
- "control c d enter" — interrupt, type
d, then execute - "command n enter" — run Cmd+N then Enter
Safety Confirmation
Potentially destructive commands require confirmation before dispatch (currently includes Ctrl+D).
When prompted, say:
- "confirm" / "yes" / "send" (execute pending command)
- "cancel" / "no" / "don't send" (drop pending command)
Notes
- Speak clearly and pause slightly between distinct command groups.
normalis an alias for Escape (useful for vim).- Arrow repeats support digits or words (
up 5,down twenty). - Parameterized app commands reached by voice open the command palette editor for precise value entry.
- First use requires microphone and speech-recognition permissions.
See also: Keyboard Shortcuts