๐Ÿฆ€ Rust๐Ÿ”Š PipeWire๐Ÿง Wayland

Voice to text,
from your terminal.

dictate is a signal-driven CLI that transcribes your voice using Mistral, Groq, or local Whisper โ€” then pipes clean text to stdout. One keybind. One signal. Done.

Give this prompt to your coding agent to install and setup dictate

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'.
Claude CodeCursorCopilotWindsurfGemini CLI
or install manually
curl -fsSL https://dictate.adityamer.dev/install.sh | sh

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.
bind = SUPER, R, exec, ...
02
Speak
dictate records from PipeWire. Audio beeps confirm recording start.
โ™ซ recording started
03
Signal
Press again. SIGUSR1 stops recording and sends audio to your provider.
pkill --signal SIGUSR1 dictate
04
Get text
Transcribed text piped to stdout โ€” clipboard, direct typing, or any command.
stdout โ†’ wl-copy | ydotool

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.
Audio feedback
Musical beeps confirm recording start, stop, and success. Configurable volume or fully disabled.
Multi-provider
Mistral (default), Groq, or run Whisper locally. Switch with a single config value.
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.

Get started

More ways to install and configure dictate.

recommended
Give INSTALL.md to your AI agent

Paste this prompt into your coding agent. It reads INSTALL.md, asks you setup questions (provider, API key, compositor, output mode), then installs and configures everything non-interactively.

agent prompt
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'.

The agent uses dictate config set for each setting. Zero interactive prompts needed.

Claude CodeCursorCopilotWindsurfGemini CLI
fallback
Install script

One command โ€” detects your distro, installs dependencies, downloads the binary, and walks through interactive setup.

bash
$curl -fsSL https://dictate.adityamer.dev/install.sh | sh
ArchUbuntuFedoraDebianopenSUSEAlpineVoid
โ–ธ env overrides
DICTATE_BUILD_FROM_SOURCE=yes
DICTATE_BUILD_FEATURES=local
DICTATE_INSTALL_DIR=/usr/local/bin

Quick reference

The commands you'll actually use.

Copy to clipboard
dictate --pipe-to wl-copy
Type into focused window
dictate --pipe-to ydotool type --file -
Trigger transcription
pkill --signal SIGUSR1 dictate
Configure provider
dictate config set provider mistral
Set API key
dictate config set mistral-api-key YOUR_KEY
Generate keybind
dictate shortcuts hyprland --mode type --key SUPER,R