Releases: random1st/diana-voice
Release list
Diana Voice 0.1.5-alpha
Diana Voice 0.1.5-alpha improves push-to-talk delivery and recovery.
- Dictation pastes only while the application where recording began is still active. Switching apps leaves the text available through Copy Last Dictation.
- Copy Last Dictation and Clear Last Dictation live in the menu bar. Only the newest nonempty phrase is kept in RAM; no dictation history is saved to disk.
- Clipboard restoration preserves all readable formats and respects anything you copy while recognition or delivery is running.
- New recordings can begin during recognition, while completed phrases are delivered in recording order.
- Microphone permission requests, shortcut registration and listening indicators now reflect actual capture readiness.
Verification: 78 Swift tests passed; live automatic paste confirmed by Roman. The DMG is Developer ID signed, accepted by Apple notarization and stapled; Gatekeeper assessment passed.
Download the DMG below, or update through Homebrew:
brew update && brew reinstall --cask random1st/diana-voice/diana-voiceDiana Voice 0.1.4-alpha
Alpha. Same product as 0.1.3, rebuilt and re-notarized under a fresh version.
Recent: tray self-diagnosis (names the actual blocker instead of failing silently), one-click Remove From All Assistants, the retired voice hook is gone and cleaned up automatically on launch, and a test-hardening pass that caught two real defects (CRLF SSE framing, proxy session/drain regressions).
Distribution is Developer ID only — signed and notarized .dmg + Homebrew. Not the Mac App Store: its sandbox forbids the global hotkey and cross-app paste that push-to-talk is built on.
brew update && brew reinstall --cask random1st/diana-voice/diana-voice
Diana Voice 0.1.3-alpha
Alpha. Test-hardening release — no new features, two real defects found and fixed by the tests themselves:
- SSE framing: Swift folds CRLF into a single Character, so the event parser silently failed to split a CRLF stream — behind a line-ending-rewriting proxy every avatar event would have been dropped. Parser rewritten and covered.
- Proxy: session handling and stdout draining are now pinned by integration tests against a real socket (both were shipped regressions).
Coverage: Swift 15 → 42 tests, stdio proxy 0 → 3 integration tests. Config edits (Codex TOML / Cursor JSON / Claude settings) moved into pure, tested functions that assert neighbours' servers and unrelated hooks survive.
Signed and notarized. brew install --cask random1st/diana-voice/diana-voice
Diana Voice 0.1.2-alpha
Alpha. Adds tray self-diagnosis (names the actual blocker instead of failing silently) and one-click Remove From All Assistants — undoes the Claude Code / Codex / Cursor entries and both skill copies. Signed and notarized. brew install --cask random1st/diana-voice/diana-voice
Diana Voice 0.1.1-alpha
Alpha, second cut. Everything from 0.1.0-alpha plus:
- No more voice hook — the feature that spoke after every agent turn is gone from the menu and the code. If you installed it earlier, the app now removes its own hook from
~/.claude/settings.jsonat launch (backup written), no terminal work needed. - Machine with no Metal GPU?
auto_deviceno longer panics there — it falls back to CPU as it always promised. - CI is live and green on the public repo.
Signed and notarized. Apple Silicon, macOS 13+. brew install --cask random1st/diana-voice/diana-voice
Diana Voice 0.1.0-alpha
Alpha — extracted from a personal agent harness into a standalone product; rough edges expected, issues welcome.
Voice as an MCP server for macOS — your agent gets ears and a mouth:
- voice_speak — local Qwen3-TTS with voice cloning, streaming synthesis (~1.5 s to first sound). Speaks out of the box with Diana's voice; record one phrase and it speaks with yours.
- voice_listen — local Whisper large-v3-turbo on Metal with an adaptive encoder-window patch (3× faster on short utterances, ~240 ms median), Silero VAD endpointing.
- voice_transcribe — transcribe WAV files with the resident engine.
- ui_bubble_show — visual "whisper" in the avatar bubble, no audio.
- Push-to-talk — hold Fn (configurable), transcript pasted into the frontmost app; works with no agent at all.
- Floating avatar with moods, tray menu with one-click setup for Claude Code / Codex / Cursor. Where MCP servers are forbidden: sessionless REST (
POST/GET localhost:4525/tools/*) plus an installable agent skill that teaches those endpoints — the agent decides when speaking is worth it. - Fully local: no audio, text, or telemetry ever leaves your machine.
The .dmg is signed and notarized (Gatekeeper: accepted, Notarized Developer ID). Apple Silicon, macOS 13+.
Install: brew install --cask random1st/diana-voice/diana-voice — or drag the dmg to /Applications and launch once for first-run setup.