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.2.tar.gz (35.3 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.2-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tap2talk-0.1.2.tar.gz
  • Upload date:
  • Size: 35.3 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.2.tar.gz
Algorithm Hash digest
SHA256 18fffe62a6fbb32e3e09f18e52ab8f8a751457cb9ab512c49648c2bc3545feea
MD5 029046a35f16455fbb2e024eeb0ad226
BLAKE2b-256 628a83a311acf168b7bb02c6e6163b63672e20928c2d1b61d64b5b2107d9426d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tap2talk-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c4a8217cab046543634f20ffc90c119e6f4a2ac37e64ea277fdebe640a34f7a5
MD5 177a1e0b51915088e1e0ad36263786b7
BLAKE2b-256 690a540a2d63d32a8696f20d4f734b3dab2aa3055a0d6267df0429071d2d5fbd

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