Voice mode lets you speak your prompts instead of typing them. Your speech is transcribed locally with OpenAI Whisper (via whisper.cpp) and, by default, submitted to the assistant automatically. You can switch to review-before-send if you prefer. It runs entirely on your machine by default, so no audio leaves your computer and no cloud API key is required. The speech model downloads once, on first use.
/voice, Ctrl+O, or by holding Space.Enter, or let it auto-stop after a period of silence.voice.autoSubmit false.Recording, press ENTER when done... 3.5sec ░░░█████████
Partial text streams into the input as you speak, so you can watch the transcription form before you stop.
/voice
Starts a single recording session in the current chat.
Press Ctrl+O at the chat prompt to start recording immediately, without typing a command. This is the fastest way to dictate a prompt. You can begin typing, press Ctrl+O, speak the rest, and the transcription is appended to what you already typed.
Hold the Space key at the prompt for 1.5 seconds to start recording. Release Space to stop and transcribe. Useful for a quick voice input without pressing Enter.
/voice --continuous
--continuous (short form -c) automatically starts a new recording each time you return to the prompt after an assistant response, so you can hold a back-and-forth conversation without re-triggering voice each turn. Run the command again to turn it off, or press Ctrl+C to exit.
The Whisper model is downloaded on first use, and the download is never silent.
The command detects that no model is present.
A panel shows the model name, its size (about 148 MB for the default base model), and its license (MIT). Press y to download or n to cancel.
The model is cached under ~/.cache/kiro/models/. Subsequent recordings start instantly.
If you trigger voice with Space (push-to-talk) before the model is downloaded, Kiro prompts you to run /voice for the interactive setup.
Local transcription uses whisper-rs (Rust bindings for whisper.cpp) and needs no internet after the initial model download. Two model sizes are available:
| Model | Download size | Speed | Accuracy |
|---|---|---|---|
base (default) | ~148 MB | Faster | Good |
small | ~466 MB | Slower | Better |
Set the model size:
kiro-cli settings set voice.modelSize small
When you work on a cloud desktop with no microphone, voice mode can stream audio to a small server running on your local machine. Voice mode falls back to the remote server automatically when no local microphone is detected.
Manual setup:
# On your local machine (the one with a microphone): kiro-cli voice-serve # Open a reverse tunnel when you SSH to the cloud desktop: ssh -R 19876:localhost:19876 cloud-desktop # On the cloud desktop, point voice mode at the tunnel: kiro-cli settings set voice.serverUrl http://localhost:19876
You can also force the remote backend for a single session with /voice --model remote (the default is --model local-whisper).
From your local machine, voice-cloud-setup wires everything up in one command:
kiro-cli voice-cloud-setup <cloud-hostname>
It verifies SSH connectivity, configures voice.serverUrl on the cloud desktop, starts voice-serve locally, and opens the reverse tunnel.
| Option | Description |
|---|---|
--port <port> | Port for the voice server (default: 19876) |
--remote-bin <path> | Path to kiro-cli on the cloud desktop |
-i <identity> | SSH identity file |
Voice mode uses Silero Voice Activity Detection to tell speech from background noise. It detects when you start and stop talking, filters out keyboard clicks and fan noise, and drives the silence auto-stop, which prevents false transcriptions from ambient sound.
Recent conversation context is also passed to Whisper's initial prompt, which improves accuracy for code identifiers, function names, and project-specific vocabulary discussed earlier in the session.
Voice behavior is controlled through kiro-cli settings. All settings are optional.
| Setting | Type | Default | Description |
|---|---|---|---|
voice.modelSize | string | base | Whisper model size: base or small |
voice.language | string | en | Transcription language (auto to detect) |
voice.silenceTimeout | integer | 5 | Seconds of silence before recording auto-stops |
voice.maxSessionTime | integer | 300 | Maximum recording length in seconds |
voice.autoSubmit | boolean | true | Submit the transcription automatically instead of placing it in the input for review |
voice.serverUrl | string | none | Remote voice server URL for cloud desktops |
Examples:
# Favor speed kiro-cli settings set voice.modelSize base kiro-cli settings set voice.silenceTimeout 3 # Favor accuracy kiro-cli settings set voice.modelSize small kiro-cli settings set voice.silenceTimeout 8 # Review each transcription before it is sent kiro-cli settings set voice.autoSubmit false # Transcribe Spanish kiro-cli settings set voice.language es # View your voice settings kiro-cli settings list | grep voice
0700) as defense in depth.> /voice Recording, press ENTER when done... 2.1sec ░░░████████ "Fix the bug in the authentication module" > Analyzing the authentication module...
How do ICtrl+O and speak: "implement pagination in the users API"Enter to stop> /voice -c Continuous voice mode enabled Recording, press ENTER when done... 1.8sec ░░░██████ "What files are in the src directory" > The src directory contains... Recording, press ENTER when done... 2.3sec ░░░████████ "Show me the main function" > Here's the main function...
small model is more accurate but slower, and there is no GPU acceleration yet.| Problem | Fix |
|---|---|
| "No microphone detected" | Grant microphone permission, or set up a remote voice server on a cloud desktop |
| Recording stops too early | Increase voice.silenceTimeout (for example, to 10) |
| Poor transcription accuracy | Switch to the small model, speak clearly, and reduce background noise |
| First use is slow | The model downloads once on first use, then recordings start instantly |
| "Model integrity check failed" | Kiro deletes the invalid file and re-downloads automatically. If it persists, check your network or proxy |
| "Voice binary not found" | Reinstall kiro-cli, or confirm KIRO_CHAT_CLI_BIN points to a build with the voice feature compiled in |
| High CPU during transcription | Use the base model and let a transcription finish before starting new work |
Voice mode