Releases

Every version of Saydrop.


Each release links straight to its notarized .dmg. The newest is always at Saydrop-latest.dmg.

Security updates for bundled libraries

v0.4.8 Latest

A maintenance release that updates libraries bundled with Saydrop to versions with published security fixes. Dictation behaves exactly as in 0.4.7.

Security

  • Updated anyio to 4.15.1 and transformers to 5.12.1 to pick up fixes for published security advisories.

Requires macOS 14.0 or later · Apple Silicon

Fixed dictations being silently discarded as "no speech"

v0.4.7

Fixed a bug where Saydrop could throw away a real dictation and paste nothing, without any notice.

Fixed

  • The phantom-text filter introduced in 0.4.6 was too eager: it discarded transcripts whenever Whisper’s no-speech signal was high, even for clearly spoken sentences. It now only discards a transcript when it is also far too short for the length of the recording — the signature of a phantom phrase like “Thank you.” on silence. Real dictations are pasted again.
  • When a recording is discarded because no speech was detected, Saydrop now shows a “No speech detected” notification instead of doing nothing.

Requires macOS 14.0 or later · Apple Silicon

Fixed phantom "Thank you" text appearing without you saying anything

v0.4.6

Fixed a bug where Saydrop could occasionally type a stock phrase like “Thank you.” into the focused app even though nothing was said.

Fixed

  • Whisper can confidently “hallucinate” filler phrases on audio with no real speech (a mic pop, a breath, room tone) — and its own no-speech detector gets overridden internally whenever it sounds confident enough. Saydrop now independently checks Whisper’s own per-segment no-speech signal and discards the transcript instead of injecting it when every segment indicates no real speech was heard.

Requires macOS 14.0 or later · Apple Silicon

Fixed the hotkey going silent after a quick cancelled tap

v0.4.5

Fixed a bug where tapping and releasing the hotkey too quickly to start a recording — a lone tap, not a hold — could silently disable the global hotkey until Saydrop was restarted, with no error shown.

Fixed

  • Cancelling a lone tap called the recorder’s native teardown directly on macOS’s event-tap callback thread. If teardown took too long, it overran the tap’s watchdog and macOS disabled the hotkey entirely. Teardown is now always deferred off that thread.

Requires macOS 14.0 or later · Apple Silicon

Fixed cleanup pasting your personal dictionary instead of your dictation

v0.4.4

Fixed a bug where a very short or near-silent dictation could paste your personal dictionary’s word list into the focused app instead of your actual words.

Fixed

  • A near-empty dictation could paste your personal dictionary instead of what you said. When cleanup couldn’t tell whether the app it was pasting into contained the right text, it never checked whether the cleaned-up text made sense next to the transcript. A tiny transcript combined with the dictionary hint in the cleanup prompt could make the model return the dictionary’s term list, which then got pasted as if it were your dictation. Cleanup output is now always checked against the transcript, and falls back to the raw transcript when it looks like an echoed dictionary instead of a real correction.

Requires macOS 14.0 or later · Apple Silicon

Fixed the hotkey silently going dead after a long or stuck recording

v0.4.3

Fixed a bug where the push-to-talk hotkey could stop responding entirely, with no error and no way to recover short of quitting and relaunching Saydrop.

Fixed

  • The hotkey could silently stop responding after a capped or stuck recording. A stop-timeout could leave the microphone stream zombied, so the next recording silently captured nothing until it hit the 5-minute cap. Handling that cap then reset the hotkey listener from a background thread, which could deadlock against the main thread and permanently disable the hotkey with no logging or visible error. The reset now always happens on the main thread, and a stuck recording is detected and recovered from immediately instead of after 5 minutes.

Requires macOS 14.0 or later · Apple Silicon

Fixed the buy button reloading the page in Safari and Chrome

v0.4.2

A follow-up to 0.4.1: the buy button still didn’t work for everyone. In Safari and Chrome, clicking “Buy a license” opened the Paddle checkout overlay and then immediately reloaded the page out from under it, making checkout look completely broken.

Fixed

  • The “Buy a license” button reloaded the page right after opening checkout. The site’s analytics tracker was intercepting the click and navigating away once it had opened the overlay. The button no longer triggers that navigation, so checkout stays open.

Requires macOS 14.0 or later · Apple Silicon

Fixed a silently unresponsive buy button

v0.4.1

A small follow-up to 0.4.0’s checkout launch, fixing an intermittent case where buying a license didn’t visibly do anything.

Fixed

  • The “Buy a license” button could silently do nothing on a fresh page load. Paddle’s checkout overlay occasionally failed to open on the very first click without any error, leaving the button looking dead. It now retries automatically and shows a fallback if the retry doesn’t work either.

