Skip to main content
Back to the lab
Desktop app

LocalDictate

Privacy-first local speech-to-text

View source
TauriRustWhisper

The problem

Dictation tools stream your voice to the cloud and charge a subscription for the privilege. For something you might use in every app, all day, that is a lot of audio leaving your machine.

The build

Hold a hotkey, talk, release — words are transcribed on your own machine by whisper.cpp and inserted wherever your cursor is. Push-to-talk and hands-free toggle modes, a draggable always-on-top status pill, live transcription while you are still talking, and searchable history in a local SQLite database. No cloud, no account, no audio ever leaves the PC.

Stack & choices

  • Tauri v2 · RustWindows app: global hotkeys, tray, audio capture, text insertion
  • whisper.cppLocal transcription — whisper-server keeps the model warm in RAM between dictations
  • SQLiteTranscript history and stats with retention controls
  • WebView2Dashboard UI, bootstrapped automatically by the installer

Process notes

  1. 1

    The warm-transcriber design is the speed trick: whisper-server holds the model in memory so transcription starts instantly, with whisper-cli as the fallback path.

  2. 2

    Live transcription runs phrase-by-phrase in the background while you talk, so text is ready the moment you release the hotkey.

  3. 3

    Deliberately Windows x64 only — written into the README as a non-goal rather than over-building for platforms nobody asked for.

  4. 4

    Privacy is mechanical, not a promise: temp audio is deleted after transcription, and the only network access is the one-time model download you trigger yourself.