Speak, get polished text in real time.
- Real-time waveform visualization while recording
- High-quality M4A audio
- OpenAI Whisper - OpenAI's Whisper API
- Deepgram - Deepgram speech recognition API
- AssemblyAI - AssemblyAI transcription service
- Custom API - Any OpenAI-compatible endpoint
- Polishes raw transcript using any OpenAI-compatible LLM
- Customizable system prompt
- Fixes grammar, punctuation, filler words, and repetitions
| Action | Trigger | Result |
|---|---|---|
| Hold Recording | Hold fn |
Record while held, stop on release |
| Hands-free Start | Double-press fn |
Start continuous recording |
| Hands-free Start | fn + Space |
Start continuous recording |
| Hands-free Stop | Press fn again |
Complete recording |
- Lives in the menu bar for quick access
- Recording status indicator with pulse animation
- Start/stop recording from the menu
- Browse and search past recordings
- View original transcript and polished text side by side
- Re-polish recordings with a different prompt
- Copies result to clipboard
- Optional automatic paste at cursor position (simulates Cmd+V)
- Shows recording status with live waveform
- Cancel or complete recording with buttons
- Processing progress indicator
# Open project in Xcode
open Sparkle.xcodeproj
# Build from command line
xcodebuild -project Sparkle.xcodeproj -scheme Sparkle -configuration Debug build
# Run the app
open ./build/Debug/Sparkle.app- Launch Sparkle
- Open Settings (Cmd+,)
- Configure API settings:
- STT Provider: Select your preferred speech-to-text service
- STT API URL: API endpoint (pre-filled for known providers)
- STT API Key: Your API key for the selected provider
- LLM API URL: OpenAI-compatible chat completions endpoint
- LLM API Key: Your LLM API key
- LLM Model: Model to use (default: gpt-4o-mini)
- Customize the transcription prompt if needed
- Enable/disable hotkeys and auto-paste
-
Start Recording:
- Hold the
fnkey to record while held - Double-tap
fnor pressfn + Spacefor hands-free recording - Click "Start Recording" in the menu bar
- Hold the
-
Stop Recording:
- Release
fnkey (hold mode) - Press
fnagain (hands-free mode) - Click the checkmark on the floating widget
- Release
-
Cancel Recording:
- Click the X button on the floating widget
-
View Results:
- Text is automatically copied to clipboard
- If auto-paste is enabled, text is pasted at cursor
- View history in the main window
