Voice to text,
from your terminal.
A signal-driven CLI for Wayland Linux. Mistral realtime STT by default. One keybind. Speak. Get text. No GUI, no daemon.
voice → text
recommendedAI agent
Read https://dictate.adityamer.dev/INSTALL.md and follow it step by step to install and configure dictate on this machine. Ask me the setup questions first, then execute everything non-interactively using 'dictate config set'.
manualInstall script
// flow
How it works
A single UNIX signal controls the entire flow. No daemon polling, no wasted resources.
01
Bind a key
Assign a keybind in your Wayland compositor. Hyprland, Niri, GNOME, KDE, Sway.
bind = SUPER, R, exec, ...
02
Speak
dictate records from PipeWire. A beep confirms recording has started.
♫ recording started
03
Signal
Press the keybind again. SIGUSR1 stops realtime or finishes a batch clip.
pkill --signal SIGUSR1 dictate
04
Get text
Transcribed text is piped to stdout. Send it to clipboard, type it, or pipe it anywhere.
stdout → wl-copy | ydotool
// features
Built for the terminal
A UNIX citizen. Composable. Zero runtime overhead when idle.
Signal-driven
SIGUSR1 triggers transcription. No polling, no wasted cycles. The process sleeps until you need it.
Pipe anywhere
--pipe-to sends output to wl-copy, ydotool, sed, or any command. Compose however you like.
Realtime by default
Mistral Voxtral realtime WebSocket STT from the keyboard shortcut. BATCH_MODE=true opts out.
Multi-provider
Mistral (default), Groq, or local Whisper. Choose what works for your setup and privacy needs.
Wayland native
PipeWire audio capture. Works with Hyprland, Niri, GNOME, KDE, Sway, and more.
Privacy option
Local Whisper mode. Your audio never leaves your machine. Download GGML models and transcribe offline.