macOS voice assistant with global hotkeys - transcribe speech to text with offline models (WhisperKit or Parakeet) or cloud-based Gemini API, capture and transcribe screen recordings with visual context, and read selected text aloud with Gemini Live.
213
stars
233
commits
Swift
primary language
Aug 20, 2026
updated
macOS voice assistant with global hotkeys - transcribe speech to text with offline models (WhisperKit or Parakeet) or cloud-based Gemini API, capture and transcribe screen recordings with visual context, and read selected text aloud with Gemini Live. Fast, accurate, and simple.
Parakeet transcription (fast and accurate):
https://github.com/user-attachments/assets/163e6484-a3b1-49ef-b5e1-d9887d1f65d0
Instant text-to-speech:
https://github.com/user-attachments/assets/c961f0c6-f3b3-49d9-9b42-7a7d93ee6bc8
Visual disambiguation for names:
https://github.com/user-attachments/assets/0b7f481f-4fec-4811-87ef-13737e0efac4
Voice-to-Text Transcription
Streaming Text-to-Speech
Screen Recording & Video Transcription
This app requires specific system permissions to function properly:
The app will automatically request microphone permission on first launch. If denied, grant it manually:
You must manually grant accessibility permissions for the app to:
To enable:
swift run: Add Terminal or your terminal app (iTerm2, etc.)Important: Without accessibility access, the app cannot detect global hotkeys (Command+Option+Z/X/A/S/C/V, Escape) or paste text automatically.
The app requires screen recording permission to capture screen content:
swift run) or SuperVoiceAssistant# Clone the repository
git clone https://github.com/yourusername/super-voice-assistant.git
cd super-voice-assistant
# Install ffmpeg (required for screen recording)
brew install ffmpeg
# Set up your Gemini API key (for TTS and video transcription)
# Option 1: macOS keychain (recommended)
security add-generic-password -U -s gemini-api-key -a "$USER" -w YOUR_KEY
# Option 2: .env file
cp .env.example .env
# Edit .env and add your GEMINI_API_KEY
# Build the app
swift build
# Run the main app
swift run SuperVoiceAssistant
The app will appear in your menu bar as a waveform icon.
You can configure automatic text replacements for transcriptions by editing config.json in the project root:
{
"textReplacements": {
"Cloud Code": "Claude Code",
"cloud code": "claude code",
"cloud.md": "CLAUDE.md"
}
}
This is useful for correcting common speech-to-text misrecognitions, especially for proper nouns, brand names, or technical terms. Replacements are case-sensitive and applied to all transcriptions.
Local (Cmd+Option+Z):
Cloud (Cmd+Option+X):
Transcription engines:
Note: Audio recording and screen recording are mutually exclusive - you cannot run both simultaneously.
When to use video vs audio:
# Run the main app
swift run SuperVoiceAssistant
# List all available WhisperKit models
swift run ListModels
# Test downloading a model (currently set to distil-whisper_distil-large-v3)
swift run TestDownload
# Validate downloaded models are complete
swift run ValidateModels
# Delete all downloaded models
swift run DeleteModels
# Delete a specific model
swift run DeleteModel <model-name>
# Example: swift run DeleteModel distil-large-v3
# Test transcription with a sample audio file
swift run TestTranscription
# Test live transcription with microphone input
swift run TestLiveTranscription
# Test streaming TTS functionality
swift run TestStreamingTTS
# Test audio collection for TTS
swift run TestAudioCollector
# Test sentence splitting for TTS
swift run TestSentenceSplitter
# Test screen recording (3-second capture)
swift run RecordScreen
# Test video transcription with Gemini API
swift run TranscribeVideo <path-to-video-file>
# Example: swift run TranscribeVideo ~/Desktop/recording.mp4
Sources/ - Main app code
ModelStateManager.swift - Engine and model selectionAudioTranscriptionManager.swift - Audio recording and transcription routingScreenRecorder.swift - Screen recording with ffmpegSharedSources/ - Shared components
ParakeetTranscriber.swift - FluidAudio Parakeet wrapperGeminiStreamingPlayer.swift - Streaming TTS playbackGeminiAudioTranscriber.swift - Gemini API transcriptionVideoTranscriber.swift - Gemini API video transcriptiontests/ - Test utilitiestools/ - Model management utilitiesSee LICENSE for details.
233 commits
Swift
98.6%
Shell
1.4%
macOS voice assistant with global hotkeys - transcribe speech to text with offline models (WhisperKit or Parakeet) or cloud-based Gemini API, capture and transcribe screen recordings with visual context, and read selected text aloud with Gemini Live.
213
stars
233
commits
Swift
primary language
Aug 20, 2026
updated
macOS voice assistant with global hotkeys - transcribe speech to text with offline models (WhisperKit or Parakeet) or cloud-based Gemini API, capture and transcribe screen recordings with visual context, and read selected text aloud with Gemini Live. Fast, accurate, and simple.
Parakeet transcription (fast and accurate):
https://github.com/user-attachments/assets/163e6484-a3b1-49ef-b5e1-d9887d1f65d0
Instant text-to-speech:
https://github.com/user-attachments/assets/c961f0c6-f3b3-49d9-9b42-7a7d93ee6bc8
Visual disambiguation for names:
https://github.com/user-attachments/assets/0b7f481f-4fec-4811-87ef-13737e0efac4
Voice-to-Text Transcription
Streaming Text-to-Speech
Screen Recording & Video Transcription
This app requires specific system permissions to function properly:
The app will automatically request microphone permission on first launch. If denied, grant it manually:
You must manually grant accessibility permissions for the app to:
To enable:
swift run: Add Terminal or your terminal app (iTerm2, etc.)Important: Without accessibility access, the app cannot detect global hotkeys (Command+Option+Z/X/A/S/C/V, Escape) or paste text automatically.
The app requires screen recording permission to capture screen content:
swift run) or SuperVoiceAssistant# Clone the repository
git clone https://github.com/yourusername/super-voice-assistant.git
cd super-voice-assistant
# Install ffmpeg (required for screen recording)
brew install ffmpeg
# Set up your Gemini API key (for TTS and video transcription)
# Option 1: macOS keychain (recommended)
security add-generic-password -U -s gemini-api-key -a "$USER" -w YOUR_KEY
# Option 2: .env file
cp .env.example .env
# Edit .env and add your GEMINI_API_KEY
# Build the app
swift build
# Run the main app
swift run SuperVoiceAssistant
The app will appear in your menu bar as a waveform icon.
You can configure automatic text replacements for transcriptions by editing config.json in the project root:
{
"textReplacements": {
"Cloud Code": "Claude Code",
"cloud code": "claude code",
"cloud.md": "CLAUDE.md"
}
}
This is useful for correcting common speech-to-text misrecognitions, especially for proper nouns, brand names, or technical terms. Replacements are case-sensitive and applied to all transcriptions.
Local (Cmd+Option+Z):
Cloud (Cmd+Option+X):
Transcription engines:
Note: Audio recording and screen recording are mutually exclusive - you cannot run both simultaneously.
When to use video vs audio:
# Run the main app
swift run SuperVoiceAssistant
# List all available WhisperKit models
swift run ListModels
# Test downloading a model (currently set to distil-whisper_distil-large-v3)
swift run TestDownload
# Validate downloaded models are complete
swift run ValidateModels
# Delete all downloaded models
swift run DeleteModels
# Delete a specific model
swift run DeleteModel <model-name>
# Example: swift run DeleteModel distil-large-v3
# Test transcription with a sample audio file
swift run TestTranscription
# Test live transcription with microphone input
swift run TestLiveTranscription
# Test streaming TTS functionality
swift run TestStreamingTTS
# Test audio collection for TTS
swift run TestAudioCollector
# Test sentence splitting for TTS
swift run TestSentenceSplitter
# Test screen recording (3-second capture)
swift run RecordScreen
# Test video transcription with Gemini API
swift run TranscribeVideo <path-to-video-file>
# Example: swift run TranscribeVideo ~/Desktop/recording.mp4
Sources/ - Main app code
ModelStateManager.swift - Engine and model selectionAudioTranscriptionManager.swift - Audio recording and transcription routingScreenRecorder.swift - Screen recording with ffmpegSharedSources/ - Shared components
ParakeetTranscriber.swift - FluidAudio Parakeet wrapperGeminiStreamingPlayer.swift - Streaming TTS playbackGeminiAudioTranscriber.swift - Gemini API transcriptionVideoTranscriber.swift - Gemini API video transcriptiontests/ - Test utilitiestools/ - Model management utilitiesSee LICENSE for details.
233 commits
Swift
98.6%
Shell
1.4%