Menu bar voice-to-clipboard app for macOS. Press Fn to record, press again to transcribe and paste at cursor. Uses parakeet-mlx for local, on-device transcription via MLX on Apple Silicon.
./scripts/build.sh
open dist/QuickVoice.app
Uses swiftc directly. No Xcode required. Build script at scripts/build.sh compiles Swift sources with SwiftUI, AppKit, and AVFoundation frameworks, bundles into a .app, and ad-hoc codesigns.
After rebuilding, you must re-grant Accessibility permission (System Settings > Privacy & Security > Accessibility) since the codesign changes on each build.
- macOS 13+
parakeet-mlxinstalled:uv tool install parakeet-mlx(binary at~/.local/bin/parakeet-mlx)- System Settings > Keyboard > "Press fn key to" > "Do Nothing"
- Accessibility permission for QuickVoice.app (required for paste-at-cursor and media key simulation)
Two Swift source files, no dependencies beyond system frameworks:
QuickVoiceCore.swift-- AudioRecorder (AVFoundation 16kHz mono WAV), Transcriber (shells out toparakeet-mlx --output-format txt --fp32), MediaController (play/pause media key simulation via CGEvent), CursorPaster (clipboard save/restore + simulated Cmd+V)QuickVoiceApp.swift-- SwiftUI App with NSStatusItem menu bar icon, NSPopover UI, Fn key detection via NSEvent.addGlobalMonitorForEvents(.flagsChanged), Combine-driven icon state updates
- Fn key press -> pauses media playback (simulates hardware play/pause key) -> starts AVFoundation recording to temp WAV
- Fn key press again -> stops recording -> resumes media -> shells out to
parakeet-mlxfor transcription - Transcript is pasted at cursor (saves clipboard, sets transcript, simulates Cmd+V, restores clipboard)
QuickVoiceCore.swift Core logic (recorder, transcriber, media, clipboard)
QuickVoiceApp.swift App entry point, menu bar, UI, Fn key monitor
QuickVoice-Info.plist App bundle metadata (LSUIElement, mic permission)
scripts/build.sh Build script (swiftc + codesign)