It’s written in Go, uses PipeWire for audio, and talks directly to the compositor. The workflow is simple:
press key → start recording
press again → stop and inject text
Notifications show recording/transcribing states, and it works with multiple backends — currently OpenAI Whisper, with whisper.cpp (local/offline) in progress.
Everything runs through a lightweight daemon with IPC over a unix socket. Text injection uses wl-clipboard + wtype with clipboard restore fallback.
Install (Arch/AUR):
yay -S hyprvoice-bin systemctl --user enable --now hyprvoice.service
Then add something like this to Hyprland:
bind = SUPER, R, exec, hyprvoice toggle
Repo: https://github.com/leonardotrapani/hyprvoice
It’s beta but fully usable. I’d love feedback, especially from people running Wayland full-time or maintaining compositors.