Nova is a high-performance, premium desktop voice assistant built with Python, GTK4, and Cairo. It features a futuristic glassmorphism UI, real-time audio visualization, and hybrid AI capabilities (Local or Cloud).
- 🎤 Wake Word Detection: Powered by
SpeechRecognition(default: "Hey Nova"). - 🧠 Hybrid AI:
- Local: Integration with LM Studio (Local LLMs).
- Cloud: Native Google Gemini API support.
- 📺 Premium UI:
- Glassmorphism effect with GTK4/Adw.
- Animated Eye Renderer using Cairo.
- Real-time Audio Waveform & HUD.
- Multiple themes (Cyber, Luxury, Stealth, Crimson, Emerald, Amethyst).
- ⚙️ Admin Dashboard: Manage all settings via a sleek web-based controller (
localhost:8081). - 🚀 System Integration:
- Autonomous system command execution (e.g., "Open Firefox").
- Auto-start on system boot.
- Background/Hidden execution mode.
- Full application death on exit (optional).
Nova is designed primarily for Linux (Ubuntu/Fedora/Arch).
-
Clone the repository:
git clone https://github.com/username/nova-assistant.git cd nova-assistant -
Run the setup script:
chmod +x setup.sh ./setup.sh
This will install Python dependencies and system libraries like
mpg123andlibadwaita. -
Start Nova:
./run.sh
Once started, access the Admin Panel at:
http://localhost:8081
The first time you run Nova, a Setup Wizard will automatically guide you through configuring your AI provider (Gemini Key or Local URL) and preferences.
- "Hey Nova" -> Wakes up the assistant.
- "Open Firefox" -> Executes system command to launch the browser.
- "Go to sleep" / "Goodbye" -> Puts Nova back into background mode.
- "Kill application" -> (If enabled) Completely stops the process.
nova_assistant/
├── jarvis_desktop.py # Main application logic
├── config.json # User settings (ignored in git for security)
├── templates/ # Web Admin Panel HTML
├── static/ # Assets (if any)
├── setup.sh # Linux installer
├── run.sh # App launcher
└── README.md # This file
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
