Skip to content

Dictation

Dictation is push-to-talk voice-to-text for anywhere you can type in Kangentic. Hold a key, speak, and watch a live transcript stream into the focused input; release the key and the finalized text is inserted (and, by default, submitted). It is free, runs on-device by default, and needs no API key.

Added in v0.26.0, dictation is a global (per-machine) feature configured under Settings > Dictation.

  1. Enable dictation in Settings > Dictation and pick a push-to-talk key in Settings > Hotkeys (the dictation.pushToTalk action, which can be bound to a keyboard chord or a mouse side button - the default).
  2. Hold the key and speak. A live preview transcript streams into the target as you talk.
  3. Release the key. Kangentic runs a final, higher-accuracy pass, replaces the preview with the finalized text, and (unless you turn off auto-submit) presses Enter for you.

A short release buffer keeps the mic open for a moment after you let go so the last word is not clipped.

Dictation resolves one destination per utterance, and it works anywhere you can type. Since v0.36.0 a focused text field wins over every terminal: the field you have your cursor in is the most direct statement of intent there is.

The chain, in order:

  1. A focused text field, anywhere in the app: a new-task title, a search box, a rename field, the Browser pane’s note input.
  2. A text field inside a page loaded in the Browser pane, reached through the guest page itself.
  3. The focused terminal window, whether that is a task-detail window, a Command Terminal, or the Agent Monitor.
  4. The last terminal you focused, anywhere.
  5. The bottom terminal panel’s current session.

If nothing resolves, Kangentic refuses the utterance rather than guessing, and the live chip says so.

Fields are eligible by default, so a field added to the app later works without anyone marking it. The exclusions are structural rather than a maintained list: an input type that does not hold prose, a disabled or read-only field, and the hidden helper textarea the terminal emulator keeps for IME composition (a terminal already has its own delivery path).

The live chip anchors to whatever it resolved: beside a focused field, or against the bottom band of a terminal pane where the agent’s own input box sits.

Auto-submit presses Enter for you, but the destination decides how, and two cases refuse it whatever the setting says:

  • A field inside a form holding more than one text field. Dictating a title into New Task would otherwise submit the task with everything else empty.
  • Any field inside a page loaded in the Browser pane. The text is filled in, never submitted, because Enter there commits a form Kangentic does not control.

The chip shows the resolved decision before you release, so its hint never promises a send that will not happen.

Dictation uses two models working together:

  • Live model - a fast streaming model (Zipformer) that shows words as you speak, for immediate feedback.
  • Refinement model - a slower, more accurate model (Parakeet by default) that reprocesses the full clip on release to produce the text that actually gets inserted.

Choose both through a quality preset, or unlock them individually:

PresetBehavior
FastLowest latency; lighter models
BalancedA middle ground between speed and accuracy
AccurateBest transcription quality
CustomUnlocks manual Live and Refinement model choice

The transcription engines run locally via sherpa-onnx-node, so your audio never leaves your machine. You can optionally set a Cloud refinement backend (an OpenAI-compatible /v1/audio/transcriptions endpoint) for the final pass only. Even then, the live preview still runs on-device and only the final recorded clip is sent. See Privacy & Analytics.

SettingDescription
EnabledMaster toggle: shows the mic button and enables push-to-talk
LanguageSpoken language (BCP-47). English by default; other languages use multilingual model builds
PunctuationAdd punctuation and capitalization to the committed text
Auto-submitPress Enter automatically after inserting, or leave the text in the input for review. Refused in the two cases above regardless of this setting
Release bufferHow long to keep capturing after you release the key (0-500 ms) so the last word is not clipped
Live experienceWhere the live transcript appears: a floating popup, a docked bar, or typed straight into the resolved target, each revision replacing the last in place (the default)

See the Configuration Reference for every dictation.* key and its default.

See also:

Kangentic is free and open source. A star helps other people find it.

Star on GitHub