Voice transcription desktop app - Double-tap Ctrl to start/stop recording
Project description
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
Project details
Release history Release notifications | RSS feed
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 tap2talk-0.2.0.tar.gz.
File metadata
- Download URL: tap2talk-0.2.0.tar.gz
- Upload date:
- Size: 37.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a88d8d104eff195305022388d181f393307189e8a992546809adf8c8b97f08e2
|
|
| MD5 |
c212e3e33bd344e648e301d5fe9ed450
|
|
| BLAKE2b-256 |
e7d508a9f93d7a4ae90a5927bde4e741a52036ec5aa6ed2378cdb7f5fd6381b3
|
File details
Details for the file tap2talk-0.2.0-py3-none-any.whl.
File metadata
- Download URL: tap2talk-0.2.0-py3-none-any.whl
- Upload date:
- Size: 37.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
480c9a70f7c51d3fc2aa2816304c4aa77f5e6d0b005996430f5f9f334f4c6a36
|
|
| MD5 |
c595d8a95266f1fa8fd267467d165662
|
|
| BLAKE2b-256 |
b57d80c47ef198bf6bfa0d12bd6df166633c880dfb0c4677e445dff732bb6222
|