Features • Quick Start • Demo • Documentation • Contributing
Buddy is an all-in-one AI virtual assistant that revolutionizes how you interact with your computer. Control your mouse and keyboard with hand gestures, execute commands with your voice, and automate tasks with AI-powered features.
Author: Rajpal Singh Rathore
- Virtual Mouse - Hand gesture-based mouse control
- Virtual Keyboard - On-screen keyboard with gesture typing
- Voice Assistant "Buddy" - AI-powered voice commands
- ✅ Face authentication
- ✅ Voice command recognition
- ✅ Spotify integration (play music, search artists)
- ✅ YouTube control (play videos, search)
- ✅ WhatsApp automation (messages, calls)
- ✅ Phone integration (calls, SMS via Phone Link)
- ✅ Email composition (Gmail)
- ✅ Web search (Google, product search on 20+ sites)
- ✅ Note taking (Sticky Notes, file-based)
- ✅ Reminders (Windows Task Scheduler)
- ✅ Screenshots
- ✅ AI chatbot (HuggingChat)
- ✅ Code generation
- ✅ Image generation (Stable Diffusion)
- ✅ Google Maps routes
| Gesture | Action |
|---|---|
| Index finger movement | Move cursor |
| Index finger bent + middle straight | Left click |
| Middle finger bent + index straight | Right click |
| Both fingers bent (thumb far) | Double click |
| Both fingers bent (thumb close) | Screenshot |
| Thumb + index touching + move up/down | Scroll |
| Thumb + pinky touching | Drawing mode |
| Thumb + ring finger (1 sec) | Close window |
| Thumb + middle finger (1 sec) | Minimize window |
- Windows 10/11
- Python 3.8 or higher
- Webcam
- Microphone
- Internet connection
-
Clone or download this repository
cd C:\VirtualMouseProject -
Run setup script
setup.batThis will:
- Create virtual environment
- Install all dependencies
- Verify installation
-
Configure API keys (Optional) Create a
.envfile in the project root:CLIENT_ID=your_spotify_client_id CLIENT_SECRET=your_spotify_client_secret HuggingFaceApiKey=your_huggingface_api_key -
Test components
python test_components.py -
Launch the assistant
start.batOr directly:
python run.py
- Run
start.bat - Complete face authentication when prompted
- Wait for "Ready to help" confirmation
- Use voice commands or click the mic button
- Press
Alt + Jfor quick voice activation
- "Open YouTube"
- "Play Despacito on YouTube"
- "Search for laptop on Amazon"
- "Send a message to [contact name] on WhatsApp"
- "Set a reminder for tomorrow at 3 PM to call mom"
- "Take a screenshot"
- "Generate an image of a sunset over mountains"
- "Write a code to sort a list in Python"
- "What's the weather like?"
- Voice: "Start virtual mouse" / "Start virtual keyboard"
- Or use Flask API endpoints (if running app.py)
- Check if camera is being used by another application
- Grant camera permissions to Python
- Check microphone permissions
- Ensure internet connection (uses Google Speech API)
- Adjust
r.pause_thresholdin commands.py if needed
- Ensure good lighting
- Train your face using
assist/Engine/auth/sample.py - Run
assist/Engine/auth/trainer.pyto generate trainer.yml
- Activate virtual environment:
envjarvis\Scripts\activate - Reinstall:
pip install -r requirements.txt
- Get API credentials from https://developer.spotify.com
- Add to .env file
VirtualMouseProject/
├── run.py # Main launcher (multiprocessing)
├── main.py # Assistant initialization
├── app.py # Flask API server
├── virtualMouse.py # Gesture-based mouse
├── virtual_ketboard.py # Gesture-based keyboard
├── requirements.txt # Dependencies
├── setup.bat # Installation script
├── start.bat # Launch script
├── test_components.py # Component testing
├── assist/
│ ├── Engine/
│ │ ├── commands.py # Command handler
│ │ ├── features.py # Feature implementations
│ │ ├── config.py # Configuration
│ │ ├── db.py # Database operations
│ │ ├── spotify.py # Spotify integration
│ │ ├── auth/ # Face authentication
│ │ ├── ImageBot/ # Image generation UI
│ │ └── CodingBuddy/ # Code assistant UI
│ └── www/ # Web interface
│ ├── index.html
│ ├── main.js
│ └── style.css
└── envjarvis/ # Virtual environment
Coming Soon: Full demo video showcasing all features
Secure login with facial recognition
Control cursor with hand gestures
Beautiful web-based UI with voice commands
Create images from text prompts
🎵 "Play [song name] on Spotify"
📧 "Send email to [contact]"
🌐 "Search Google for [query]"
🎨 "Generate image of [description]"
💻 "Write code to [task]"
Edit assist/Engine/commands.py and add to allCommands() function
Use the web UI contact form or edit database directly
Run the easy setup script:
.\setup_face_auth.batOr manually:
- Run
python assist/Engine/auth/sample.pyto capture face samples - Run
python assist/Engine/auth/trainer.pyto train the model
Contributions are welcome! Here's how:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
See DEPLOYMENT.md for complete deployment guide.
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenCV for computer vision capabilities
- MediaPipe for hand tracking
- Eel for Python-JavaScript bridge
- HuggingFace for AI models
- All open-source contributors
Rajpal Singh Rathore
- GitHub: @Rathore-Rajpal
- Project Link: https://heybuddy.rathorerajpal.live
This project is open source and available for educational purposes.
Contributions, issues, and feature requests are welcome!
- Some features require API keys (Spotify, HuggingFace)
- WhatsApp automation may require WhatsApp Desktop app
- Phone features require Windows Phone Link app
- Face authentication model needs to be trained with your face
For issues or questions, please create an issue in the repository.