Skip to main content

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

  1. Get your Groq API Key:

    • Visit Groq Console
    • Create a free account and generate an API key
    • Keys start with gsk_
  2. Run Tap2Talk:

    tap2talk
    
  3. 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

  1. Grant Permissions: macOS will ask for:

    • Accessibility permission (for keyboard monitoring)
    • Microphone permission (for recording)
  2. Use Hotkeys:

    • Double-tap Ctrl: Start/stop recording
    • Double-tap Esc: Abort recording
  3. 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:

  1. Accessibility: System Preferences > Security & Privacy > Privacy > Accessibility
  2. 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_ms in 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

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Acknowledgments

  • Powered by Groq for lightning-fast transcription
  • Built with rumps for macOS menu bar integration
  • Uses PyObjC for native macOS features

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

tap2talk-0.2.0.tar.gz (37.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tap2talk-0.2.0-py3-none-any.whl (37.9 kB view details)

Uploaded Python 3

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

Hashes for tap2talk-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a88d8d104eff195305022388d181f393307189e8a992546809adf8c8b97f08e2
MD5 c212e3e33bd344e648e301d5fe9ed450
BLAKE2b-256 e7d508a9f93d7a4ae90a5927bde4e741a52036ec5aa6ed2378cdb7f5fd6381b3

See more details on using hashes here.

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

Hashes for tap2talk-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 480c9a70f7c51d3fc2aa2816304c4aa77f5e6d0b005996430f5f9f334f4c6a36
MD5 c595d8a95266f1fa8fd267467d165662
BLAKE2b-256 b57d80c47ef198bf6bfa0d12bd6df166633c880dfb0c4677e445dff732bb6222

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page