Requires macOS 14.0 or later · Apple Silicon

Buying a license now works

v0.4.0

The trial was always the easy part. This release makes buying a license work end to end, plus a round of fixes from the first wave of real-world use.

Added

  • You can now buy a license. “Buy a license” opens a real checkout — one payment of the listed price, no subscription — and unlocks the app immediately after.
  • Install via Homebrew. brew install --cask squibble-ch/saydrop/saydrop is now a supported way to install and update Saydrop, alongside the .dmg download.
  • A press kit, at saydrop.squibble.ch/press, for anyone writing about Saydrop.

Fixed

  • A stuck onboarding screen after granting Input Monitoring or Accessibility. macOS only notices a newly granted permission after the app restarts; Saydrop used to just say “Permission denied. You can retry.” forever. It now tells you to restart and gives you a “Quit & Reopen” button that does it for you.
  • Cleanup that silently turned itself off is now visible. If the local cleanup model fails to load, Settings now says so — instead of the switch quietly reading “on” while nothing was happening.

Changed

  • Clearer language about what your license covers. The EULA now spells out that a purchase covers the major version you bought, with best-effort updates and a 12-month download window if Saydrop is ever discontinued — no more talk of a “lifetime” license.

Requires macOS 14.0 or later · Apple Silicon

Microphones that come and go

v0.3.2

A follow-up to 0.3.1 for anyone who docks, undocks, or plugs in a USB microphone.

Fixed

  • Dictation no longer wedges after waking with a USB microphone attached. If the audio system stalled while Saydrop was closing a recording, the dictation never finished and every later press was silently refused as “busy” — the menu bar stayed alive, but dictation was gone until you quit and relaunched. Saydrop now gives that cleanup a deadline, recovers on its own when it expires, and ends a recording that never receives any audio instead of waiting forever.

  • Your microphone is remembered, and swapping it just works. Undock your Mac and Saydrop falls back to the built-in microphone instead of refusing to record; plug the USB microphone back in and it returns to it on the next press. Previously, choosing a specific microphone meant that unplugging it left the hotkey dead, and leaving the choice on “system default” meant a wake-up could silently move you to the built-in microphone for the rest of the session.

  • Local cleanup works again. The packaged app shipped a stale copy of the language runtime that shadowed the real one, so Gemma cleanup failed to load on every launch and quietly turned itself off — dictations were transcribed but never polished. The packaged app now carries a single copy, and the build refuses to produce a bundle where that can happen again.

Changed

  • Every dictation is now traceable in the log. Recording start, stop, cancel and the microphone actually in use are recorded, so a failure that used to be visible only as silence can be diagnosed from the log alone.

Requires macOS 14.0 or later · Apple Silicon

Dictation survives sleep

v0.3.1

A maintenance release with one fix that you will notice.

Fixed

  • Dictation works again after your Mac wakes up. Closing the lid and reopening it left the audio system holding a stale view of your microphone, so the hotkey appeared to do nothing at all — every press failed silently and only quitting and relaunching Saydrop brought dictation back. Saydrop now refreshes its audio connection when the machine wakes, and retries once if a recording still cannot start, so the first press after waking simply works.

Requires macOS 14.0 or later · Apple Silicon

Local-first dictation — history, personalization & selected-text editing

v0.3.0

The largest release so far. Everything below runs on your Mac; nothing is sent anywhere unless you explicitly choose a cloud cleanup backend.

  • Guided onboarding — a resumable first-run walkthrough sets up permissions, your models and your language preference, so a fresh install is usable without hunting through Settings.
  • Dictation history — every dictation is kept locally and can be recovered and re-pasted, so a mis-aimed paste or a busy target app no longer loses text.
  • Personalization — teach Saydrop your own vocabulary with deterministic replacements (names, jargon, spellings it keeps getting wrong) and reusable exact-text snippets.
  • Selected-text editing — capture a selection and edit it with a preview before anything replaces your text, so an edit is never applied sight-unseen.
  • Smarter endpointing — Silero voice-activity detection decides when an utterance has actually finished, with an adaptive energy detector as a fallback. The model is loaded before recording starts, so dictation itself stays offline.
  • Language policy — choose how Saydrop picks a language instead of leaving it to per-clip auto-detection, shared consistently across onboarding, Settings and transcription.
  • Formatting modes — pick how much shaping the cleanup pass applies.

Fixed

  • The first dictation after a cold start no longer loses its polish. Cleanup warmup pays a one-off model load from disk and shared a 30-second deadline with ordinary requests, so the first dictation after booting quietly fell back to raw transcript text. Warmup now has its own budget.
  • Auto-update was broken for 0.2.6. The published update feed was malformed, so installed copies silently reported “no update available”. The feed is now verified as actually served, not just before upload — this release is the first that 0.2.6 installs can see.
  • Clipboard paste fallback restored — pasting recovers again when the primary injection path is refused.
  • Gemma cleanup loads correctly via mlx-lm.

