Changelog

Newest first. Summaries are written by AI.

  1. v1.6.0

    A new milestone

    Redesigned settings window and onboarding, with light and dark appearances and automatic saving; as a Mid-Autumn Festival gift, AI polish is now open to free users; Claude Opus 5.5 reviewed the code and tested it end to end, making recording and text insertion more reliable.

  2. v1.5.7

    Holding no longer gets interrupted

    Fixed speech input getting interrupted for no reason while holding the hotkey (some window-manager and input-method combinations were clearing the Option key state; now Tab's physical key state is the source of truth); Apple's on-device engine switched to the dictation model, so custom vocabulary actually takes effect; switching engines no longer leaves the previous sentence behind; word corrections can now use Apple Intelligence to generate misheard variants; Soniox error handling aligned with the official docs; the settings window is now a fixed size and no longer jumps around.

  3. v1.5.6

    No recordings kept in the cloud

    Cloud recordings and job records are now automatically deleted right after async transcription finishes; Apple's on-device live preview no longer lags and no longer crashes on unsupported languages; Soniox fully switched to v5 with automatic migration of old v4 configs; misheard spellings of the brand name "Voilà" are now auto-corrected.

  4. v1.5.5

    Empty fields get voice input

    Fixed voice input doing nothing in empty text fields in system apps like Messages — when an empty field can't be read via the Accessibility API, Voilà now automatically falls back to the clipboard to complete the paste.

  5. v1.5.4

    Accented letters no longer split

    Fixed words with accented letters (à/é/ç/ü/ñ, etc.) or apostrophe contractions (qu'il, don't) in the edit-window vocabulary list getting split into fragments — so multilingual words stay whole.

  6. v1.5.3

    No dropped words on slow networks

    Fixed an issue where, on slower networks, the first voice input right after launching the app would occasionally only paste the first word or two — cold starts now wait a bit longer for the final result before pasting, with no change to speed on a normal warm connection.

  7. v1.5.2

    Overlay remembers its position

    Drag the preview window in settings to save the overlay's position, remembered separately per display; also fixed the preview window occasionally lingering on screen after text was pasted.

  8. v1.5.1

    Smoother delayed-paste editing

    Fixed the delayed-paste E (edit) / Enter (paste) shortcuts to be more responsive — pressing right before the text appears is now caught properly instead of leaking a stray character into Sogou, Baidu, and other input methods; recognition is clearer too.

  9. v1.5.0

    Soniox v5 + no cutoffs

    Speech engine upgraded to Soniox v5: more accurate mixed-language recognition; a mid-sentence pause during long dictation no longer cuts you off — text only finalizes and pastes once you let go.

  10. v1.4.1

    Stability improvement

    Background resource scheduling improved: idle periods now free up resources automatically for lower power use and less background activity, while the hotkey still restores everything instantly when needed.

  11. v1.4.0

    Optional polish, more providers

    This release adds a choice before your text is pasted — send the transcription through an LLM for polish first, then paste. Press Polish ⌘B at the bottom of the "Edit before paste" window to trigger it; skip it and things work exactly as before. The provider lineup now includes OpenAI / Anthropic / Gemini / Groq, plus any OpenAI-compatible endpoint — proxies, self-hosted vLLM / Ollama, internal company gateways, all supported. Custom providers can now include an Extra JSON block in the request body for extra fields (reasoning_effort / enable_thinking / top_k, etc.), with built-in templates grouped by vendor. Also fixed a few positioning issues on multi-monitor setups: the edit window opened with E on a secondary display no longer jumps back to the main display, and the overlay now re-corrects its position automatically when screens or Spaces change. Special thanks to vfasky for requesting multi-provider polish.

  12. v1.3.4

    No more pointer jumps

    Fixed the annoying "pointer jumps at the moment of paste" bug — the mouse getting flung somewhere else on screen right as a transcription pastes is gone. "Delayed paste" now supports 0.5-second steps, from a minimum of 0.5s up to 5s, with the countdown ring showing sub-second precision. Keyboard experience in the edit window got polished: the paste button now shows a ⌘⏎ hint, cancel shows ⎋, and Tab / Shift+Tab move focus out of the text editor. Special thanks to Yumi for the clear repro steps on the pointer-jump bug.

  13. v1.3.3

    Keepalive toggle + stability

    Soniox settings gained a "Keepalive Connection" option: after recording, keep the connection up for 1 / 5 / 10 minutes to skip the roughly 500ms handshake next time, or set it to "Off" to close immediately after each use, so no idle connection time goes on your bill. "Pre-warm microphone" is now on by default, so you can start talking the instant you press the hotkey the first time. Granting Accessibility permission mid-recording no longer triggers an auto-restart that cuts you off. ElevenLabs now feeds your vocabulary list to the model as keyterms for steadier recognition of proper nouns.

  14. v1.3.2

    Context tags + vocabulary editor

    Soniox gained "Context tags": use domain / topic / role to tell the model what field you're speaking in, noticeably cutting misrecognition of technical terms. The vocabulary list is now a chip-based editor — type to add, click × to remove — with batch edits saved in one shot instead of triggering repeated reconnects. All four provider settings pages got a unified card layout, down to a single scrollbar per page. Also fixed a bug where Soniox's stt-async-v4 async mode had audio swallowed by a false reconnect from the first-token watchdog.

  15. v1.3.1

    One-click activation + mic pre-warm

    After purchasing a license, click the "One-click activation" button in your email and the browser launches Voilà straight into activation — no more downloading a file and dragging it in by hand. Added a "Pre-warm microphone" toggle: turn it off and Voilà stops holding the microphone while idle, so the menu-bar recording indicator disappears too — useful for privacy-conscious users and the macOS 14.x echo scenario. Volcengine connection-test errors are now passed through as-is, so credential problems are obvious at a glance.

  16. v1.3.0

    Delayed paste

    Added a "Delayed paste" mode: after you finish speaking, preview the text in the edit window first and paste it with a hotkey once it looks right — no more being stuck with misrecognized words in a terminal or IDE. Pro settings now auto-restore from a snapshot on downgrade/upgrade, and config export was upgraded to Base64 encoding while staying compatible with the old import format.

  17. v1.2.0

    French + paste rewrite

    Voilà now speaks French. The paste flow was rewritten: Voilà now snapshots your clipboard in memory before pasting and restores it afterward, so transcribed text never clobbers whatever image or text you had copied. "Paste last result" can now be turned off, and clearing a hotkey no longer gets silently reset back to its default.

  18. v1.1.6

    Subtitle upgrade

    Subtitle mode now rides out network hiccups — the overlay no longer disappears on disconnect, instead switching to an orange "reconnecting" state and quietly retrying for up to 12 minutes, picking transcription back up the moment the network returns. Only enabled for Soniox and Apple Speech, since other engines don't support persistent sessions. Also sped up the overlay fade-out to 0.25 seconds and extended the pre-connection idle timeout to 15 minutes.

  19. v1.1.5

    New feature

    Added subtitle mode: transcribe only, no auto-paste — handy for meeting notes, captioning videos, or reading along in a foreign language. Pressing ESC in toggle mode finally stops recording gracefully. System-volume ducking got an AppleScript fallback for audio devices that misreport their volume as zero.

  20. v1.1.4

    Stability + polish

    Fixed an issue where recording would occasionally come back blank after the app had been idle for a while. The AI polish prompt was rewritten: it no longer follows instructions like "help me fix this in French" as literal commands, no longer echoes the original text with an arrow, no longer wraps abbreviations like 70B / API in backticks, and casual words like "okay" or "could you" are no longer deleted as filler.

  21. v1.1.3

    Multilingual

    Volcengine can now be pinned to a single foreign language (French, German, Japanese, Korean, Spanish, Russian, Arabic). For mixed-language speech or overseas networks, Soniox is still the smoother choice. French connector words like donc, voilà, and enfin used to get deleted as filler — they're now kept.

  22. v1.1.2

    Stability

    Volcengine no longer drops words on the first recording after switching to it, and its connection is more stable overall. API keys for every engine now unlock the menu bar the instant you save them — no need to quit and reopen the app.

  23. v1.1.1

    UX upgrade

    Custom vocabulary edits take effect immediately, no restart needed. Apple's on-device engine now reads your vocabulary too, noticeably improving hit rates for proper nouns. On macOS 26, onboarding now defaults to the on-device engine, and multi-language mode ships with French on by default.

  24. v1.1.0

    New feature

    Integrated macOS 26's SpeechAnalyzer engine: runs entirely on-device, no network, no uploads, no cost, with recognition quality close to a large Whisper model and solid support for long sessions. Settings and onboarding now offer a choice of engine, with models downloaded by the system on demand.

  25. v1.0.4

    Stability

    Fixed an issue where switching STT engines could occasionally get pulled back by a "ghost reconnect": the old provider's disconnect task ran after the new connection was already up, killing it by mistake. Switching is now serialized — the old connection fully closes before the new one connects.

  26. v1.0.3

    UX improvements

    Soniox now lets you pick a service region (US, EU, Japan; US by default) right during onboarding. Added a microphone-selection step — pin a specific device or follow the system default. ⌥+Tab added to the hotkey presets.

  27. v1.0.2

    Emergency fix

    The watchdog introduced in the last release backfired: it killed any connection that went 30 seconds without a message, but keepalive is one-way — the server was never going to reply — so after sitting idle for a bit, you'd press the hotkey only to find Voilà had already killed the connection itself. This release shuts down that dead end and hands dead-connection detection back to the two paths that were already doing the job.

  28. v1.0.1

    Stability fixes

    Pressing the hotkey on a Mac mini with no built-in microphone and nothing plugged in no longer crashes — it now shows "No microphone detected." Added a 30-second zombie-connection check for ElevenLabs and Volcengine. License-state changes now force a restart, so Voilà never gets stuck on stale state.

  29. v1.0.0

    First release

    Voilà is officially here. Choose from 5 STT engines (Soniox, ElevenLabs, Volcengine, Groq, Apple Speech), hold a hotkey to speak, let go to paste. Mixed Chinese/English/French/Japanese dictation, AI polish, and a terminal-paste path built specifically to dodge CGEvent dropping keys during heavy rendering. Auto-updates via Sparkle.