v0.3.1 — signed, notarized, and it just opens
Hold a key, talk, and the transcript lands wherever your cursor is. Everything runs on your Mac — no account, no subscription, no audio ever leaves the machine.
This is the first release signed with an Apple Developer ID and notarized by Apple. It opens by double-clicking, like any other Mac app.
Install
The easiest path — installs the app, the flow CLI, the MCP server for Claude Code, and the speech model, then launches it:
curl -fsSL https://raw.githubusercontent.com/vonzelle-vzt/vzt-flow/main/scripts/install.sh | bashOr brew install --cask vonzelle-vzt/vzt/vzt-flow, or download a .dmg below:
| Your Mac | File |
|---|---|
| Apple Silicon (M1–M5) | VZT.Flow_0.3.1_aarch64.dmg |
| Intel | VZT.Flow_0.3.1_x64.dmg |
Not sure? Apple menu → About This Mac. Intel requires macOS 13.3; Apple Silicon requires 13.0.
Then do three things
- Open it. If you downloaded the
.dmgin a browser, macOS asks once whether you're sure you want to open an app from the Internet — click Open. Thecurlinstaller doesn't even ask. - Grant three permissions when macOS prompts: Microphone, Accessibility (pastes the text at your cursor), Input Monitoring (lets the hotkey work). No installer, script, or AI agent can grant these for you — macOS requires a human. Without Input Monitoring the hotkey silently does nothing; without Accessibility your words transcribe but never paste.
- Hold Right Option, talk, let go.
VZT Flow lives in your menu bar. There is no Dock icon and no main window, so don't go looking in the Dock for it.
What's new in 0.3.1
- Signed with an Apple Developer ID and notarized, with the ticket stapled to both the app and the
.dmg. No more right-click → Open, and the first launch works offline. - Your permissions now survive upgrades. macOS ties Accessibility and Input Monitoring to a code requirement; an ad-hoc signature pinned it to the exact binary, so every past release silently killed the hotkey while System Settings still showed a ticked checkbox. A Developer ID requirement names the team instead, and keeps matching.
- New app icon.
- The installer no longer aborts partway through an upgrade (a
SIGPIPErace left the app replaced but the CLI, MCP server and model untouched). NO_APP=1installs just the CLI + MCP server, for people whose app came from Homebrew.
Upgrading from 0.3.0 or earlier: one last re-grant
Those builds were ad-hoc signed, so your existing grants point at a binary that no longer exists. macOS will deny them while still showing the checkbox as on — and un-ticking and re-ticking it does not help, because that toggles the stale row. The curl installer detects this and clears them for you. Otherwise, once:
tccutil reset Accessibility com.vzt.flow
tccutil reset ListenEvent com.vzt.flow
open -a "/Applications/VZT Flow.app"Then re-grant when macOS asks. This is the last time — from 0.3.1 on, upgrades keep your permissions.
Verify it yourself
codesign -dv --verbose=4 "/Applications/VZT Flow.app" 2>&1 | grep Authority
xcrun stapler validate "/Applications/VZT Flow.app"
spctl -a -vv "/Applications/VZT Flow.app"Full Changelog: v0.3.0...v0.3.1