Fast, local, private voice dictation for macOS and Windows.
Talk into any text field. Instantly. Without cloud, accounts, or privacy trade-offs. dybur.com
- 100% Local - Speech recognition runs entirely on your device using state-of-the-art ONNX models
- Universal - Inject text into any application via hotkey
- Private - No cloud, no accounts, no telemetry
- Fast - Sub-second transcription latency
- Multilingual - Supports 25 European languages with automatic detection
- Smart - Automatic punctuation and capitalization
- VAD - Voice Activity Detection filters silence for better accuracy
Download the latest release from GitHub Releases.
- Launch the app (or run
dybur startfrom CLI) - Focus any text field
- Press
Ctrl+Shift+Space(default hotkey) - Speak
- Press the hotkey again to stop (or release if using push-to-talk mode)
- Text appears in the active field
dybur supports two recording modes:
- Toggle (default): Press the hotkey to start recording, press again to stop
- Push-to-Talk: Hold the hotkey to record, release to stop and transcribe
You can switch modes from the tray menu (Recording Mode) or by editing the config file.
VAD automatically filters silence and background noise before transcription, improving accuracy and reducing processing time. It uses the lightweight Silero VAD model (~2MB) running locally via ONNX.
VAD is enabled by default. Toggle it from the tray menu or via CLI:
dybur vad # Toggle VAD on/off
dybur vad on # Enable VAD
dybur vad off # Disable VAD
dybur vad status # Show VAD settingsAll settings and controls are available from the tray menu or via CLI:
dybur start # Start background service
dybur stop # Stop service
dybur status # Check service health (alias: s)
dybur settings # Open config file (alias: config)
dybur doctor # Run diagnostics (alias: diag)
dybur models # Manage speech models (alias: m)
dybur devices # Manage input devices (alias: d)
dybur vad # Toggle Voice Activity DetectionConfig file location:
- macOS:
~/Library/Application Support/dybur/config.json - Windows:
%APPDATA%\dybur\config.json
{
"hotkey": "Ctrl+Shift+Space",
"autoPunctuation": true,
"sentenceCase": true,
"silenceTimeoutMs": 1000,
"model": "parakeet-tdt-v3-int8",
"clipboardCleanup": true,
"recordingMode": "toggle",
"vadEnabled": true,
"vadThreshold": 0.5,
"vadMinSpeechMs": 250
}| Option | Values | Description |
|---|---|---|
hotkey |
Key combo | Global hotkey to trigger recording |
autoPunctuation |
true/false |
Automatically add punctuation |
sentenceCase |
true/false |
Capitalize first letter of sentences |
silenceTimeoutMs |
Number | Silence detection timeout (ms) |
model |
Model name | Speech recognition model to use |
clipboardCleanup |
true/false |
Restore clipboard after text injection |
recordingMode |
"toggle"/"push_to_talk" |
Recording behavior mode |
vadEnabled |
true/false |
Enable Voice Activity Detection |
vadThreshold |
0.0-1.0 |
VAD sensitivity (higher = stricter) |
vadMinSpeechMs |
Number | Minimum speech duration to keep (ms) |
dybur supports multiple speech recognition models. You can switch models from the tray menu or via CLI:
dybur models list # List available models
dybur models switch # Select a model interactively| Model | Size | Languages | Description |
|---|---|---|---|
parakeet-tdt-v3-int8 |
~670 MB | 25 | Default. Multilingual transducer, balanced accuracy |
parakeet-tdt-v2-int8 |
~660 MB | English | Fast English-only transducer |
nemotron-streaming-int8 |
~660 MB | English | Low-latency streaming transducer |
whisper-large-v3-turbo-int8 |
~1.1 GB | 99 | OpenAI Whisper, broad language support |
whisper-large-v3-turbo-fp16 |
~1.6 GB | 99 | Whisper FP16, higher accuracy |
Models are downloaded automatically on first use.
- macOS: 10.15+ (Catalina or later)
- Windows: 10/11
- Microphone: Required for dictation
- Disk: ~700 MB - 1.6 GB depending on speech model
On first launch, macOS will prompt for the following:
- Administrator Password - To install the
dyburCLI command to/usr/local/bin(one-time setup, can be skipped) - Microphone Access - Required for voice recording during dictation
- Accessibility - Required for injecting text into applications (System Settings → Privacy & Security → Accessibility)
- Node.js >= 18.0.0
- pnpm 8.10.0+
- Rust (for building the tray application)
dybur/
├── apps/
│ ├── cli/ # Rust CLI binary (sidecar for tray app)
│ └── tray/ # Tauri 2.0 tray application
├── packages/
│ ├── cli/ # Node.js CLI (@dybur/cli)
│ ├── config/ # Configuration management
│ └── core/ # Core business logic
└── scripts/ # Build and utility scripts
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run tests
pnpm test
# Lint code
pnpm lint
# Type check
pnpm typecheckcd apps/tray
pnpm tauri build- All speech processing happens locally on your device
- Audio never leaves your computer
- No cloud services, no accounts required
- No telemetry or analytics
- Logs contain no speech content
MIT