github OpenWhispr/openwhispr v1.7.0
1.7.0

14 days ago

Breaking for Mac users: please delete your old OpenWhispr first. 1.7.0 uses a new app ID — we had to migrate Apple Developer accounts, so you'll be asked to re-grant permissions on first launch. Notes, settings, API keys, and downloaded models carry over automatically.

Summary

  • More sign-in options — new: Sign in with Microsoft, Sign in with Apple on macOS. Auth runs on our own infra now (migrated to Better Auth); self-hosters can point at their own server.
  • Sessions in your OS keychain — survive crashes and Electron restarts. No more random sign-outs.
  • API keys encrypted at rest — all 12 BYOK + enterprise creds moved from .env to the OS keychain. Silent one-time migration on first launch.
  • Background meeting recording — navigate to other notes, open Settings, switch tabs; the audio pipeline keeps going. New floating pill shows live mic levels and clicks back to the recording note.
  • Per-note diarization preferences persist across stop/resume.
  • Cleaner mic capture with a new acoustic gate + better echo cancellation. Music pause/resume on Windows works again.
  • Per-scope LLM setup — pick different providers/models for cleanup, agent, formatting, and chat. You can now have text cleanup toggled ON but your dictation agent toggled OFF.
  • NVIDIA Parakeet parakeet-unified-en-0.6b — new English-only model, 5.91% avg WER, ~631 MB.
  • openwhispr CLI talks directly to the desktop app via a local HTTP bridge (127.0.0.1, bearer-token); falls back to cloud when the app is closed.
  • Proxy-aware fetches + OS CA trust — corporate TLS interception works.
  • Auto-learn corrections now work for Cyrillic, CJK, Arabic, Devanagari.
  • A bunch of other small bug fixes and performance improvements.

Detailed changelog

  • build(mac): migrate Apple signing to Gizmo Labs Inc. by @gabrielste1n in #639
  • fix(qdrant): set cwd to STORAGE_DIR so packaged app doesn't crash on startup by @gabrielste1n in #640
  • feat(sync): cross-device delete propagation by @gabrielste1n in #646
  • feat(meeting): interop cloud streaming providers + AEC/VAD improvements by @gabrielste1n in #656
  • Re-grant permissions modal for 1.6.11 upgraders by @gabrielste1n in #659
  • fix(chat): persist first user message when creating a new conversation by @xAlcahest in #662
  • fix(tls): trust OS CA store for Node-side TLS; keep realtime WS on OpenAI only by @gabrielste1n in #657
  • Fix adding non-ASCII languages to dictionary by @wake0up0ne0 in #666
  • Fix dictionary correction tracking for TextPattern-based controls (alongside existing ValuePattern support) by @wake0up0ne0 in #665
  • Bundle ID migration: com.herotools.openwispr → com.gizmolabs.openwhispr by @gabrielste1n in #669
  • feat(cli): local HTTP bridge for unified CLI by @gabrielste1n in #676
  • fix(notes): update folder selection when moving notes between folders by @gabrielste1n in #678
  • refactor: split dictation cleanup from dictation agent + per-scope LLM config by @gabrielste1n in #677
  • refactor(auth): switch desktop to Better Auth + add Microsoft sign-in by @gabrielste1n in #686
  • fix(network): proxy-aware fetches + actionable connectivity errors by @gabrielste1n in #687
  • chore(release): 1.7.0 confidence cleanup by @gabrielste1n in #689
  • ci(release): rename VITE_NEON_AUTH_URL → VITE_AUTH_URL by @gabrielste1n in #690
  • fix(auth): initiate desktop OAuth from browser, not renderer by @gabrielste1n in #692
  • feat(auth): Sign in with Apple on macOS by @gabrielste1n in #691
  • fix(onnx): cap embedding segments and isolate inference in utility process by @gabrielste1n in #693
  • fix(sidecars): reap children on quit and on next launch (#683) by @gabrielste1n in #694
  • docs(changelog): plain-English 1.7.0 + lockfile refresh by @gabrielste1n in #695
  • fix(llama): raise Vulkan startup timeout, stop server before re-download by @xAlcahest in #698
  • fix(media): fall back to media key when GSMTC fails on Windows by @xAlcahest in #697
  • docs(readme): acknowledge Hugging Face as model hub by @gabrielste1n in #703
  • feat(transcribe): generate clientTranscriptionId for cloud sync dedup by @gabrielste1n in #702
  • feat(security): encrypt API keys at rest via safeStorage by @gabrielste1n in #629
  • fix(media): use AsTask bridge for WinRT async calls in GSMTC scripts by @xAlcahest in #706
  • fix(media): resume playback on no-audio-detected event by @kdenney in #701
  • feat(auth): switch desktop to Authorization: Bearer + safeStorage by @gabrielste1n in #704
  • fix(ci): compile macos-media-remote binary in release and build workflows by @kdenney in #700
  • feat(reasoning): self-hosted OpenAI-compatible parity + thinking-mode toggle by @gabrielste1n in #708
  • feat(parakeet): add parakeet-unified-en-0.6b model by @milanleonard in #713
  • feat(meeting): background recording with floating pill and responsive layout by @gabrielste1n in #709
  • fix(runtime): unblock model downloads, surface ONNX worker errors, dedupe hotkey re-register by @gabrielste1n in #716
  • fix(linux): resolve symlink in launcher wrapper by @xAlcahest in #717

New Contributors

Don't miss a new openwhispr release

NewReleases is sending notifications on new releases.