Skip to content

HoldToSpeak 0.1.0 — first public release

Choose a tag to compare

@rootMonsteR rootMonsteR released this 19 Aug 02:23
· 17 commits to main since this release

⚠️ Superseded — downloads removed

This version had a startup bug that could make the app close instantly with no error message,
on machines where Windows' own bundled ONNX Runtime got loaded instead of the one shipped with
the app. There was no way for a user to tell what had gone wrong.

The binaries have been deliberately removed from this release so nobody installs it by
accident. The tag and source snapshot are kept, so this version stays reproducible.

➡️ Get the latest release
instead.
It fixes the crash, and reports the problem clearly if anything like it ever happens
again.


Hold Ctrl+Win anywhere, speak, let go — your words appear at the cursor. Entirely on your own
machine: no account, no cloud, no telemetry.

This is the first public release. The dictation core is solid and used daily by its author; the
packaging around it is new. Rough edges expected, bug reports very welcome.

Download

HoldToSpeak-0.1.0-x64-setup.exe Installer. Per-user — installs to %LOCALAPPDATA%, never asks for admin rights.
HoldToSpeak-0.1.0-x64.zip Portable. Unzip and run nib-core.exe.

Requires Windows 10/11 (x64) and a microphone. On first launch it downloads the speech model
(~460 MB, once) and tells you it is doing so. After that it needs no network at all.

⚠️ These binaries are not code-signed

Windows SmartScreen will show "Windows protected your PC" on first run. Click
More info → Run anyway. Code signing costs money and is on the list; until then, verify what
you downloaded against these hashes, or build from source:

HoldToSpeak-0.1.0-x64-setup.exe  F2112FFFF57DC743F4DE4BF201F3F4340584612586FF79790F28FDD9CFD92049
HoldToSpeak-0.1.0-x64.zip        550954A95114D47C9F8CDD3DA93F327F631D26B256140B50CCDA79E3D0C9DF73
Get-FileHash .\HoldToSpeak-0.1.0-x64-setup.exe -Algorithm SHA256

What's in it

  • Push-to-talk dictation — hold Ctrl + Win, speak, release. A 400 ms look-back buffer means
    your first word is never clipped by a late key press.
  • Works in the apps that usually break — terminals, WSL, IDEs, browsers, chat apps — by
    choosing a text-injection route per target instead of relying on clipboard-paste-and-hope.
  • Never rewrites your commands — focused on a terminal or code editor, dictation drops to
    verbatim automatically, so kubectl get pods -n kube-system stays exactly that.
  • Refuses password fields — detected live via UI Automation. If the focused control is a
    credential field, nothing is typed.
  • Learns your jargonlearn cube ctl => kubectl fixes it permanently, in a plain-text file
    you can edit.
  • Tells you when it can't help — dictating into an elevated window gives you "text kept, not
    inserted" rather than a silently swallowed sentence.
  • Tray icon for cleanup modes and overlay themes, and an optional start-with-Windows toggle.

Privacy

Your voice never leaves your machine, and PRIVACY.md
exists so you can verify that rather than trust it. There is exactly one network request in the
entire product — the one-time model download — from one hard-coded URL, verified against a pinned
SHA-256. No update check, no license server, no usage ping. Unplug the network after setup and
everything still works.

One limitation stated plainly: audio is currently written to a single temporary WAV file for the
duration of one transcription, then deleted. Passing it through shared memory instead is the
intended design and is not done yet.

Known limitations

  • Unsigned binaries — SmartScreen warning, as above.
  • English only, CPU only. GPU acceleration and more languages come later.
  • Windows only. Every Win32 call is confined to one crate behind a trait wall (enforced in CI),
    which makes a macOS port a swap rather than a rewrite — but that port does not exist yet.
  • No settings GUI yet; configuration is hand-edited TOML in %APPDATA%\HoldToSpeak\.

Licensing

MIT. The speech model
(NVIDIA Parakeet TDT 0.6B v2) is separately licensed CC-BY-4.0 and is downloaded on first run
rather than bundled. The shipped sherpa-onnx runtime is deliberately built without espeak-ng to
keep GPLv3 code out of the distribution, and the packaging script refuses to build if it detects
otherwise. Full details in
THIRD-PARTY-NOTICES.md.