Double-tap Control to dictate with Whisper. Transcribes and pastes to any text field. macOS only.
Project description
whisper-hotkey
Double-tap Control to dictate with Whisper on macOS. Transcribes your speech and pastes it into whatever text field is focused.
Uses faster-whisper (CTranslate2) with int8 quantization for fast local inference. No cloud APIs, everything runs on your machine.
Install
uvx whisper-hotkey install
This will:
- Ask you to choose a model (tiny.en for speed, or distil-large-v3 for accuracy)
- Download the model
- Request microphone and accessibility permissions
- Install a LaunchAgent so it starts automatically on login
Usage
After install, just double-tap the Control key to start recording. Double-tap again to stop — your speech is transcribed and pasted into the active text field.
That's it. It works across all apps, survives reboots, and runs in the background.
Commands
whisper-hotkey install # Interactive setup (model, permissions, auto-start)
whisper-hotkey uninstall # Remove auto-start
whisper-hotkey status # Check if the service is running
whisper-hotkey # Run the service directly (not needed after install)
Requirements
- macOS (Apple Silicon or Intel)
- Python 3.12+
- uv (recommended) or pip
Models
| Model | Size | Speed | Accuracy |
|---|---|---|---|
| tiny.en (default) | ~75MB | Fastest | Good for clear English |
| distil-large-v3 | ~1.5GB | Slower | Better with accents/noise |
Permissions
The app needs two macOS permissions:
- Microphone — to record your voice
- Accessibility — to detect the keyboard shortcut and paste text
The install command will prompt for these. If the shortcut doesn't work, check System Settings > Privacy & Security and make sure both your terminal and Python have Accessibility access.
Logs
tail -f ~/Library/Logs/whisper-hotkey/stdout.log
tail -f ~/Library/Logs/whisper-hotkey/stderr.log
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file whisper_hotkey-0.1.2.tar.gz.
File metadata
- Download URL: whisper_hotkey-0.1.2.tar.gz
- Upload date:
- Size: 45.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24fcab758f89a22b79e3f56692034406e87fa2907e3ac6e53e0d3fe17ef00f7d
|
|
| MD5 |
bf01bc64936a1fbfd2187f2eaf6c928f
|
|
| BLAKE2b-256 |
7cf510149c61008a580052db05ee90079363aafe6d0f130b296e143f20bfd0ef
|
File details
Details for the file whisper_hotkey-0.1.2-py3-none-any.whl.
File metadata
- Download URL: whisper_hotkey-0.1.2-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
872d5cc44b78d3d2a30c12504c457e4f9eaf051429a742ecc5a15a4d74ea0446
|
|
| MD5 |
b5671a233694eb9d6fb6a0049e29e5bd
|
|
| BLAKE2b-256 |
ea6a97bab0930f8dad692ba2992f98b58076087a79d29d6676367a179e977ec5
|