Tap2Talk
Voice transcription desktop app for macOS - Double-tap Ctrl to start/stop recording, get instant transcription.
Created by unclecode - Author of Crawl4AI (50K+ stars)
Features
- Simple Controls: Double-tap Ctrl to start/stop recording
- Instant Transcription: Powered by Groq's Whisper API for fast, accurate transcription
- Smart Text Insertion: Automatically inserts transcribed text at your cursor position
- Beautiful Overlay: Native macOS overlay window shows recording status
- Abort Recording: Double-tap Esc to cancel recording
- Retry on Failure: Built-in retry mechanism for failed transcriptions
- Menu Bar App: Runs quietly in your menu bar without cluttering your Dock
Installation
Quick Install
pip install tap2talk
Install from Source
git clone https://github.com/unclecode/tap2talk.git
cd tap2talk
pip install -e .
Setup
-
Get your Groq API Key:
- Visit Groq Console
- Create a free account and generate an API key
- Keys start with
gsk_
-
Run Tap2Talk:
tap2talk
-
First Run Setup:
- You'll be prompted to enter your Groq API key
- The key is saved securely in
~/.tap2talk/config.yaml
Usage
Quick Start
# Install
pip install tap2talk
# Run (will ask how you want to run it)
tap2talk
# Or start directly as background service
tap2talk start
Service Commands
tap2talk # Interactive mode (asks service or terminal)
tap2talk start # Start as background service
tap2talk stop # Stop background service
tap2talk status # Check if running
tap2talk restart # Restart service
tap2talk logs # View recent logs
Using Tap2Talk
-
Grant Permissions: macOS will ask for:
- Accessibility permission (for keyboard monitoring)
- Microphone permission (for recording)
-
Use Hotkeys:
- Double-tap Ctrl: Start/stop recording
- Double-tap Esc: Abort recording
-
Watch the Overlay: A beautiful overlay shows:
- Recording (red mic icon)
- Processing (gear icon)
- Done (checkmark)
- Aborted (X mark)
- Error (warning icon)
macOS Permissions
Tap2Talk requires these permissions to function:
- Accessibility: System Preferences > Security & Privacy > Privacy > Accessibility
- Microphone: System Preferences > Security & Privacy > Privacy > Microphone
Add your Terminal app (Terminal, iTerm2, etc.) to both permission lists.
Configuration
Configuration is stored in ~/.tap2talk/config.yaml:
groq_api_key: "your_api_key_here"
log_level: "info"
auto_paste: true
recording_timeout: 30
model: "whisper-large-v3-turbo"
double_press_threshold_ms: 400
overlay_position: "top-right"
overlay_hide_delay_ms: 2000
Troubleshooting
Permissions Issues
Make sure your terminal has both Accessibility and Microphone permissions in System Preferences.
API Key Issues
- Groq API keys start with
gsk_ - Get a free key at console.groq.com/keys
- Check your key is saved in
~/.tap2talk/config.yaml
Recording Not Starting
- Check the menu bar for the Tap2Talk icon
- Ensure you're double-tapping Ctrl quickly (within 400ms)
- Try adjusting
double_press_threshold_msin config
Development
# Clone the repository
git clone https://github.com/unclecode/tap2talk.git
cd tap2talk
# Create virtual environment
python -m venv .venv
source .venv/bin/activate
# Install in development mode
pip install -e .
# Run tests
python -m pytest
Building
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Build package
uv build
# Install locally
uv pip install dist/tap2talk-*.whl
License
MIT License - see LICENSE file for details.
Author
Created by unclecode
- GitHub: @unclecode
- X/Twitter: @unclecode
- Check out Crawl4AI - #1 open source library for web crawling with 50K+ stars
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Acknowledgments
Release files for tap2talk 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tap2talk-0.2.0.tar.gz | 37.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tap2talk-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 75.7 kB
Release files / tap2talk-0.2.0.tar.gz
| Download URL | tap2talk-0.2.0.tar.gz |
|---|---|
| Size | 37.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a88d8d104eff195305022388d181f393307189e8a992546809adf8c8b97f08e2
|
|
BLAKE2b-256 checksum How to use checksums |
e7d508a9f93d7a4ae90a5927bde4e741a52036ec5aa6ed2378cdb7f5fd6381b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.18
|
Release files / tap2talk-0.2.0-py3-none-any.whl
| Download URL | tap2talk-0.2.0-py3-none-any.whl |
|---|---|
| Size | 37.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
480c9a70f7c51d3fc2aa2816304c4aa77f5e6d0b005996430f5f9f334f4c6a36
|
|
BLAKE2b-256 checksum How to use checksums |
b57d80c47ef198bf6bfa0d12bd6df166633c880dfb0c4677e445dff732bb6222
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.18
|