KalVoice
KalVoice is the coding assistant and voice layer built into KalCode. Speak your prompts. Control your workspace. Coordinate your coding agents.
KalCode is in private development. This page describes the product as it is designed; details may change before release.
KalVoice turns your voice into coding prompts and KalCode commands. Dictate directly into Claude Code, Codex, Gemini CLI and your terminals, or ask KalVoice to run your workspace. KalVoice is in development: this page describes how it is designed, and it is not available in any build yet.
Two modes, two shortcuts
| Mode | Default shortcut | Result | Counting |
|---|---|---|---|
| Dictation | Hold Ctrl+Shift+Space | Your words, transcribed on your device, typed into the focused input. | Never counted. Unlimited on every plan. |
| Command | Press Ctrl+Shift+K, then speak or type | A KalCode action and a short report. | One KalVoice Request per top-level request. |
On macOS the defaults use Cmd in place of Ctrl. Both shortcuts can be changed in Settings, and KalCode checks them for conflicts with its own bindings.
Dictation
Hold the dictation shortcut, speak, and release. The microphone starts the moment you press the keys. When you let go, a speech-recognition model running on your own computer turns the audio into text, and KalVoice types it into whatever you were focused on:
- a Claude Code, Codex or Gemini CLI thread composer,
- a terminal,
- the command palette, a search box, or another KalCode text input.
The target is fixed when you press the shortcut, so switching windows mid-sentence cannot send your words somewhere else. Press Esc to cancel.
The speech model is downloaded only after you agree to it, from the model's official distribution, and its checksum is verified before use. Nothing is downloaded automatically.
Command mode
Press the command shortcut and say or type what you want done, for example:
- “Open four Codex threads.”
- “Pause every active thread.”
- “Show me anything waiting for permission.”
- “What are my threads doing?”
Structured commands like these are understood directly by KalCode and run without any AI model. Requests that need reasoning, such as “Have Claude implement this, Codex review it, then run the tests”, use the provider you choose from the ones you have connected: a global default, with optional defaults per workspace. If no provider is connected, KalVoice tells you so instead of guessing: “Connect a supported AI provider to use KalVoice reasoning for this request.”
KalVoice Requests
Each top-level request in command mode counts as one KalVoice Request, however many steps it takes. “Open four Codex threads” is one request. “Have Claude implement this, Codex review it, then run the tests” is also one request.
- Free: 250 KalVoice Requests a month
- Pro: 2,500 KalVoice Requests a month
- MAX: 10,000 KalVoice Requests a month
Dictation is never counted, and neither is the usage on your provider accounts. When you reach your monthly allowance, dictation and the rest of KalCode keep working; command requests pause until the allowance resets or you change plans. See pricing for details.
Your provider, your account
KalVoice reasoning runs on the provider accounts you already have — your Claude Code, Codex or Gemini CLI sign-in or API key. Your usage is billed by that provider, as it is when you use it directly. KalCode does not charge for, resell or meter provider usage, and there is no KalCode-paid fallback.
Private by default
Audio is captured into memory, transcribed on your device, and then discarded. Recordings are not stored or uploaded. KalCode's event log records that a dictation or request happened, never what you said or typed. Spoken replies, if you turn them on, use your operating system's own speech synthesis.
Inside your permissions
KalVoice calls the same runtime as the rest of KalCode: the same workspaces, terminals, threads and approvals. Every consequential action it takes goes through your permission mode. It cannot raise its own permissions, cannot approve its own requests, and can never enable Bypass. Read the permission model.