sensor — by Filament

Hold a key, speak,
text appears.

Voice dictation for Linux that actually works on GNOME Wayland. Runs entirely on your machine. Installs with one command — and removes just as cleanly.

demo.mp4
20 seconds, with sound: hold the key, speak, text lands
Recorded in real time, with audio. No cuts, no speed-up.
$ curl -fsSL https://sensor.filamentplatform.com/install.sh | sh

Ubuntu 24.04 and Debian, x86-64 · Read the script first · or download the .deb

The script only downloads the package and hands it to apt — apt does the installing, which is what lets apt undo it.

Why this exists

Dictation on Linux is a graveyard of half-working projects. Not because transcription is hard — that problem is solved — but because the last mile isn't. Every alternative is a git clone, a Python environment, and a list of manual sudo steps that ends with "now edit your udev rules."

And most of them don't run on GNOME Wayland at all, which is the default desktop on the most popular Linux distribution.

sensor is the same transcription everyone else uses, packaged like software you'd actually install.

What you get

Works on Wayland

And X11, KDE, and a bare tty. Reads input below the compositor, so there's no desktop it doesn't support.

~700ms

Key release to text on a laptop with no GPU. The model stays warm in a daemon.

Nothing leaves

Transcription is on-device. The daemon runs with no network namespace at all — it cannot transmit.

Shows its work

A window with the on/off switch, your microphone, and the last few things it heard. Nothing hidden.

Deletes cleanly

One command removes every file, rule, and group change. Including the ones the installer made.

What it touches on your system

sensor reads every keystroke and can synthesise keystrokes. That's inherent to any global-hotkey tool on Linux, and you deserve to know exactly what it does before you install it.

Path or changeWhat for
/usr/bin/sensord
/usr/bin/sensorctl
The daemon and the CLI.
/usr/lib/udev/rules.d/99-sensor.rulesGrants the input and uinput groups access to the device nodes.
/usr/lib/modules-load.d/sensor.confLoads the uinput kernel module at boot.
/usr/lib/systemd/user/sensord.serviceRuns the daemon as you, never as root.
group membershipAdds you to input and uinput. Recorded, so removal reverses only what was added.
~/.local/share/sensor/The speech model, downloaded once (~75MB).
~/.config/sensor/configYour settings.

Why device-level access at all: Wayland deliberately forbids applications from reading global keys or injecting keystrokes, and the protocol that some tools use for it is refused by GNOME. Reading /dev/input and writing /dev/uinput sits below the compositor, which is why it works everywhere.

Removing it

$ sudo apt purge sensor

Removes the binaries, the udev rule, the systemd unit, the model, your settings, and the group memberships the installer added. Nothing is left behind.

This is listed as prominently as the install because it should be. A tool that reads your keystrokes should be cheap to walk away from — that's what makes it reasonable to try in the first place.

Using it

Hold Right Alt + ., speak, release.

A chord rather than a single key, because single keys are all taken: a lone modifier gets grabbed by browsers, and a lone ordinary key steals a character from whatever you're typing. This one collides with nothing and is still a one-handed press.

Everything is in the settings window — hotkey, microphone, on/off, and what it just heard. Open sensor from your applications.