An open-source Python-based personal voice assistant with face recognition security and intelligent automation capabilities.
๐ Get Started
ยท
๐ Report a Bug
ยท
โจ Request a Feature
Jarvis transforms your computer into an intelligent companion that not only responds to voice commands but also recognizes your face for secure access. Built with Python and powered by advanced AI libraries, Jarvis combines the convenience of voice interaction with the security of biometric authentication.
Unlike commercial assistants, Jarvis runs entirely on your machine, giving you complete control over your data and privacy while providing powerful automation capabilities.
- ๐ค Voice Interaction: Natural speech recognition with contextual responses and greetings
- ๐ค Face Recognition Security: Biometric authentication with automatic screenshots for security
- ๐ Web Intelligence: Google search, Wikipedia summaries, news updates, and IP lookup
- ๐ง Email Automation: Voice-controlled email composition and sending
- ๐ฅ๏ธ System Control: Application launching, file management, screenshots, and system monitoring
- ๐ต Entertainment Hub: YouTube control, music playback, and media management
- ๐ง Advanced Computing: WolframAlpha integration for complex calculations and queries
- โฐ Smart Scheduling: Alarms, reminders, task management, and focus mode
- ๐ฑ Communication: WhatsApp messaging and call automation via Twilio
- ๐ฎ Interactive Features: Built-in games like Rock Paper Scissors
- ๐ Multilingual Support: Translation capabilities with voice output
- ๐ System Monitoring: Battery status, performance metrics, and notifications
Jarvis implements a multi-layered architecture with security at its core:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Jarvis System Architecture โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ SECURITY LAYER โ
โ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Face Training โ โ Face Detection โ โ Access Control & โ โ
โ โ (OpenCV) โ โ (LBPH) โ โ Screenshots โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โผ โ
โ ๐ค INTERACTION LAYER โ
โ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Speech โ โ Command โ โ Response โ โ
โ โ Recognition โ โ Processing โ โ Generation โ โ
โ โ (Google API) โ โ Engine โ โ (pyttsx3) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โผ โ
โ โ๏ธ SERVICE LAYER โ
โ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Web โ โ Email โ โ System โ โ
โ โ Services โ โ SMTP โ โ Control โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Alarms & โ โ Games & โ โ Translation โ โ
โ โ Reminders โ โ Jokes โ โ Engine โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Wolfram โ โ
โ โ Alpha โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Component | Technology | Purpose |
|---|---|---|
| Speech Recognition | Google Speech API | High-accuracy voice command processing with natural language understanding |
| Text-to-Speech | pyttsx3 | Offline voice synthesis with customizable speech rates and voices |
| Face Recognition | OpenCV + LBPH | Secure biometric authentication with Local Binary Patterns Histograms |
| GUI Framework | Tkinter + PIL | Native cross-platform interface with animated GIF support |
| Web Automation | requests + BeautifulSoup | Intelligent web scraping and API interactions |
| System Control | pyautogui + psutil | Complete system automation and performance monitoring |
| Email Service | smtplib | Secure email sending with Gmail integration |
| Messaging | pywhatkit + Twilio | WhatsApp automation and phone call capabilities |
| Knowledge Engine | WolframAlpha API | Advanced mathematical and factual query processing |
| Translation | googletrans + gTTS | Multi-language translation with voice output |
- Python 3.8+: Download here
- Webcam: Required for face recognition security
- Microphone: For voice commands
- Internet Connection: For API services
-
Clone the Repository:
git clone https://github.com/Arpitgarg07/Jarvis.git cd Jarvis -
Install Dependencies:
# Run the automatic installer python installer.py # OR install manually pip install -r requirements.txt
Note: On Windows, you may need to install PyAudio manually from here.
-
Set Up Face Recognition (Security):
# Generate face samples (10 photos) python "Sample generator.py" # Train the recognition model python "Model Trainer.py"
-
Configure API Keys: Update the following files with your credentials:
For WolframAlpha (Calculatenumbers.py):
apikey = "YOUR_WOLFRAMALPHA_API_KEY"
For News (NewsRead.py):
# Replace the API key in the URLs apiKey=YOUR_NEWS_API_KEY
For Email (sendemail.py):
sender_email = "your_email@gmail.com" sender_password = "your_app_password"
-
๐ Launch Jarvis:
python Jarvismain.py
-
Activate Your Assistant: Say "Wake up" to start interacting with Jarvis!
- "Wake up" , "Go to sleep" - Control Jarvis
- "Hello" ,"What's the time?" - Basic interaction
- "Google search [topic]" , "Wikipedia [topic]" - Web search
- "What's the news?" ,"What's my IP address?" - Information
- "Open [app]" , "Take screenshot" - System control
- "Set an alarm" , "Remind me" - Time management
- "Focus mode" , "Show my focus" - Productivity tracking
- "Battery status" , "Internet speed test" - System info
- "Write an email" , "WhatsApp message" - Communication
- "Play playlist" , "Tell me a joke" - Entertainment
- "Calculate [math]" , "Translate [text]" - Smart features
- "Open game" , "Flip a coin" - Interactive fun
- Run
Sample generator.pyto capture 10 face samples - Execute
Model Trainer.pyto create recognition model - Update the
nameslist inJarvismain.pywith your name - Adjust
idvariable to match your assigned number
- Blocks distracting websites during work sessions
- Tracks productivity time in
focus.txt - Generates focus graphs with
FocusGraph.py - Requires administrator privileges on Windows
- Update
contact_dictinJarvismain.pywith your contacts - Uses
pywhatkitfor automated messaging - Supports both manual and automated message scheduling
- Use Gmail App Passwords for security
- Update recipient mappings in
sendemail.py - Supports voice-to-text email composition
- Biometric face recognition with OpenCV
- Automatic security screenshots for unknown faces
- Optional password protection
- Local data processing for privacy
- Context-aware command processing
- Natural language understanding
- Intelligent system control
- Productivity tracking and analytics
- Website blocking during work sessions
- Productivity time tracking
- Visual analytics with matplotlib
- Administrative control for system-level blocking
- Built-in games (Rock Paper Scissors)
- Joke telling with pyjokes
- Coin flipping with sound effects
- Interactive voice responses
We welcome contributions! Here's how you can help:
- ๐ Bug Fixes: Improve reliability and fix issues
- โจ New Commands: Add more voice command capabilities
- ๐ง Hardware Support: Expand device compatibility
- ๐ Localization: Add support for more languages
- ๐ฑ Integrations: Connect with more services and APIs
- ๐จ UI Improvements: Enhance the visual interface
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Test your changes thoroughly
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- WolframAlpha: Get API Key - 2000 queries/month free
- News API: Get API Key - 1000 requests/day free
- OpenWeatherMap: Get API Key - 1000 calls/day free
- Twilio: For phone call functionality
- Google Calendar API: For advanced calendar integration
Jarvis/
โโโ Jarvismain.py # Main application with face recognition
โโโ INTRO.py # Animated startup screen
โโโ GreetMe.py # Greeting functionality
โโโ Calculatenumbers.py # WolframAlpha integration
โโโ Dictapp.py # System control functions
โโโ SearchNow.py # Web search capabilities
โโโ NewsRead.py # News reading functionality
โโโ Whatsapp.py # WhatsApp integration
โโโ Translator.py # Translation services
โโโ FocusMode.py # Productivity website blocking
โโโ FocusGraph.py # Focus time visualization
โโโ battery.py # Battery monitoring
โโโ game.py # Rock Paper Scissors game
โโโ joke.py # Joke functionality
โโโ alarm.py # Alarm system
โโโ reminder.py # Reminder notifications
โโโ sendemail.py # Email functionality
โโโ Location.py # Location services
โโโ Sample generator.py # Face recognition training
โโโ Model Trainer.py # Face recognition model
โโโ installer.py # Dependency installer
โโโ keyboard.py # Volume control
โโโ sendcall.py # Twilio call integration
โโโ Various text files # Data storage and configuration
Jarvis prioritizes your privacy:
- Local Processing: Face recognition and most operations run locally
- Encrypted Storage: Sensitive data encrypted on your machine
- API Control: You choose which external services to use
- Open Source: Complete transparency - inspect every line of code
- No Tracking: Zero telemetry or user data collection
- Biometric Security: Face recognition prevents unauthorized access
Jarvis includes a comprehensive testing suite to ensure reliability and code quality.
# Run all tests
python -m pytest tests/ -v
# Run tests with coverage
python -m pytest tests/ --cov=. --cov-report=html# Run all checks (tests, linting, formatting, security)
python run_tests.py
# Run specific test categories
python run_tests.py --skip-lint
python run_tests.py --skip-security
python run_tests.py --fix # Auto-fix formatting issues- Unit Tests: Individual module functionality
- Integration Tests: Module interaction and imports
- Code Quality: Linting with flake8, formatting with Black
- Security Checks: Vulnerability scanning with bandit
- Coverage Analysis: Code coverage reporting
The project uses GitHub Actions for automated testing:
- Main CI Workflow: Quick syntax and basic checks for all file changes
- Python Tests Workflow: Comprehensive testing specifically for Python file changes
- Multi-Python Support: Tests against Python 3.8, 3.9, 3.10, and 3.11
# Install development tools
pip install -r requirements-dev.txt
# Set up pre-commit hooks
pre-commit installFor detailed testing documentation, see tests/README.md.
Thanks to these amazing people who make Jarvis better:
- ๐ฌ Discussions: GitHub Discussions
- ๐ Bug Reports: Issues
- ๐ง Email: Contact Arpit
This project is freely available under the MIT License. See the LICENSE file for details.
- Tony Stark/Iron Man: For the inspiration behind the name and vision
- OpenCV Community: For powerful computer vision tools
- Python Community: For the amazing libraries that power Jarvis
- Contributors: Everyone who helps improve this project
- Users: Thank you for choosing Jarvis as your AI assistant
