Skip to content

sunil-dhaka/quick-voice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuickVoice

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.

Build

./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.

Prerequisites

  • macOS 13+
  • parakeet-mlx installed: 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)

Architecture

Two Swift source files, no dependencies beyond system frameworks:

  • QuickVoiceCore.swift -- AudioRecorder (AVFoundation 16kHz mono WAV), Transcriber (shells out to parakeet-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

How it works

  1. Fn key press -> pauses media playback (simulates hardware play/pause key) -> starts AVFoundation recording to temp WAV
  2. Fn key press again -> stops recording -> resumes media -> shells out to parakeet-mlx for transcription
  3. Transcript is pasted at cursor (saves clipboard, sets transcript, simulates Cmd+V, restores clipboard)

Files

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)

About

Menu bar voice-to-text for macOS. Press Fn to record, transcribe locally via parakeet-mlx, paste at cursor. No Xcode required.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors