Releases: note89/hearsay
Release list
hearsay 0.2.2
hearsay v0.2.2 — cleanup that runs, and a cloud cleanup model on the Mac
A 290-word dictation came out raw because the cleanup step hit its 8 s timeout and the app kept the
transcript. Fixed, and the ceiling of the on-device model on long rewrites is now something you can
choose around.
New
- Cleanup model choice on macOS (Style pane): on this Mac (private, free) or Gemini 3.7 Flash via
OpenRouter. The cloud model receives the transcript and dictionary terms only; field context is not even
read when it is selected. - Cleanup timeout scales with length: 6 s plus 70 ms per word, capped at 40 s, instead of a flat 8 s.
- Cleanup rules tightened (both apps): keep every request and the sign-off, keep the point of view,
standard spelling for product names ("key cloak" → Keycloak), lists for enumerated options. - OpenRouter errors say what the server said ("no credits", with the top-up link) instead of "failed".
hearsay-check polish file.txt [light|full] [style] [cloud]andhearsay-rs polish file.txt [model]
run cleanup on a transcript file and time it.- Linux/Windows cleanup default is Gemini 3.7 Flash, the same model as the Mac cloud option.
hearsay 0.2.1
hearsay v0.2.1 — NixOS, Wayland paste, baked-in fonts
New
- Nix flake.
nix run github:note89/hearsaybuildshearsay-rswith every library linked and the
run-time-loaded ones wrapped in, so it starts on NixOS.nix developfor a dev shell. CI builds the flake
on every push. - Wayland paste on wlroots compositors. hearsay asks the compositor for
zwp_virtual_keyboard_v1:
Hyprland, Sway and river get the paste at the caret; GNOME still gets the clipboard and a "press Ctrl+V" pill. - Fonts baked in. Inter for text and JetBrains Mono for keys and paths ship inside the binary, so the
Linux and Windows window looks the same everywhere, and closer to the Mac app. Both SIL OFL. - Honest insertion outcomes. "copied — could not paste" and "nothing landed — the text is in History"
are now distinct; the log says which step failed.hearsay-rs insert "text"tests insertion by hand. hearsay-rs insertandhearsay-rs transcribe file.wav [engine]for debugging a desktop.
Fixes
- Style pane cards laid out horizontally on Linux; History showed a day count instead of a date.
hearsay 0.2.0
hearsay v0.2.0 — Linux & Windows, the race, mixed languages
hearsay now runs on all three desktops. hearsay.app is the Mac app; hearsay-rs is the Rust port with
the same concepts, the same data files and the same bake-off lab.
New
hearsay-rsfor Linux and Windows: hold Ctrl+Alt+Space, speak, release. whisper.cpp on-device (base.en
orlarge-v3-turbo, downloaded from the Dictation pane with progress). Wayland sessions supported: the
chord is read from the keyboard devices, the text goes to the clipboard.- Engines: ElevenLabs Scribe v2, Gemini 3.5 Transcribe Live (streaming, partials in the pill on every
platform), Gemini 3.7 Flash via OpenRouter. Mixed-language dictation (svengelska) works on all three. - API keys are found automatically (environment,
keys.env, shell profile) and can be pasted in the app. - The bake-off is a race: one take feeds every ticked engine, a leaderboard by WER and latency, each
engine's record against the rival, failures counted. Ten-sentence script with Swedish, svengelska and
Portuguese. Both apps. - Every engine receives dictionary terms as vocabulary hints.
- Overlay: good news is a glance (700 ms, fading), warnings stay readable.
Known limits on Linux/Windows (deliberate, see PLAN-CROSSPLATFORM.md)
- Local whisper is batch: no live partials (Gemini 3.5 Transcribe streams).
- Paste-only insertion; no field context, per-app tone or secure-field detection.
- Cleanup (Light/Full) uses OpenRouter, opt-in. Off is fully local.
- Prebuilt binaries run whisper on the CPU; GPU back ends are build-from-source features.
Verified: macOS build and bake-off tests; Linux x86_64, Windows x86_64 and macOS built and tested by
GitHub Actions, Linux window smoke-tested under Xvfb; Windows with whisper compiled on MSVC.
Assets: hearsay-0.2.0.zip (macOS app, local certificate — right-click → Open), hearsay-rs-linux-x86_64.zip,
hearsay-rs-windows-x86_64.zip, hearsay-rs-macos-arm64.zip (the Rust app on a Mac, for comparison runs).
hearsay 0.1.1
Fixes from the full review round.
- Scorer crash: dictating a token like "90's" in the bake-off pane recursed forever (SIGSEGV). Fixed, with regression tests.
- Bake-off fairness: typographic apostrophes no longer penalize every contraction; wer and diff share one token pipeline.
- Cloud engines detect language themselves — the Apple locale is no longer passed to them.
- Bake-off: Retake last, Archive & reset, Delete all runs; takes record only into the run they started in; mode is derived from where the text would land, not from window activation.
- A missing API key keeps your engine choice (runs on Apple until the key exists). Focus drifting onto a password field keeps your dictation instead of discarding it. Salvage on failure includes text finalized after release.
- Privacy: support files repaired to 0600, arena-era leftovers purged, content-free logs, no shell in Relaunch. Overlay shows a 'cloud' badge for cloud sessions.
- Field context moved under Style (it feeds cleanup); the Dictionary pane discloses that terms need cleanup on.
hearsay 0.1.0
First public build.
Push-to-talk dictation for macOS 26+: on-device transcription (Apple SpeechAnalyzer), on-device cleanup (Apple FoundationModels), per-app tone, dictionary, field context, and the built-in Wispr Flow bake-off lab.
Install: unzip, drag to /Applications, then right-click → Open (the build is signed with a local certificate, not a paid Developer ID) — or xattr -dr com.apple.quarantine /Applications/hearsay.app. Grant Microphone, Accessibility and Input Monitoring on first run.
Known limits: no notarization yet; Apple engine needs a manual language pick (cloud engines auto-detect); Swedish runs on Apple's DictationTranscriber fallback.