"Sir, the code is polished and waitingโshall we embrace the future?" - Enhance your Claude Code experience with intelligent voice notifications.
๐ฌ Watch the Demo: Claude Code with JARVIS-like Voice Notifications
Experience enhanced development workflow with intelligent voice feedback
Claude Code Jarvis is a sophisticated hook system that enhances your Claude Code CLI experience with intelligent voice notifications. Get spoken feedback when Claude needs your input with AI-generated messages and multiple TTS providers.
- ๐๏ธ Voice Notifications - Get spoken alerts when Claude needs your input
- ๐ญ AI-Generated Messages - Witty, professional notification messages
- ๐ Multi-Provider TTS - Works with ElevenLabs, OpenAI, and local TTS
- ๐ Operation Logging - Tracks notification events
- โก Seamless Integration - Works transparently with Claude Code
- Silent CLI interactions
- No audio feedback when Claude needs input
- Generic notifications
- "Sir, your expertise is needed" ๐
- Voice notifications when Claude waits for input ๐ต
- AI-generated witty notification messages ๐ญ
- Claude Code CLI
- uv (Python package manager)
- Python 3.8+
-
Clone the repository
git clone https://github.com/swapnildahiphale/claude-code-jarvis-hooks.git cd claude-code-jarvis-hooks -
Set up environment variables
cp .env.example .env # Edit .env with your API keys -
Configure your API keys
# Required for AI-generated messages CLAUDE_HOOKS_OPENAI_API_KEY=your_openai_api_key_here # Optional: For premium voice quality ELEVENLABS_API_KEY=your_elevenlabs_api_key_here ELEVENLABS_VOICE_ID=your_voice_id_here # Personalization ENGINEER_NAME=YourName
-
Activate the hooks
# Copy this folder to your project's .claude directory # The hooks will automatically activate when using Claude Code
Once installed, Jarvis hooks work automatically with Claude Code:
# Normal Claude Code usage
claude
# Jarvis automatically:
# โ
Provides voice notifications when Claude needs input
# โ
Generates AI-powered notification messages
# โ
Handles stop events with voice feedback# Test voice notifications
uv run .claude/hooks/utils/tts/elevenlabs_tts.py "Test message"
# Test AI message generation
uv run .claude/hooks/utils/llm/oai.py --completion
uv run .claude/hooks/utils/llm/oai.py --notification
# Test notification hook
uv run .claude/hooks/notification.py --notifygraph TD
A[Claude Code Notification Event] --> B[notification.py]
B --> C[Voice Notification]
D[Claude Code Stop Event] --> E[stop.py]
E --> F[Voice Notification]
.claude/
โโโ hooks/
โ โโโ notification.py # Voice notifications
โ โโโ stop.py # Stop event notifications
โ โโโ subagent_stop.py # Subagent stop notifications
โ โโโ utils/
โ โโโ llm/ # AI message generation
โ โ โโโ oai.py # OpenAI integration
โ โ โโโ anth.py # Anthropic fallback
โ โโโ tts/ # Text-to-speech
โ โโโ elevenlabs_tts.py
โ โโโ openai_tts.py
โ โโโ pyttsx3_tts.py
โโโ settings.json # Hook configuration
Jarvis generates sophisticated notification messages with:
- Calm, articulate tone with subtle Irish accent
- Quietly confident with gentle wit
- Professional yet approachable style
- Precise diction and poised pacing
- "Sir, your input is neededโlest I proceed without divine guidance."
- "Swapnil, your input is kindly requestedโno pressure, Sir."
- "The code is polished and waitingโshall we embrace the future, Sir?"
- "All set, Swapnilโready for whateverโs next with quiet confidence."
All operations are logged to logs/:
notification.json- Voice notificationsstop.json- Stop event notificationschat.json- Chat-related events
# Core Configuration
ENGINEER_NAME=YourName # For personalized messages
CLAUDE_HOOKS_OPENAI_API_KEY=sk-... # OpenAI API key
CLAUDE_HOOKS_OPENAI_MODEL=gpt-4.1-nano # Model selection
# Voice Configuration
ELEVENLABS_API_KEY=sk_... # ElevenLabs API key
ELEVENLABS_VOICE_ID=HzHW0uLdA9prFl1Z5krC # Voice selection
ELEVENLABS_MODEL_ID=eleven_turbo_v2_5 # Model selectionConfigure allowed tools in .claude/settings.json:
{
"permissions": {
"allow": [
"Bash(mkdir:*)",
"Bash(uv:*)",
"Write",
"Edit"
]
}
}Jarvis uses intelligent fallbacks:
- ElevenLabs TTS (Premium quality) โ
- OpenAI TTS (Good quality) โ
- pyttsx3 (Local, no API required)
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Anthropic for the amazing Claude Code CLI
- OpenAI for powering the AI personality
- ElevenLabs for premium voice synthesis
- Iron Man for the JARVIS inspiration