Talk to your terminal. Claude Code hears you.
Continuous mic capture → voice activity detection → local speech-to-text → inject into Claude Code's terminal input. Fully local, no cloud STT.
- Mic capture: sounddevice (PortAudio)
- VAD: webrtcvad (Google WebRTC, C extension)
- STT: faster-whisper (CTranslate2, Whisper base.en)
- Injection: AppleScript keystroke/clipboard into active terminal
- TTS (output): voxtral-mcp speak tool (Kokoro-82M) — Claude Code calls it directly
# Start listening (Open Mic mode, paste delivery)
./run.sh
# Use specific mic
./run.sh --device 3
# Dry run — transcribe but don't inject
./run.sh --mode dry-run
# Better accuracy (slower)
./run.sh --model small.en
# Target specific app
./run.sh --target Terminal- Terminal A:
./run.sh(autotalk listens) - Terminal B:
claude(Claude Code running) - Talk → autotalk transcribes → pastes into Claude Code
- Claude Code responds → uses voxtral-mcp
speaktool to read aloud
autotalk.py— main script (mic → VAD → STT → inject)run.sh— launcher (activates venv)test_pipeline.py— component validation.venv/— Python 3.13 virtual environment
- macOS (AppleScript injection)
- Python 3.11+
- Microphone access (grant in System Settings > Privacy > Microphone)
- Accessibility permission for AppleScript keystroke injection