Requires macOS 14.0 or later · Apple Silicon

Reliability fixes — silence gate, cleanup default & bundled psutil

v0.2.6
  • Fixed: microphones with moderate gain (e.g. RØDE NT-USB+) were silently dropping every recording — the default silence gate was 10× too aggressive. It now matches the recommended sensitivity for USB condensers.
  • Cleanup is now opt-in — LLM polishing (Gemma) is disabled by default so the app is immediately usable on first launch without waiting for a model download. Enable it any time from the menu bar Settings.
  • Fixed: enabling Gemma cleanup in the signed bundle caused a startup crash (psutil Team ID mismatch in the hardened runtime). psutil is now bundled and codesigned with the app, so cleanup works correctly after enabling it.

Requires macOS 14.0 or later · Apple Silicon

Input device picker & smarter defaults

v0.2.5
  • Choose your microphone — a new input-device picker in Settings lets you select exactly which mic to record from. Great for users with multiple audio interfaces, AirPods, or USB headsets.
  • Whisper medium is the new default — benchmarks show whisper-medium-mlx is both faster and more accurate than large-v3-turbo on Apple Silicon for typical German and English dictation.
  • Gemma E2B is the new default cleanup model — the lighter Gemma 4 E2B checkpoint delivers the same polish quality as E4B at roughly half the latency.
  • Local Qwen3 cleanup backend — adds mlx-lm (Qwen3 1.7B) as an opt-in cleanup option for users who prefer a smaller on-device model.
  • Fixed: very short taps (under ~1 s) no longer inject degenerate Whisper artefacts such as ... or silent filler — the clip is silently dropped instead.
  • Fixed: when the clipboard injection fails (e.g. accessibility access was revoked), Saydrop now notifies you and refreshes the accessibility permission cache so the next attempt usually succeeds without a restart.

Requires macOS 14.0 or later · Apple Silicon

Automatic updates & stability

v0.2.4
  • Automatic updates — Saydrop now checks for new versions and installs them itself (powered by Sparkle, with cryptographically signed updates). Once you’re on this build, future releases arrive without a manual re-download.
  • English by default — the settings window and all in-app UI strings now ship in English.
  • Graceful microphone handling — if no input device is available, Saydrop surfaces a clear error instead of failing silently or crashing mid-dictation.
  • More robust cleanup — the local Gemma cleanup model now runs in an isolated subprocess, so a hiccup in polishing can never take down the app or lose your dictation.
  • Fail-fast configuration — on startup Saydrop validates its required settings and reports exactly what’s missing or malformed, rather than misbehaving later.
  • Fixed: the hotkey handler now shows an error pill when a press fails, and the auto-reset timer no longer clobbers that error state before you can see it.
  • Fixed: no longer crashes when the macOS notification system’s preference file is missing.
  • Fixed: license re-checks now run online with a cooldown between retries, so a license needing revalidation recovers on its own without hammering the server.

Requires macOS 14.0 or later · Apple Silicon

Settings window & usability fixes

v0.1.1
  • Native settings window — a full PyObjC settings panel replaces the menu pop-overs. Switch transcription model, toggle cleanup, adjust recording delay, and change the hotkey from one place. Changes take effect without restarting.
  • fn / Globe key hotkey — the Globe key (fn on most Apple keyboards) is now available as an alternative trigger alongside the existing modifier-key options.
  • Silent-streak notification — after three consecutive clips with no detected speech, Saydrop surfaces a notification so you know the mic may need attention.
  • Fixed: settings window now always comes to the front when opened from the menu bar.
  • Fixed: HuggingFace model-presence check is now cached, stopping a 25 fps filesystem probe that caused unnecessary CPU usage.
  • Fixed: mic-permission warning notification is dispatched on the main thread, preventing occasional silent drops.
  • Fixed: picked model stays selected after a download completes; on/off toggles now persist reliably across restarts.

Requires macOS 14.0 or later · Apple Silicon

First public release

v0.1.0

The first public release of Saydrop — local push-to-talk dictation for macOS on Apple Silicon.

  • 100% on-device transcription with mlx-whisper — your audio never leaves your Mac.
  • Default-on local AI polish via a local Gemma model (cloud Gemini optional) that cleans up filler words and punctuation.
  • Menu-bar app with a click-through recording overlay and a double-tap hotkey: double-tap, speak, double-tap again, and the polished text lands at your cursor.
  • Auto-start via a LaunchAgent, signed with a Developer ID certificate and notarized by Apple.

Requires macOS 14.0 or later · Apple Silicon