__ __| |__ (_)___ _ __ ___ \ \ /\ / /| '_ \| / __|| '__/ __| \ V V / | | | | \__ \| | \__ \ \_/\_/ |_| |_|_|___/|_| |___/
Press a hotkey, speak, and your words appear at the cursor. Any app, any window manager, any desktop environment.
git clone https://github.com/y0sif/whisrs && cd whisrs && ./install.sh
Groq (free tier), OpenAI REST, OpenAI Realtime (true streaming), and local whisper.cpp for offline use.
Hyprland, Sway, GNOME, KDE, and any X11 window manager. Text goes to whatever app has focus.
Uses uinput + XKB reverse lookup. Respects your keyboard layout and works in any application.
Local whisper.cpp backend. No API key, no internet, no data leaves your device.
OpenAI Realtime backend streams text to your cursor while you speak via WebSocket.
Lightweight daemon runs in the background. Bind the CLI to any hotkey in your compositor.
| Backend | Type | Streaming | Cost |
|---|---|---|---|
| Groq | Cloud | Batch | Free tier available |
| OpenAI Realtime | Cloud (WebSocket) | True streaming | Paid |
| OpenAI REST | Cloud | Batch | Paid |
| Local whisper.cpp | Local (CPU/GPU) | Sliding window | Free |
| Feature | whisrs | nerd-dictation | Speech Note | Wispr Flow |
|---|---|---|---|---|
| Platform | Linux | Linux | Linux | macOS only |
| Wayland support | Yes (native) | Partial (xdotool) | Yes (GUI app) | N/A |
| Offline transcription | Yes (whisper.cpp) | Yes (VOSK) | Yes (multiple) | No |
| Cloud transcription | Groq, OpenAI | No | No | Proprietary |
| True streaming | Yes | No | No | Yes |
| Keyboard injection | uinput + XKB | xdotool | Clipboard paste | Native |
| Window tracking | Yes (5 compositors) | No | No | Native |
| Architecture | Daemon + CLI | Script | GUI app | GUI app |
| Component | Support |
|---|---|
| Hyprland | Tested, full support |
| Sway / i3 | Implemented, needs community testing |
| X11 (any WM) | Implemented, needs community testing |
| GNOME Wayland | Limited (requires window-calls extension) |
| KDE Wayland | Implemented via D-Bus, needs testing |
| Audio | PipeWire, PulseAudio, ALSA (auto-detected) |
| Distros | Any Linux with system dependencies |
Yes. whisrs has native support for Wayland compositors including Hyprland, Sway, GNOME, and KDE. It uses compositor-specific protocols for window tracking and uinput for keyboard injection, so it does not depend on X11 tools like xdotool.
Yes. The local whisper.cpp backend runs transcription entirely on your machine. No API key, no internet connection, and no audio data leaves your device. Run whisrs setup and select the local backend to get started.
Four backends: Groq (cloud, free tier), OpenAI REST (cloud), OpenAI Realtime (cloud, true streaming over WebSocket), and local whisper.cpp (offline, CPU/GPU). More local backends (Vosk, Parakeet) are planned.
Yes. Wispr Flow and Superwhisper are macOS-only dictation tools. whisrs brings the same workflow to Linux: press a hotkey, speak, and text appears at your cursor. It supports both cloud and local transcription backends.
whisrs works on any Linux distribution with the required system dependencies (alsa-lib, libxkbcommon, clang, cmake). It has been primarily tested on Arch Linux but also supports Debian/Ubuntu, Fedora, NixOS, and others.