⚠️ WARNING: This tool may cause severe Black Mirror vibes, existential contemplation about AI, and an irresistible urge to dictate everything by voice. Side effects include increased productivity and spontaneous deep-focus coding sessions. 👁️
The world's most blessed voice assistant for Claude Code is here! Finally, you can code by literally talking to your computer like in those sci-fi movies, except this actually works and won't try to kill you. Probably. 🤖
This is a voice-controlled interface for Claude Code CLI. Instead of typing like a peasant from 2023, you can now:
- 🗣️ SPEAK YOUR CODE into existence
- 🎤 DICTATE ENTIRE FEATURES while dramatically pacing around your room
- 💬 HAVE PHILOSOPHICAL DEBATES with Claude about whether your code is art
- 🧠 Enter SCHIZO MODE for deep, uninterrupted coding sessions
- 👁️ Experience BLACK MIRROR VIBES as AI listens to your every word (but in a good way!)
No more keyboard! No more RSI! Just you, your voice, and Claude doing the actual work while you supervise like a tech CEO! 🎩
Chat with Claude like he's your coding buddy who never gets tired of your questions.
- Auto-Pause Detection: Speak naturally, AI figures out when you're done (Black Mirror tech!)
- Enter-to-Send Mode: For those who prefer manual control (we respect consent!)
- Voice Response Options: Claude can talk back or just text (your choice!)
- Perfect for: Quick questions, code reviews, debugging sessions
For when you need to go DEEP. Like, really deep.
- Unlimited Dictation Length: Speak for as long as you want, no judgment
- Session Persistence: Exit Claude and come back to the SAME conversation
- Text Editing: Review and edit transcribed text before sending
- Multi-Message Support: Add voice OR text messages to ongoing sessions
- Perfect for: Complex features, long explanations, existential monologues about your codebase
- 🧠 Whisper AI Transcription (medium model, ~1.5GB)
- 🔊 Text-to-Speech Responses (macOS
saycommand with Russian Milena voice) - 💾 Project Directory Memory (remembers where you were vibing last time)
- 🎯 VAD (Voice Activity Detection) for automatic pause detection
- 🌍 Multi-language Support (Whisper auto-detects your language)
- ⚡ No Timeouts in Dictation Mode (code for hours if needed!)
- macOS (because we use the
saycommand) - Python 3.9+ (anything older is not recommended)
- Claude Code CLI installed and authenticated
- Microphone (obviously, unless you have telepathy)
- ~2GB free space (for Whisper model on first run)
- Good vibes (essential, non-negotiable)
git clone https://github.com/yourusername/claude-voice-assistant.git
cd claude-voice-assistant# Install Homebrew if you don't have it (seriously, get it)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install portaudio for pyaudio
brew install portaudiopython3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activatepip install -r requirements.txtIf pyaudio gives you trouble (it probably will):
pip install --global-option='build_ext' \
--global-option='-I/opt/homebrew/include' \
--global-option='-L/opt/homebrew/lib' pyaudioDependencies include:
faster-whisper- Neural network for speech recognitionpyaudio- For capturing your beautiful voicewebrtcvad- Voice Activity Detection (knows when you're talking)anthropic- For Claude API (if you want to extend it)
If you haven't already:
# Follow instructions at https://docs.claude.com/
# Make sure `claude --version` worksCRITICAL: macOS needs microphone access for Terminal/iTerm:
- Go to System Preferences → Security & Privacy → Privacy
- Click Microphone
- Check the box next to Terminal or iTerm2
- Restart your terminal if needed
cd ~/claude-voice-assistant
source venv/bin/activate
python voice_assistant.pyYou'll see the main menu:
============================================================
🌙 CLAUDE VOICE ASSISTANT 🌙
============================================================
⚠️ Black Mirror x Vibe Coding x Schizo Mode 👁️
============================================================
Choose your vibe coding mode:
[1] 💬 Conversation Mode - chat with AI (like Black Mirror)
[2] 📝 Dictation Mode - long schizo task dictation
[3] ⚙️ Configure project (change directory)
[q] ❌ Exit vibe session
============================================================
💡 Tip: speak naturally! 🚀
============================================================
Perfect for quick questions and rapid-fire coding sessions.
What to do:
- Choose option
1 - Select input method:
[1]Auto-pause detection (speak, wait, it detects your pause)[2]Enter-to-send (speak, press Enter when done)
- Choose if you want voice responses (
yorn) - Start speaking your questions!
- Press
Ctrl+Cto exit
Example Session:
You: "Claude, what's wrong with this Python code?"
Claude: *analyzes your code and explains the issue*
You: "Thanks bro! How do I fix it?"
Claude: *provides solution*
For deep work and complex tasks. This is where the magic happens. ✨
What to do:
- Choose option
2 - Start recording and speak your task (can be VERY long)
- Press Enter when done
- Review the transcribed text:
[y]Send as is[a]Add text (logs, commands, code snippets)[e]Edit entire text[n]Cancel
- Press Enter to launch Claude interactive session
- Work with Claude as long as needed
- Type
/exitwhen done - MAGIC MOMENT: You'll return to a menu where you can:
[d]Add another voice dictation to THE SAME session[t]Add a text message to the session[c]Continue working with Claude (no new message)[m]Return to main menu
Example Session:
You: *dictates for 3 minutes about a complex feature*
System: *shows transcribed text*
You: [a] to add logs
You: *pastes error logs*
You: [y] to send
Claude: *launches interactive mode and starts working*
*Claude fixes your code, runs tests, commits*
You: /exit
System: "What would you like to do?"
You: [d] to add more context
You: *records another message*
Claude: *continues in the SAME conversation*
Set your project directory. It'll be saved and remembered for next time!
Choose option: 3
Enter project directory path: ~/projects/my-awesome-app
✅ Directory changed to: /Users/you/projects/my-awesome-app
💾 Settings saved! This directory will be used on next launch.- Don't yell, Whisper AI is good but not deaf
- Use natural pauses between thoughts
- The model handles accents pretty well!
- Use it for feature requests, bug reports, architectural discussions
- Session persistence means you can iterate without losing context
- Perfect for pair programming with Claude
- Fast questions, quick fixes, sanity checks
- Enter-to-send mode is faster if you know what you want to say
- After voice transcription, add logs, error messages, code snippets as text
- Best of both worlds: quick voice description + precise text data
- Set it once, forget about it
- Claude will work in the right context every time
- Voice responses are cool for learning/reviewing
- Text-only is faster for rapid iteration
- Your choice, we're not judging!
- Use headphones to prevent echo
- Find a quiet spot for best transcription
- Background noise confuses Whisper (it's sensitive, ok?)
Solutions:
- Check microphone permissions (System Preferences → Security → Privacy → Microphone)
- Make sure you're speaking for at least 2-3 seconds
- Check if Terminal/iTerm has microphone access
- Try unplugging/replugging external mics
- Restart Terminal and try again
Solution:
# Install Claude Code CLI
# Visit: https://docs.claude.com/
# Make sure it's in your PATH
claude --version # Should workSolutions:
- Speak more clearly (sorry, AI isn't perfect yet)
- Reduce background noise
- Use a better microphone
- Try the larger Whisper model (edit code to use "large" instead of "medium")
- Check if your language is supported by Whisper
Solutions:
- First run downloads the model (~1.5GB), be patient
- Use faster hardware (M1/M2 Macs work great)
- Switch to "small" model for speed (less accuracy though)
- Make sure you're not running other heavy tasks
Solution:
# Sometimes Hugging Face is moody
# Just run the app again, it usually works on retry
python voice_assistant.pySolutions:
# Make sure portaudio is installed
brew install portaudio
# Try with explicit paths
pip install --global-option='build_ext' \
--global-option='-I/opt/homebrew/include' \
--global-option='-L/opt/homebrew/lib' pyaudio
# If still failing, try conda (last resort)
conda install -c conda-forge pyaudioEdit the code:
# In voice_assistant.py, find text_to_speech method (line ~324)
def text_to_speech(self, text: str):
subprocess.run(
["say", "-v", "Alex", text], # Change "Milena" to any macOS voice
check=False
)Available voices:
say -v "?" # Lists all available voicesEdit voice_assistant.py line ~837:
# Default (balanced)
assistant = VoiceAssistant(model_size="medium")
# Faster but less accurate
assistant = VoiceAssistant(model_size="small")
# Slower but more accurate
assistant = VoiceAssistant(model_size="large-v3")Edit line ~294:
# More aggressive = triggers on quieter speech (1-3)
self.vad = webrtcvad.Vad(aggressiveness=3) # Default: 3Edit line ~363:
silence_threshold = 30 # Number of 30ms chunks (default: 900ms pause)
speech_chunks_required = 10 # Minimum speech before processingPull requests are welcome! For major changes:
- Fork the repo
- Create a branch (
git checkout -b feature/awesome-feature) - Make your changes
- Add tests if you're feeling responsible
- Commit with style (
git commit -m "Added telepathic mode (just kidding)") - Push and create a PR
Please keep the humor spicy and the code clean! 🧼
MIT License - Use it, abuse it, just don't blame us if you become too productive and your boss expects this level of output all the time. 😅
- faster-whisper - Local speech-to-text (OpenAI Whisper optimized)
- webrtcvad - Voice Activity Detection for pause detection
- pyaudio - Audio recording from microphone
- macOS say - Text-to-speech for responses
- Claude Code CLI - AI assistant interface
- Python 3.9+ - Because we're not savages
- Anthropic - For Claude and the amazing Claude Code CLI
- OpenAI - For Whisper (the transcription model)
- faster-whisper - For making Whisper actually fast
- The entire open-source community - Y'all are the real MVPs
- Coffee - For existing ☕
- That Black Mirror episode - You know the one 👁️
For those wondering what all these terms mean:
- Vibe - The energy, the flow, the zone
- Schizo mode - Deep focus state (not actually schizophrenia, just intense concentration)
- Black Mirror vibes - That sci-fi feeling when AI actually works
- Voice coding - Literally coding by talking to your computer
- Hotkeys for quick mode switching
- Conversation history saving
- Support for more TTS voices
- GUI version (if terminal gets old)
- Support for other AI assistants (GPT, etc.)
- Windows/Linux support (if anyone cares)
- Telepathy mode (v2.0, probably)
- Time travel debugging (v3.0, definitely)
Remember: This tool is powerful, use it responsibly. Speak clearly, code boldly, and may your bugs be few and your commits many!
Happy coding! 🚀🌙
Made with 💚 and blessed vibes by developers who got tired of typing
P.S. - If this project helped you, consider:
- ⭐ Starring the repo (please, my ego needs it)
- 🐛 Reporting bugs (but nicely, I have feelings)
- 💡 Suggesting features (the crazier the better)
- 🎤 Telling your friends about voice coding (they'll think you're from the future)
P.P.S. - No, it doesn't actually read your mind. Yet. That's v2.0. 🧠✨
P.P.P.S. - Yes, the Black Mirror references are intentional. No, the assistant won't take over your life. Probably. 👁️