OmniVox v0.5.0 is outSee what shipped

Dictation that never leaves your machine

Local-first dictation for Windows. Whisper and Qwen run on your own hardware, so the audio, the transcript and the text you paste never leave the machine you installed it on.

  • Windows 10/11
  • v0.5.0
  • 10 MB
  • Free during early access
The overlay, actual size — 42 px idle

OmniVox turns speech into text entirely on your own machine. The models live on your disk, the audio never leaves it, and there is no account, no API key and no telemetry to opt out of.

  • 11Speech models

    Whisper, from tiny through large-v3-turbo. Pick the one your hardware can hold — all of them run locally.

  • 99Languages

    Transcribe in any of them, or translate straight into English on the way out.

  • 0Network calls

    Once the models are on disk, nothing dials out. The app's content-security policy admits exactly three HuggingFace hosts — the ones that serve model weights — and no other origin at all.

Capture

Hold Ctrl + Alt anywhere in Windows and start talking.

The hotkey is registered with the operating system rather than with an app, so it fires the same in your editor, your terminal and the reply box you already had focus in. The pill sits above the taskbar as a 42-pixel slit and expands only while it is listening — nothing to switch to, nothing to switch back from.

  • Ctrl
  • Alt
What shipped in v0.5.0

Idle 42 px · Listening 148 px

Transcribe

Whisper runs natively on your own CPU or GPU. The audio never leaves the machine.

whisper.cpp, compiled in through whisper-rs — a native binary on your machine, not a wrapper around a hosted API. The catalog runs from tiny to large-v3-turbo, eleven builds in all, and OmniVox matches one to the hardware it finds on first run instead of asking you to guess.

whisper.cpp, the engine underneath

Speech models

11
Matched to your hardware on first run
TinyIncluded

Fastest, lowest accuracy — good on a machine with no GPU.

75 MBQ5_1
Use
BaseActive

The everyday balance of speed and accuracy.

142 MBQ5_1
Active
Small

Noticeably better on technical vocabulary and proper nouns.

466 MBQ5_1
Use
Large v3 TurboRecommended

Best accuracy in the catalog, at large-model speed.

1.62 GBQ5_0
Download

Speech models · main window

Weights stream to a temporary file under a hard size ceiling and are only moved into place once the download completes — so a half-fetched model is never one OmniVox will try to load.

src-tauri/src/models/downloader.rs

Structure

Say “voxify” and the transcript comes back as a filled-in prompt.

A local Qwen3 1.7B Q8 reads what you actually said and reshapes it into slots — goal, files, constraints, urgency. Decoding is constrained by a GBNF grammar, so the model can only emit the shape you asked for. It cannot drift into prose, and it cannot invent a field the schema never had.

Qwen3, the model doing the structuring
Structured· AI
Normal2 files
Goal

Fix the auth middleware so a stale JWT refreshes instead of 401ing.

Files
  • src/middleware/auth.ts
  • src/lib/tokens.ts
Constraints
  • Must not break the refresh-token flow
  • No new dependencies
PasteRawCopyEditDismiss

Structured panel · overlay, actual size

The installer is not code-signed. What the install script does instead is check the digest GitHub reports for the file it actually downloaded — a guarantee we can keep.

public/install.ps1

Land

The text arrives in the window you were already working in.

Type simulation rather than paste: OmniVox synthesises the keystrokes into the focused window, then puts back whatever was on your clipboard before it started. Around twenty-five voice commands ride the same path — say “new paragraph” and you get two Shift+Enters, not the words.

Read the source on GitHub

Editing

19
new paragraphNew paragraphAnywhereAt end
delete last wordDelete last wordAnywhereAt end
bullet pointBullet list itemAnywhereAt end
select allSelect allAnywhereAt end
sendSend (Enter)AnywhereAt end

Voice commands · main window

Context modes

OmniVox for Coding

Vocabulary seeded with the identifiers you say out loud — verifyJWT, Tauri, Qwen3 — so the phonetic pass rewrites what Whisper heard into what you actually type.

Binds to Code.exe · WindowsTerminal.exe

  • Vocabulary
  • Dictionary
  • Snippets
  • Writing style
  • App bindings

A mode is those five things saved together. OmniVox matches the foreground process against each mode’s bindings, so switching windows switches mode — and the modes are yours to define, not a fixed list.

Context Mode

Right-click the pill · menu 196 px, actual size

Privacy architecture

Local by construction — every claim on this page is a line you can read in the source, not a policy you have to trust

OmniVox has no server, no account and nothing to sign into. Below is where to look if you would rather verify that than take it on faith.

On-device inference

whisper.cpp and llama.cpp are compiled into the binary through the whisper-rs and llama-cpp-2 crates. There is no inference API client anywhere in the source — no key to paste, none to leak.

A three-host allow-list

The Tauri webview's connect-src is 'self' plus exactly three HuggingFace hosts, and they only ever serve model weights. Anything else the app tried to reach would be refused by the browser engine, not by a promise.

connect-src 'self' https://huggingface.co https://cdn-lfs.huggingface.co https://cdn-lfs-us-1.huggingface.co

One local SQLite file

History, notes, dictionary entries and your context modes live in omnivox.db in your own app-data folder. Delete a dictation from the History page and it is gone from disk — there is no copy elsewhere.

No telemetry to opt out of

Cargo.toml and package.json list no analytics SDK, no crash reporter and no auth library. The dependency lists are short enough to read in a minute, which is the whole argument.

Downloads you can verify

The install one-liner checks the SHA-256 that GitHub publishes for the asset it just fetched. Model weights stream to a .part file under a hard size ceiling and are renamed into place only once complete.

Source-available

The repository is published for exactly one reason: so the five statements above can be checked instead of believed.

Read the source

Release history

Everything here has already shipped

Each card names the release it landed in. Nothing on this row is planned work, and nothing is a demo that only runs on this page.

Read every release note
  • v0.5.0

    Scratchpad

    An always-on-top pad you can dictate into from any window. Cards or Note view, a voice-reactive mic orb, and contents that survive a restart.

  • v0.5.0

    Keyboard-driven confirm pill

    Enter confirms, Esc dismisses — from an overlay that never takes focus. A message about to be sent shows an editable confirm seeded with what was heard.

  • v0.4.0

    Voice Command Mode

    Speak a command and OmniVox performs it: launch or switch apps, run a search, fire keyboard and media shortcuts. Consequential actions wait behind a confirm.

  • v0.3.1

    Phonetic correction

    Vocabulary stopped being a hint and became a correction. Anything that sounds like one of your entries is rewritten to the entry exactly as you spelled it.

  • v0.2.11

    Analytics

    Lifetime words, day streaks, speaking pace and a contribution heatmap — all computed locally, from history that never leaves the machine.

  • v0.2.0

    Structured Mode

    Raw dictation into a slot-filled Markdown prompt through llama.cpp, held to shape by a GBNF grammar and degrading to plain text on timeout.

Dictation that stays local

No account, nothing to sign into. The installer is 10 MB because the models are fetched once, on first run, and never again.

irm https://tryomnivox.com/install.ps1 | iex

Windows 10 / 11 (x64)4 GB+ RAM · GPU optionalInternet once, to fetch models