A powerful, modern AI assistant with a beautiful always-on-top UI built with Rust's Slint framework and Python.
β¨ Modern UI
- Neon glass design with CSS-inspired styling
- Always-on-top, draggable window
- Real-time speaker animation when Jarvis speaks
- Responsive status indicators
π€ Smart Voice Activation
- Only listens when you say "jarvis"
- Full PC system access (with user control)
- Silent Ollama backend integration
- Works on launch (user-controllable)
π‘οΈ Safety & Reliability
- Automatic error handling and recovery
- Backup system for configurations
- Emergency stop functionality
- User-friendly enable/disable on startup
- Double-click
setup_jarvis.bat - Follow the on-screen prompts
- Choose to enable/disable the modern Slint UI
- Desktop shortcut will be created automatically
- Open PowerShell in the
jarvis_appdirectory - Run:
python -m venv .venv - Run:
.venv\Scripts\activate.ps1 - Run:
pip install slint vosk sounddevice pyttsx3 requests pyyaml - Run:
python -m jarvis_app
Easy (Double-Click)
run_jarvis.vbs- Runs silently in backgroundJarvisdesktop shortcut (created by setup)
From Command Line
run_jarvis.bat- Shows console window
Edit jarvis_config.json to customize:
{
"ui_enabled_on_startup": false, // Enable Slint UI on launch
"auto_enable_voice": true, // Auto-start voice listening
"always_on_top": true, // Keep UI on top
"window_opacity": 1.0, // Window transparency (0.0-1.0)
"backup_enabled": true // Enable config backups
}Edit settings.yaml to configure:
- Wake word:
jarvis(customize as needed) - Voice model path
- TTS voice and rate
- Ollama API endpoint and model
MUTE SYSTEM - Toggle audio output (visual only in current version)
ACCESS PC / DISABLE PC ACCESS - Toggle PC system control permissions
Status Circle
- π΅ READY - System idle, waiting for commands
- π’ π SPEAKING - Animated speaker waves when Jarvis responds
- π΄ SILENCED - Audio muted
- Ensure you ran setup_jarvis.bat
- Run:
pip install slintin your Python environment - Falls back to classic Tkinter UI automatically
- Speak clearly into your microphone
- Check
settings.yamlfor correct wake word - Verify Vosk model is installed in the voice model directory
- Check if Slint is installed:
pip show slint - Try the classic Tkinter UI: modify
jarvis_config.jsonand setui_enabled_on_startup: false - Check error logs in
logs/jarvis_errors.log
- Run PowerShell as Administrator
- Run:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
- Python: 3.9 or higher
- OS: Windows 10/11
- RAM: 2GB minimum (4GB+ recommended)
- Audio: Working microphone and speakers
- Disk: ~500MB for dependencies
Edit jarvis_config.json:
{
"ui_enabled_on_startup": true
}Backups are automatically created in the backups/ directory:
- Configuration backups
- Settings snapshots
- Maximum 5 recent backups kept
To manually restore: Use error_handler.py RestoreBackup function
Check logs/jarvis_errors.log for detailed error information
jarvis_app/
βββ __main__.py # Entry point with UI selection
βββ slint_ui.py # Modern Slint Python integration
βββ ui.py # Classic Tkinter UI (fallback)
βββ assistant.py # Core AI assistant logic
βββ voice.py # Voice recognition and TTS
βββ error_handler.py # Error handling and backups
βββ UI/ui/jarvis.slint # Modern UI definition
βββ run_jarvis.bat # Batch launcher
βββ run_jarvis.vbs # Silent launcher
βββ setup_jarvis.bat # Installation setup
βββ jarvis_config.json # User preferences
βββ settings.yaml # Voice and AI settings
- Always-on-top UI - Slint UI stays visible over other windows
- Drag to reposition - Click and drag the window title to move it
- Quick enable/disable - Buttons in the UI for instant control
- Silent operation - Double-click
run_jarvis.vbsfor no console window - Emergency stop - Press CTRL+C in console to emergency stop
- All voice processing is local (Vosk)
- Ollama runs on your machine (no cloud)
- Settings stored locally in
settings.yaml - Full PC access only when explicitly enabled
- User controls all safety features
- Responsive UI with 60FPS animations
- Lightweight Python + Slint combination
- Minimal CPU usage at idle
- Fast voice response times (< 2 seconds typical)
For issues or questions:
- Check error logs:
logs/jarvis_errors.log - Review troubleshooting section above
- Ensure all dependencies are installed
- Try the classic UI as fallback
[MIT License
Copyright (c) 2026 V0rtex
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.]
- Built with Slint - Modern UI framework
- Voice recognition via Vosk
- Text-to-speech via pyttsx3
- AI powered by Ollama
Enjoy your modern Jarvis AI Assistant! π