Cadence is a small Rust tray app that turns speech into typed text. Hold the trigger key and it records; as you speak it streams the audio to a speech-recognition server running on your own machine and types the result at your cursor. Release the key and it finishes the last phrase. No account, no subscription, no network.

Use it when

You want dictation that works in every application — editor, browser, chat, terminal — without handing your voice to a cloud service.

  • Fully offline: speech recognition runs locally, nothing leaves your machine
  • Types at the cursor in any focused window, Wayland or X11
  • Live streaming — text appears while you are still speaking
  • Hardware accelerated via whisper.cpp on an AMD Radeon iGPU (Vulkan)
  • Free software under the GPL, version 2

Source & full docs on GitHub

What it needs, and why

Dictation needs two permissions that sound alarming in the abstract, so they are worth stating plainly up front. Both are explained in full in the Privacy policy, and the code that uses them is short and readable.

  • Reading the keyboard — to notice the moment you press and release the trigger key. Linux cannot grant access to one single key, so the app joins the input group and reads the keyboard device. It matches only the trigger key and discards every other event.
  • Typing into other windows — to put the transcribed text where your cursor is. This uses a virtual input device, run by a helper the app starts itself and the kernel shuts down the instant the app exits.

Neither capability sends anything anywhere. There is no Cadence server to send it to.