Skip to Content
Documents⚡ Core🎙️ Voice input

Voice input

Voice input is the third input channel into the signature loop, alongside typing and pasting. Hold a hotkey, speak, and release: the utterance either gets dictated to the cursor, expands the snippet it matches, or goes to AI as an instruction. It never steals focus from the app you are in.

CodeExpander Pro Voice Input


Before you start

Voice is off by default, and it needs a recognition service before the hotkey does anything. Three steps:

  1. Turn it on: Settings → Voice → Enable voice input.
  2. Set the hotkey: click the field and press the key you want to record. A bare modifier such as Control is allowed. Leave it empty to reserve no key.
  3. Configure a recognition channel (the one people miss): add an OpenAI-compatible dictation service under Speech recognition — endpoint, API key, model. Use a speech model (whisper, gpt-4o-transcribe); a chat model will fail. You can also download the on-device model and work offline, see below.

The microphone permission is asked once; without it, the hotkey records nothing.

Press the hotkey without step 3 and the capsule says “ASR not configured”. That is deliberate: CodeExpander runs no recognition backend of its own — audio only goes to the endpoint you fill in.

Three things a release can do

ModeResult
Expand snippetMatches a snippet by abbreviation, title, or voice alias and expands it in place. When nothing matches, choose “dictate instead” or “hint only, do not type”
DictationTypes the recognized text at the cursor. If the whole utterance happens to be an abbreviation, it still expands the snippet
Voice → AIBind a separate hotkey; the utterance goes straight into the search window’s AI chat

Hold-to-talk and press-to-start/stop are both supported. In press mode, 10 seconds of silence cancels the session.

Voice aliases: speak your own words

The voice alias field in the snippet editor (comma-separated) gives one snippet several spoken names. Add “support script” to the /cs snippet and you can just say “support script” instead of spelling out the abbreviation.

When a long dictation matches no snippet, an optional pass silently cleans up punctuation before typing. Off by default.

On-device recognition (offline)

If you would rather not send audio to a cloud endpoint, download the on-device model and keep the audio on your machine:

PlatformOn-device
macOS (Apple Silicon)Supported. Download Qwen3-ASR 0.6B (~1.2 GB) and recognize offline
macOS (Intel)Not supported; cloud recognition still works
WindowsOn-device engine not available yet; cloud recognition still works

The model takes 30–90 seconds to load the first time, then stays resident for a while and is released when idle.

Privacy

  • Audio stays in memory only — never written to disk, no history.
  • Audio goes only to the endpoint you configure; CodeExpander runs no recognition backend.
  • Voice is not gated by Pro and is not rate limited.
  • Secure input fields (password prompts) are intercepted; the text lands in your clipboard for you to paste manually.
  • Expansion — voice expansion reuses the same snippet matching
  • FillIn — snippets with variables open a form before expanding
  • Search window — where voice → AI lands
Last updated