Offline · Open source · Written in Rust

Say it.
It runs.

Dicturs listens to your microphone and runs your shell commands when you say their keyword. Speech recognition runs on your machine with whisper.cpp: nothing leaves your computer.

● listening
heard“open browser”
matchedopen browser
runs$ xdg-open https://duckduckgo.com

See it in action

The desktop app, in dark and light mode. Click a screenshot to browse them all.

Commands and categories

One config, three apps

Install only what you need: each one is a separate binary.

$ dicturs add "open browser" "firefox"
added #12
$ dicturs say "open browser" --dry-run
⇒ open browser (100%): firefox
$ dicturs listen

Command linedicturs

Script everything: add, toggle and list commands, listen headless as a service, simulate phrases, manage models.

─ Commands ─ Listen ─ Settings ─
●open browserApps/Web
●volume upSystem/Audio
○take screenshotDesktop
●stop listeningDicturs

Terminal UIdicturs-tui

A fast ratatui interface with mouse support: categories tree, live transcription log, settings, models and launchers.

Desktop appdicturs-gui

A light native window built with egui, which follows your system dark or light mode.

Everything a voice launcher needs

Private by design

whisper.cpp runs locally, from the tiny model to large-v3-turbo. No cloud, no account.

Your shell, your aliases

Commands run in bash, zsh, fish or nushell with your aliases and functions loaded.

Categories and toggles

Organize commands in nested categories; switch a command or a whole category off without deleting it.

Arguments by voice

{args} receives the words said after the keyword: “search for rust tutorials”. Only letters and digits get through.

Built-in voice controls

“stop listening”, “change model small”, “change language french”, “dry run”.

Launcher integration

Pick or toggle commands from wofi, rofi, fuzzel, tofi, bemenu, walker, dmenu or fzf, and install them from the app.

Fuzzy matching

Accents, punctuation and small recognition errors are forgiven. Add an optional wake word.

Speaks your language

The recognition language follows your system locale. Sample commands come in English or French.

Up and running in a minute

    1

    Install

    Run the install script, or build from source with Cargo.

    2

    Pick a model

    “dicturs model use base” downloads a speech model (142 MB).

    3

    Talk

    Open the terminal or desktop app, turn on the samples you like, and start listening.

Install

Linux and macOS (x86_64 and arm64). Windows builds (x86_64 and arm64) are on the releases page.

$curl -fsSL https://dicturs.app/install.sh | sh

Installs dicturs, dicturs-tui and dicturs-gui into ~/.local/bin. Choose binaries and folder:

$curl -fsSL https://dicturs.app/install.sh | sh -s -- --bins cli,tui --dir ~/bin

Then download a speech model:

$dicturs model use base && dicturs-gui

Questions

Does it send my voice anywhere?

No. Audio is captured, cut into phrases and transcribed locally by whisper.cpp. Only the commands you configured run.

Which model should I use?

“base” is a good start for short commands on any CPU. “small” is more accurate; “large-v3-turbo” is best with a GPU.

Does it work with PipeWire / WirePlumber?

Yes, through ALSA. If the default device is silent, set input_device to “alsa:pulse” and check that your microphone is not muted.

Can a spoken phrase inject shell code?

No. Arguments keep only letters, digits and spaces before they reach your command.

Can I use another speech engine?

Yes: the “external” engine runs any program that prints a transcription, such as Vosk or faster-whisper.