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

  1. Start Tap2Talk: Run tap2talk in your terminal
  2. Grant Permissions: macOS will ask for:
    • Accessibility permission (for keyboard monitoring)
    • Microphone permission (for recording)
  3. Use Hotkeys:
    • Double-tap Ctrl: Start/stop recording
    • Double-tap Esc: Abort recording
  4. 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.1.1.tar.gz (35.2 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.1.1-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

Details for the file tap2talk-0.1.1.tar.gz.

File metadata

  • Download URL: tap2talk-0.1.1.tar.gz
  • Upload date:
  • Size: 35.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for tap2talk-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ec396fe31189d134b63577c8cf5bdfaf605b8caba592923677c4dc9cde3fe443
MD5 dd89ba32efdaf148ad7f3f64ec1144a4
BLAKE2b-256 2f15da919de9d0df906e662bdda6e74e36e8034c470cbbe0b0d90bb84cac22c6

See more details on using hashes here.

File details

Details for the file tap2talk-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: tap2talk-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 35.0 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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3d788e3e3cdf9f70d4e6f4e1287bc6280c8ed8294466981d6e949bd01293795d
MD5 5d6ed60aecad8b56e3cc3b68e0d16095
BLAKE2b-256 9290f5beeb95d76294b53e1355954a8907ba851c8d0dc80e26e719fec0be331d

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