OpenWhispr 1.9.0
🌟 Highlights
🗣 One Voice Assistant
The separate always-on-top chat window is gone. The dictation pill is now the single entry point: speak a command and the answer streams into a floating panel with the chat's full toolset — search and edit your notes, check your calendar, search the web, use your clipboard, and remember context when you're signed in. Highlighted text is still rewritten in place. Follow up by typing or by pressing the hotkey again to speak into the same conversation, and everything is saved and resumable. Your custom dictionary now reaches the assistant too, so replies come back using your names and jargon.
The pill itself is redesigned: an idle orb that grows into a capsule with a live, level-driven waveform while you speak, a processing state that never jumps around mid-cycle, and cancel right where you're looking.
🚀 Guided setup, rebuilt
First run now walks you through sign-in, permissions, language, use cases, hotkey capture, and live dictation and assistant demos — then sets you up on OpenWhispr Cloud, your own API keys, a local model, or your organization's enterprise config, validating providers as it goes and downloading models in the background. Signing back in later uses the same compact screen instead of a form buried in a full-size window.
📝 Notes that know who said what
Meeting notes are generated with real speaker names instead of guesses: every transcript line carries its resolved speaker, your own track carries your name, and the prompt is forbidden from inventing identities — so notes stop assuming you're whoever got named in conversation. Action items generate with an owner attached, and typing @ in any note opens a picker of your attendees and known speakers that exports as a readable link.
The notes surface also got a design pass — a voice-reactive recording pill, a translucent bottom bar your content scrolls under, and voice notes recorded straight into the chat input for review before you send.
⏹ Meetings that end themselves
Forget to stop a recording and OpenWhispr now notices the call is over — your meeting app released the microphone, both audio channels went quiet, or the app exited — and ends it after a 60-second countdown you can cancel with Keep recording. Remote voices still playing defer the countdown, so a quiet-but-live meeting is never cut short.
✨ Also new
- Timestamped transcripts and SRT export for uploads — Audio you upload or ingest from a URL, transcribed with your own OpenAI, Groq, or Mistral key, now keeps segment timestamps, so the Transcript tab and SRT/TXT/JSON/MD export light up automatically.
- In-person meetings get speaker labels — Recordings with everyone in the room and no call used to finish with no speakers at all.
- A redesigned "Coming up" sidebar — Day cards with a today marker, attendee avatars with RSVP state, and a "Join & take notes" button.
- New note directly inside a folder — The same hover "+" that spaces already had.
🎙 Dictation, fixed where it mattered
- If dictation has been failing since 1.8.2, this fixes it. Every dictation configured for OpenAI realtime transcription — the default — failed outright with an
Unsupported realtime token providererror. Provider routing now has a single source of truth. - Local transcription stops thanking you for watching. whisper.cpp's anti-hallucination thresholds are now sent on every request, cutting hallucinated tails from 2.25% to 0.06% across the reporter's 4,814 real dictations.
- Your phone is no longer mistaken for your microphone. A phone offered through Continuity was auto-selected over your real mic and produced empty transcripts.
- A blank model reply never eats your text, and stray
<think>tags stop leaking into your titles and notes.
🐧 Linux
- Push-to-talk on Wayland — Hold-to-dictate now works on Hyprland, KDE, and GNOME 48+.
- Hyprland's Lua config is supported — On 0.55+ (and Omarchy), your shortcut no longer vanishes on reload.
- Auto-paste works on non-QWERTY layouts, and dictated text stays on the clipboard when automatic paste can't land.
- Punctuation hotkeys bind on GNOME and KDE, Ptyxis and GNOME Console paste correctly, KDE paste stops stalling up to 19 seconds on a stale portal session, and Sway overlays keep your text field focused.
🪟 Windows
- Dictation pastes into the window you recorded from, even if something else steals focus while transcription runs.
- Whisper models work under non-ASCII and redirected profiles — a CJK or Cyrillic user name used to crash local transcription.
- Packaged builds stop printing logs to your terminal (use
--console-logsif you want them).
🛠 Fixes & polish
- GPU acceleration — 1.8.3's multi-GPU regression is fixed: Vulkan pins to your discrete GPU instead of integrated graphics, NVIDIA detection finds
nvidia-smioff PATH, and packs cleared during the upgrade are announced instead of silently deleted. A downloaded pack now engages with or without the env flag, and the "GPU available" banner only appears when cleanup actually runs locally. - AI models — Retired Groq and Tinfoil models are gone from the picker, Gemini 3.5 and 3.1 Flash Lite replace the Flash Lite Google retired, gpt-oss on Tinfoil works again, browsing provider tabs no longer switches your active model, and timeouts and flaky DNS retry instead of failing outright.
- Calendar — Recurring Outlook meetings have names again, personal time blocks stop prompting you to record, Join recognizes Zoom webinars and Teams
/meet/links, all-day events sit on the right day, and a mismatched sign-in fails immediately instead of spinning for two minutes. - Notes — Cancelling an upload actually stops the work, the chat panel no longer covers what you're reading, generated titles lose their stray quotes, and mirrored Markdown survives line breaks in titles, locked files, and folder names containing
... - Elsewhere — Turning off App updates now actually stops update checks, a wedged background service can't spin at 100% CPU forever, and
zh-Hans/zh-Hantsystem locales get the Chinese interface.
🙏 Thanks
Thanks to @boseq, @clarkmaan, @hsusul, @IdrisGit, @xAlcahest, @xlurie, @Trevor-K-Smith, @Chadpiha, @greatcoat and @stantheman0128 for their work on this release — and a warm welcome to first-time contributors @xpipko, @AdityaPainuli, and @Biotech-Basti! 🎉