Changelog

Every release since the first public build. No marketing fluff — just what changed.

v22 · Current April 19, 2026

Ten voice-reactive overlays

The biggest visual overhaul yet. Every overlay is now voice-reactive and sized to the compact 180×42 footprint — no more giant pill blocking half your screen.

  • New 10 overlay styles: Pill, Orb, Robot, Neural mesh, Iridescent sphere, Minimal pill, Ring, Vinyl, Soundwave, Halo
  • New Live voice reactivity — every style pulses with your RMS level in real time (not a fixed animation)
  • New Visual style picker in Settings → General with animated previews instead of a dropdown
  • Improved All overlays now share the same 180×42 footprint — swapping styles never changes window position
  • Fixed Soundwave bars not animating because the CSS keyframe couldn't read custom properties per-frame
  • Fixed Neural mesh canvas initialising with width 0 when Settings opened in a hidden tab
v18 April 18, 2026

Every setting now does something

Audit pass: we found 17 settings that looked functional but were cosmetic only. All of them are now wired to real app behavior.

  • New Toggle mode — turn any hotkey into tap-to-start / tap-to-stop
  • New Min-hold threshold — prevent accidental triggers from short modifier taps
  • New Auto-pause on silence (VAD) — configurable silence timeout stops recording automatically
  • New Noise suppression toggle — routes audio through Apple's voice-processing pipeline
  • New Custom vocabulary — JSON-based find/replace applied post-transcription (e.g. k8s → Kubernetes)
  • New Language lock — force a specific Whisper language or stay on auto-detect
  • New Decoding knobs — temperature and beam-size exposed for power users
  • New Overlay position — bottom-center, top-center, bottom-right
  • New Audio cues — optional Tink / Pop sounds on start and paste
  • New Stealth mode — hide the overlay entirely (menu bar status still shows state)
v14 April 18, 2026

First-run onboarding + launch at login

Paravoice now walks new users through setup on first launch, and can auto-start when you log into your Mac.

  • New 5-step onboarding — welcome, mic permission, accessibility permission, model download, hotkey pick
  • New Launch at login via SMAppService.mainApp
  • New Custom app icon — gradient mic glyph, Liquid Glass compatible
  • New Model picker in Settings — swap between Tiny, Base, Small, Medium, Large v3 Turbo
  • New Menu bar status indicator — live state icon (idle → listening → transcribing → paused)
v10 April 18, 2026

Searchable history with SwiftData

Every transcript is now saved locally and searchable from the menu bar dropdown.

  • New SwiftData persistence — transcripts stored in ~/Library/Application Support/Paravoice/
  • New History dropdown in the menu bar, searchable, with one-click re-paste
  • New Text post-processing pipeline — trim fillers, smart capitalization, auto-punctuation, custom replacements
  • Improved Processing runs in under 10 ms so it never slows the paste
  • Fixed @Query not refreshing when new transcripts are saved (moved ModelContainer to hosting level)
v7 April 18, 2026

Real Whisper transcription

Canned stub text is gone. Paravoice now transcribes your voice for real, locally, via WhisperKit.

  • New WhisperKit integration — Swift-native, CoreML-accelerated Whisper
  • New Large v3 Turbo as the default model on Apple Silicon — 8× faster than Large at 99% of the accuracy
  • New 99-language support via Whisper multilingual, with auto-detect and mid-sentence code-switching
  • New First-run model download with progress shown in the overlay
  • Fixed WhisperKit modelFolder misuse — it's for pre-downloaded models, not a download destination
v5 April 18, 2026

Real microphone capture

Paravoice now records actual microphone audio and writes it to a Whisper-ready 16 kHz mono PCM WAV file.

  • New AVAudioEngine pipeline — 16 kHz mono PCM Int16 via AVAudioConverter
  • New Microphone permission flow with a clear error state in the overlay
  • Fixed AVAudioFile write crash — default processingFormat expected Float32 but our converter output Int16 (4-arg init with explicit commonFormat)
  • Fixed Swift 6 isolation crash in the tap callback — extracted audio-thread work into a RecordingSession: @unchecked Sendable
v3 April 18, 2026

Global hotkey + paste-anywhere

The core "hold to dictate" gesture works. Push-to-talk activates from any app and text pastes at the cursor.

  • New CGEventTap hotkey — global modifier-key listener, works in any app, any window, any Space
  • New Accessibility-API paste — inserts at cursor without touching the clipboard
  • New Four modifier options — Left/Right Option, Left/Right Command
  • Fixed Accessibility permission prompt not firing on first launch (added @preconcurrency import to work around Swift 6 kAXTrustedCheckOptionPrompt isolation error)
  • Fixed HotkeyManager deinit crash on Swift 6 — @MainActor properties aren't accessible from deinit (resolved with nonisolated(unsafe))
v1 April 18, 2026

First public build

Initial SwiftUI scaffold with menu bar, recording overlay, settings, onboarding, and history views. No transcription yet — just the shell.

  • New Menu bar app with dropdown for recent transcriptions
  • New Floating recording overlay — 4 states: listening, transcribing, pasted, error
  • New Settings window — 6 tabs, sidebar navigation
  • New Onboarding shell — 5 animated steps
  • New History view — searchable, filterable (backed by SwiftData in v10)
  • New Universal binary — Apple Silicon + Intel, macOS 13+