2.0.4 — Upstream WhisperKit, custom vocabulary fixed
Speech-to-text is back on upstream WhisperKit
The app had been pinned to a fork of WhisperKit carrying a one-line fix. Without it, setting any custom vocabulary made every dictation return an empty transcript — recording ran, nothing got typed.
Argmax shipped that fix upstream (PR #514, co-authored by the same person who wrote the fork patch, with a more thorough implementation and ~200 new tests) in v1.1.0. So the fork is out of the dependency graph entirely and STT runs on upstream argmaxinc/WhisperKit 1.1.0.
Custom vocabulary is safe to use again — verified by dictating with a non-empty vocabulary, not just by reading the changelog.
Also in this release
- Codex hooks move to
~/.codex/hooks.json. Codex warns when hooks are split betweenhooks.jsonand an inline[hooks]table inconfig.toml; it now writes only the former. Reconnect Codex in Settings → Agents to move an existing install. - Pi gets the persona and reply-language layers it was missing, so a spoken reply on Pi now matches Claude Code and Codex.
- No more
SDK auth failednoise when Claude Code starts. Its MCP client probes for an OAuth endpoint before connecting; the server answered with an empty body, which the SDK parsed as a malformed OAuth error document and logged every time. Both that path andGET /mcpnow answer with proper JSON. - The persona line picks "a" or "an" correctly.
Install
Download the DMG below, drag to Applications, and launch. If macOS quarantines it:
xattr -d com.apple.quarantine ~/Downloads/OpenWhisperer-2.0.4.dmgThis build is ad-hoc signed, so macOS will ask for Accessibility and Microphone permission again after replacing an existing install.