How fsouza-dot/openwhisper works
OpenWhisper is a desktop push-to-talk dictation assistant: a global hotkey starts and ends microphone capture, speech is transcribed locally or through Groq, cleanup interprets formatting commands, and text is inserted into the foreground app. The app composition root wires the coordinator to the hotkey and UI. The sampled coordinator source was not provided, so its internal call wiring is not shown; workflow connections reflect the documented product behavior. Settings, history, and platform insertion are additional product capabilities.
Main entry points: app.py App composition · coordinator.py Dictation coordinator · pipeline.py Transcript cleanup · hotkey_manager.py Global hotkey
Components 23
Dictation capture
- Global hotkey
openwhisper/hotkey/hotkey_manager.py - Audio recorder
openwhisper/audio/recorder.py - Dictation coordinator
openwhisper/coordinator.py
Speech and cleanup
- Local Whisper
openwhisper/stt/whisper_provider.py - Groq transcription
openwhisper/stt/groq_provider.py - Transcript cleanup
openwhisper/cleanup/pipeline.py - Text heuristics
openwhisper/cleanup/heuristic.py - Voice commands
openwhisper/commands/interpreter.py - Custom dictionary
openwhisper/cleanup/dictionary.py
Text delivery
- Text insertion
openwhisper/platform/base_inserter.py - Platform adapters
openwhisper/platform
Desktop app
- App composition
openwhisper/app.py - Tray and HUD
openwhisper/ui/tray.py - Settings window
openwhisper/ui/settings_window.py - App settings
openwhisper/settings.py - Credential store
openwhisper/keyring_store.py - Dictation history
openwhisper/history.py - History window
openwhisper/ui/history_window.py - Usage tracking
openwhisper/usage.py
Other components
- User
- Microphone
- Groq API
- Active application
Connections 24
- User → Global hotkey: presses and releases
- Global hotkey → Dictation coordinator: dispatches events
- Dictation coordinator → Audio recorder: controls capture
- Microphone → Audio recorder: provides audio
- Dictation coordinator → Local Whisper: transcribes locally
- Dictation coordinator → Groq transcription: requests transcription
- Groq transcription → Groq API: sends audio
- Dictation coordinator → Transcript cleanup: cleans transcript
- Transcript cleanup → Text heuristics: applies cleanup
- Transcript cleanup → Voice commands: interprets phrases
- Local Whisper → Custom dictionary: uses vocabulary hints
- Dictation coordinator → Text insertion: inserts result
- Text insertion → Platform adapters: uses adapter
- Platform adapters → Active application: pastes text
- App composition → Dictation coordinator: wires service
- App composition → Global hotkey: wires hotkey
- App composition → Tray and HUD: connects UI
- App composition → Settings window: connects settings
- Settings window → App settings: edits configuration
- App composition → App settings: loads settings
- App composition → Credential store: stores credentials
- App composition → Dictation history: owns history
- History window → Dictation history: reads entries
- App composition → Usage tracking: tracks usage