Privacy-First Voice-to-Text for macOS
Fast, accurate, and completely offline speech recognition for your Mac
Features | Installation | Usage | FAQ
SuperKeet transforms your voice into text anywhere on your Mac with just a hotkey press. Unlike cloud-based dictation tools, SuperKeet runs 100% locally on your machine—your voice never leaves your computer.
Perfect for:
- Writers who think faster than they type
- Privacy-conscious professionals who handle sensitive information
- Developers who want dictation in their IDE or terminal
- Anyone who wants fast, accurate voice input without cloud services
| Feature | SuperKeet | Cloud Services |
|---|---|---|
| Privacy | 100% offline, nothing sent to cloud | Your voice is uploaded |
| Speed | Up to 60x real-time on Apple Silicon | Network dependent |
| Cost | Free & Open Source | Subscription fees |
| Internet | Works offline | Requires connection |
| Apps | Works everywhere | Limited integration |
- Push-to-Talk Dictation - Hold
Cmd + Shift + Space, speak, release—text appears - Blazing Fast - Up to 60x real-time transcription speed on Apple Silicon
- 100% Private - All processing happens locally, no cloud, no tracking
- Universal - Works in any app that accepts text input
- Accurate - Uses NVIDIA's Parakeet ASR model with smart punctuation
- Customizable - Configure hotkeys, audio settings, and behavior
- System tray app—stays out of your way
- Automatic text injection via clipboard
- Optional transcript logging
- Real-time audio waveform visualization
- Configurable audio devices
- Debug mode for troubleshooting
Required:
- macOS with Apple Silicon (M1, M2, M3, M4)
- Python 3.11 or higher
- ~2GB available RAM
- ~600MB for AI model (one-time download)
Permissions:
- Microphone access (for recording)
- Accessibility access (for text injection)
Note: SuperKeet requires Apple Silicon. Intel Macs are not supported due to the MLX framework requirement.
-
Install ffmpeg (required for audio processing):
brew install ffmpeg
-
Clone and setup SuperKeet:
git clone https://github.com/cspenn/SuperKeet.git cd SuperKeet ./setup.sh -
Launch the application:
./startkeet.command
That's it! The first launch will download the AI model (~600MB, one-time).
Detailed Installation Instructions
# Install Homebrew if you don't have it
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install ffmpeg
brew install ffmpeg
# Python 3.11+ (usually pre-installed on modern macOS)
python3 --version-
Install UV (fast dependency manager):
curl -LsSf https://astral.sh/uv/install.sh | sh -
Install dependencies:
uv sync --all-groups
-
Create config file:
cp credentials.yml.dist credentials.yml
-
Optional: Pre-download the AI model:
uv run python download_model.py
-
Launch SuperKeet (if not already running):
./startkeet.command
-
Look for the microphone icon in your menu bar
-
Press and hold
Cmd + Shift + Space -
Speak your text clearly
-
Release the hotkey when done
-
Text appears automatically in your active application!
Edit config.yml to customize:
# Change the hotkey
hotkey:
combination: "ctrl+space" # Options: ctrl+space, cmd+space, etc.
# Adjust audio settings
audio:
sample_rate: 16000
gain: 2.0 # Increase if microphone is quiet
# Enable transcript logging
transcripts:
enabled: true
directory: "transcripts"Right-click the menu bar icon for:
- Recent transcriptions (quick re-use)
- Settings
- Quit
SuperKeet is highly configurable through config.yml:
| Setting | Description | Default |
|---|---|---|
hotkey.combination |
Global hotkey | ctrl+space |
audio.device |
Specific microphone | Auto-detect |
audio.gain |
Microphone volume boost | 2.0 |
transcripts.enabled |
Save transcripts to disk | true |
text.auto_paste |
Auto-paste after transcription | true |
logging.level |
Log verbosity | DEBUG |
See config.yml for all available options.
Why do I need Accessibility permissions?
SuperKeet needs Accessibility permissions to automatically paste transcribed text into your active application. Without it, text will be copied to your clipboard but not pasted.
To grant access:
- Go to System Settings > Privacy & Security > Accessibility
- Click the lock to make changes
- Add Terminal (or your terminal app) to the list
- Restart SuperKeet
Does SuperKeet work without an internet connection?
Yes! After the initial model download (~600MB, one-time), SuperKeet works 100% offline. Your voice never leaves your computer.
Can I use a different hotkey?
Absolutely! Edit config.yml and change the hotkey.combination value. Supported combinations:
ctrl+spacecmd+spacecmd+shift+space- And more...
What languages are supported?
Currently, SuperKeet supports English only. The Parakeet model is optimized for English and provides the best accuracy and speed for this language.
Will this work on Intel Macs?
No, SuperKeet requires Apple Silicon (M1/M2/M3/M4). The MLX framework used for AI acceleration is Apple Silicon-only.
How accurate is the transcription?
SuperKeet uses NVIDIA's Parakeet ASR model, which achieves state-of-the-art accuracy on English benchmarks. It includes smart punctuation and capitalization. Accuracy depends on:
- Clear speech
- Good microphone quality
- Minimal background noise
Solution: Grant Accessibility permissions (see FAQ above)
Solution: Reset your environment:
rm -rf .venv
./setup.shSolution: Try manual download:
uv run python -c "from parakeet_mlx import from_pretrained; from_pretrained('mlx-community/parakeet-tdt-0.6b-v3')"Solution: List available devices and configure in config.yml:
uv run python -c "import sounddevice; print(sounddevice.query_devices())"uv run pytest./checkpython.shSuperKeet is open source and contributions are welcome!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run quality checks (
./checkpython.sh) - Commit your changes
- Push to the branch
- Open a Pull Request
See AGENTS.md for AI-assisted development guidelines.
SuperKeet is licensed under the Apache License 2.0. See LICENSE for details.
- NVIDIA for the Parakeet ASR model
- MLX Community for the Apple Silicon optimization
- Parakeet-MLX project for the Python bindings
Built with care for the macOS community