A modern, modular AI assistant powered by specialized agents for autonomous task execution. Built with local-first architecture for privacy and offline capability.
- KnowledgeAgent: Quick answers via Wikipedia + Bing search
- MediaAgent: Dynamic YouTube music/video playback with genre support
- SystemAgent: Volume control, app launching, media keys
- WebAgent: General web search and news (fallback)
- Real-time WebSocket communication
- Glassmorphism dark mode design
- Live agent status visualization
- Voice input via browser's Web Speech API
- Local execution (no cloud dependency)
- Modular design for easy customization
- Bing search integration (no API keys needed)
- Python 3.8+
- Node.js 16+ (for frontend)
- Windows OS (for system control features)
- Clone the repository
git clone https://github.com/yourusername/AI-Jarvis-model.git
cd AI-Jarvis-model- Install Python dependencies
pip install -r requirements.txt- Install frontend dependencies
cd frontend
npm install
cd .../start_jarvis.batThen open http://localhost:5173 in your browser.
python main.pypython test_jarvis.pyKnowledge Queries:
- "Who is Elon Musk?"
- "What is quantum computing?"
- "Tell me about the Eiffel Tower"
Media Control:
- "Play Shape of You"
- "Play some rock music"
- "Play romantic songs playlist"
System Control:
- "Mute volume"
- "Open notepad"
- "Launch calculator"
- Click the microphone button
- Speak your command
- See real-time agent processing
- Get instant responses
jarvis_core/
βββ orchestrator.py # Routes commands to agents
βββ state.py # Shared agent state
βββ agents/
β βββ knowledge_agent.py # Wikipedia + Bing search
β βββ media_agent.py # YouTube playback
β βββ system_agent.py # System control
β βββ web_agent.py # General web (fallback)
βββ tools/
βββ browser_tools.py # Bing search, URL handling
βββ speech_tools.py # Voice I/O
βββ system_tools.py # OS automation
Command β Orchestrator β {
"volume|mute|open" β SystemAgent
"play|music|song" β MediaAgent
"who|what|search" β KnowledgeAgent
* β WebAgent (fallback)
}Currently uses Bing (via web scraping). No API key required.
Modify jarvis_core/tools/speech_tools.py:
# Change voice speed
engine.setProperty('rate', 150) # Default: 150
# Change voice
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id) # 0=male, 1=femaleCORS Settings (Production):
# Set allowed frontend origins
export JARVIS_FRONTEND_URL="https://yourdomain.com"
# For multiple origins
export JARVIS_FRONTEND_URL="https://yourdomain.com,https://backup.com"Application Whitelist:
Edit jarvis_core/tools/system_tools.py to customize allowed applications:
ALLOWED_APPS = {
"Windows": [
"notepad", "calc", "chrome", "firefox", # ... add your apps
]
}Network Binding:
# Localhost only (most secure)
export JARVIS_HOST="127.0.0.1"
# All interfaces (if needed for network access)
export JARVIS_HOST="0.0.0.0"For more details, see SECURITY.md.
python test_jarvis.pyfrom jarvis_core.orchestrator import Orchestrator
orchestrator = Orchestrator()
result = orchestrator.route_command("who is Albert Einstein")
print(result)Core:
pydantic- Data validationrequests- HTTP clientbeautifulsoup4- HTML parsing
Voice:
speechrecognition- Speech-to-textpyttsx3- Text-to-speech
System:
pyautogui- System automation
Web:
wikipedia- Wikipedia APIfastapi- Backend APIuvicorn- ASGI server
Frontend:
react- UI frameworkvite- Build tooltailwindcss- Styling
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by modern agentic AI systems
- Built with privacy and local execution in mind
- Designed for extensibility and customization
For issues, questions, or suggestions:
- Open an Issue
- Check the User Guide
Made with β€οΈ for the AI community