OpenWispr is a local-first desktop dictation app built with Tauri (Rust backend + React frontend).
- Local transcription with Whisper-compatible models
- Floating dictation pill UI
- Menu bar (macOS) / system tray (Windows) app behavior
- Model Manager window for downloading and selecting models
- Personal clipboard preservation while auto-pasting transcription
- macOS (primary)
- Windows
apps/desktop- Tauri desktop app (frontend + native runtime)apps/desktop/src- React UIapps/desktop/src-tauri- Rust runtime, hotkey listeners, audio capture, paste pipelinecrates/stt- STT adapter abstraction and Whisper backenddocs- additional project docs
- Node.js 18+ (Node 20 LTS recommended)
pnpm- Rust stable toolchain (
rustup,cargo) - Platform toolchain:
- macOS: Xcode Command Line Tools
- Windows: Visual Studio Build Tools (MSVC) + Windows SDK
cd apps/desktop
pnpm installcd apps/desktop
pnpm tauri devWhat to expect:
- No main dashboard window opens on launch
- App runs in menu bar (macOS) or system tray (Windows)
- Hold
Fnto start dictation
cd apps/desktop
pnpm tauri buildFrontend:
cd apps/desktop
pnpm buildBackend:
cd apps/desktop/src-tauri
cargo check
cargo testGrant these permissions to OpenWispr/Terminal while developing:
- Microphone
- Accessibility (for global key events and key injection)
- Automation (if prompted, for System Events focus restore)
- Microphone access
- Accessibility/input permissions as required by your security policy
- Models are downloaded automatically when selected/downloaded in Model Manager.
- Default local model cache:
- macOS:
~/.cache/openwispr/models - Windows:
%LOCALAPPDATA%\\OpenWispr\\models
- macOS:
OPENWISPR_MODEL_DIR- custom model directoryOPENWISPR_INPUT_DEVICE- force a specific input device name matchOPENWISPR_FFMPEG_BIN- custom ffmpeg binary pathOPENWISPR_RAWINPUT_DEBUG=1(Windows) - log raw keyboard inputOPENWISPR_FN_VKEY/OPENWISPR_FN_MAKECODE(Windows) - override Fn mapping
- App seems duplicated or stale in dev:
pkill -f "openwispr-desktop-tauri|vite|pnpm tauri dev" || true- then re-run
pnpm tauri dev
- Tray/menu icon appears but no window:
- click tray/menu icon to open Model Manager
- No transcription text:
- verify microphone permissions and selected model download
- Not pasting into target app:
- verify Accessibility/Automation permissions and keep target text field focused before dictation
Licensed under the Apache License 2.0. See LICENSE.