Fast, private voice transcription for your desktop
Features • Installation • Usage • Configuration • Development • License
Whipr is a desktop application for fast, local voice transcription. Press a hotkey, speak, and your words are transcribed and pasted directly into any application. All processing happens on your machine—no cloud, no subscriptions, no data leaves your device.
Built with Tauri, Svelte, and whisper.cpp.
- Global Hotkeys — Start/stop recording from anywhere with customizable keyboard shortcuts
- Local Transcription — Powered by whisper.cpp with support for multiple model sizes
- Auto-Paste — Transcribed text is automatically inserted into your focused application
- Transcript History — Search and browse past transcriptions with full-text search
- GPU Acceleration — Optional CUDA, Metal, Vulkan, ROCm, and Intel oneAPI support
- Privacy First — Everything runs locally; no internet connection required
- Cross-Platform — Native builds for Linux, macOS, and Windows
Download the latest .AppImage from Releases, then:
chmod +x Whipr_*.AppImage
./Whipr_*.AppImagePrerequisites:
- Rust (stable)
- Node.js 18+ and npm
- Build essentials:
build-essential,pkg-config,libssl-dev - Audio libraries:
libasound2-dev - WebKit:
libwebkit2gtk-4.1-dev,libgtk-3-dev - Additional:
libayatana-appindicator3-dev,librsvg2-dev
Ubuntu/Debian:
sudo apt update
sudo apt install -y build-essential pkg-config libssl-dev libasound2-dev \
libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-devFedora:
sudo dnf install -y gcc pkg-config openssl-devel alsa-lib-devel \
webkit2gtk4.1-devel gtk3-devel libappindicator-gtk3-devel librsvg2-develArch Linux:
sudo pacman -S --needed base-devel pkg-config openssl alsa-lib \
webkit2gtk-4.1 gtk3 libappindicator-gtk3 librsvgBuild:
git clone https://github.com/green2grey/whipr.git
cd whipr
npm install
npm run tauri buildThe AppImage will be in src-tauri/target/release/bundle/appimage/.
For NVIDIA GPU acceleration:
# Ensure CUDA toolkit is installed
npm install
npm run tauri:build:cudaSet CUDA_ARCH to override auto-detection: CUDA_ARCH=89 npm run tauri:build:cuda
On Wayland, install clipboard and input helpers for auto-paste:
# For wtype (recommended)
sudo apt install wl-clipboard wtype
# Or ydotool
sudo apt install wl-clipboard ydotoolGlobal hotkeys are limited on Wayland. Use GNOME custom shortcuts or the in-app buttons instead. See GNOME Extension for an overlay solution.
Download the latest .dmg from Releases and drag Whipr to Applications.
Prerequisites:
- Xcode Command Line Tools:
xcode-select --install - Rust (stable):
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - Node.js 18+:
brew install node
Build:
git clone https://github.com/green2grey/whipr.git
cd whipr
npm install
npm run tauri:build:macThe .app and .dmg will be in src-tauri/target/release/bundle/.
Note: macOS builds use Metal for GPU acceleration automatically on Apple Silicon.
Download the latest .msi or .exe installer from Releases.
Prerequisites:
- Visual Studio Build Tools with C++ workload
- Rust
- Node.js 18+
- WebView2 (usually pre-installed on Windows 10/11)
Build:
git clone https://github.com/green2grey/whipr.git
cd whipr
npm install
npm run tauri:build:winInstallers will be in src-tauri\target\release\bundle\.
- Launch Whipr — The app starts minimized to the system tray
- Download a Model — Open Settings and download a transcription model (small.en recommended)
- Configure Hotkeys — Set your preferred keyboard shortcuts
- Start Recording — Press your hotkey or click the record button
- Speak — Your audio is captured locally
- Stop Recording — Press the hotkey again; text is transcribed and pasted
| Action | Default | Description |
|---|---|---|
| Toggle Recording | Ctrl+Alt+Space |
Start/stop recording |
| Paste Last | Ctrl+Alt+V |
Paste the last transcript |
| Show App | Ctrl+Alt+O |
Bring the app window to focus |
On macOS, use Cmd instead of Ctrl.
Whipr supports CLI commands for integration with system shortcuts:
whipr --toggle # Start/stop recording
whipr --paste-last # Paste the last transcript
whipr --show # Show the app windowFor GNOME on Wayland, an optional overlay extension provides a recording indicator and quick controls:
./scripts/install-gnome-extension.sh
gnome-extensions enable whispr-overlay@greenuniSee GNOME_EXTENSION.md for details.
Whipr uses whisper.cpp models for transcription. Available models:
| Model | Size | Speed | Accuracy | Use Case |
|---|---|---|---|---|
tiny.en |
~75 MB | Fastest | Good | Quick notes, low-end hardware |
small.en |
~460 MB | Fast | Better | Recommended default |
medium.en |
~1.5 GB | Moderate | Best | High accuracy requirements |
Models are downloaded to:
- Linux:
~/.local/share/whispr/models - macOS:
~/Library/Application Support/whispr/models - Windows:
%APPDATA%\whispr\models
All settings are accessible from the Settings tab:
| Category | Options |
|---|---|
| Audio | Input device, sample rate, gain, noise gate, VAD |
| Hotkeys | Customize all keyboard shortcuts |
| Transcription | Model selection, GPU acceleration, custom vocabulary |
| Automation | Auto-paste, paste delay, clipboard behavior |
| Storage | Data location, audio retention, history cleanup |
Enable GPU acceleration in Settings for faster transcription:
| Platform | Backend | Build Flag |
|---|---|---|
| NVIDIA | CUDA | --features cuda |
| AMD | ROCm/HIP | --features hipblas |
| Intel | oneAPI | --features intel-sycl |
| Apple Silicon | Metal | --features metal (default on macOS) |
| Cross-platform | Vulkan | --features vulkan |
- Rust (stable): https://rustup.rs
- Node.js 18+: https://nodejs.org
- Platform-specific dependencies (see Installation)
git clone https://github.com/green2grey/whipr.git
cd whipr
npm install# Frontend only (hot reload)
npm run dev
# Full Tauri app (recommended)
npm run tauri devwhipr/
├── src/ # Svelte frontend
│ ├── lib/ # Components and utilities
│ └── App.svelte # Main application
├── src-tauri/ # Rust backend
│ ├── src/
│ │ ├── core/ # Audio, transcription, storage
│ │ ├── commands.rs # Tauri IPC commands
│ │ └── main.rs # Application entry
│ └── Cargo.toml
├── gnome-extension/ # GNOME Shell overlay
└── scripts/ # Build and install scripts
# Linux (AppImage)
npm run tauri build
# Linux (CUDA)
npm run tauri:build:cuda
# macOS (DMG)
npm run tauri:build:mac
# Windows (MSI/NSIS)
npm run tauri:build:winNo audio input detected
- Check that your microphone is not muted
- Verify the correct input device is selected in Settings
- On Linux, ensure PipeWire/PulseAudio is running
Transcription is slow
- Try a smaller model (tiny.en)
- Enable GPU acceleration if available
- Check CPU usage; close resource-heavy applications
Auto-paste not working
- On Wayland: Install
wl-clipboardandwtype - On X11: Ensure the target application accepts
Ctrl+V - Increase the paste delay in Settings
Model download fails
- Check your internet connection
- Verify write permissions to the models directory
- Try downloading manually and placing in the models folder
This project is licensed under the MIT License. See LICENSE for details.
Made with Rust, Svelte, and whisper.cpp