🤖 Personal AI Assistant — Aria
Voice · Chat · Smart Commands · Powered by Gemini 2.5 Flash
"Talk to it. It listens. It thinks. It acts."
A zero-dependency, single-file personal AI assistant that understands your voice,
answers your questions with Gemini AI, checks live weather, sets timers,
opens apps, searches the web — and talks back.
🚀 Live Demo ·
🐛 Report Bug ·
💡 Request Feature
Feature
Description
🎤 Voice Input
Real-time speech recognition (Chrome / Edge)
🔊 Voice Output
Text-to-speech — Aria talks back to you
🧠 Gemini AI
Handles any open-ended question intelligently
🌤️ Live Weather
GPS-based forecast — no extra API key needed
⏰ Smart Timers
Set countdowns with desktop push notifications
📞 Call / SMS
Direct phone & SMS intent links
💬 WhatsApp
Pre-filled message launcher
🐦 Twitter / X
One-command tweet composer
🔍 Web Search
Instant Google search by voice
▶️ YouTube
Search & play videos hands-free
🗺️ Google Maps
Navigate anywhere by voice
📱 PWA Ready
Installable on Android / iOS home screen
🔒 Fully Private
No server · No storage · Runs in your browser
Nova/
├── index.html ← Entire app (single self-contained file)
├── manifest.json ← PWA manifest for mobile install
├── icon-192.png ← PWA icon
└── README.md ← You are here
No build tools. No npm. No frameworks. One file is all it takes.
git clone https://github.com/Abd-Abdullah83/Nova.git
cd Nova
Or just download index.html and open it — it runs offline.
Step 2 — Get a Free Gemini API Key
Go to aistudio.google.com/app/apikey
Sign in with your Google account
Click "Create API Key" and copy your key
Open index.html and find this line near the top of the <script>:
const API_KEY = "YOUR_KEY_HERE" ;
Replace YOUR_KEY_HERE with your actual key.
# Simply open in your browser:
open index.html
# Or serve locally for full PWA features:
npx serve .
⚠️ Chrome or Edge only — Firefox does not support the Web Speech API.
Say
Result
"What's the time?"
Current time in your locale
"What's today's date?"
Full localized date string
Say
Result
"What's the weather?"
Live weather from your GPS location
"What's the temperature?"
Temperature, humidity, wind speed
Say
Result
"Set a 5 minute timer"
Countdown + desktop notification
"Set a 30 second timer"
Works with seconds, minutes, hours
"Set an alarm"
Defaults to 5 minutes
Say
Result
"Search for FAST University"
Google search
"Open YouTube"
Launches YouTube
"Play lo-fi music on YouTube"
YouTube search query
"Navigate to Lahore"
Google Maps directions
"Open github.com"
Opens any website
Say
Result
"Send WhatsApp message hello"
WhatsApp with pre-filled text
"Post on Twitter great day"
Twitter compose
"Open Instagram"
Opens Instagram
Say
Result
"Call +923001234567"
Phone dialer
"SMS +923001234567 saying hello"
SMS with number and body
🧠 AI Chat — Gemini Fallback
Say
Result
"Explain machine learning"
Conversational AI answer
"Tell me a joke"
Gemini responds with humour
"Write a short poem"
Creative AI response
systemInstruction: {
parts : [ { text : "You are a helpful assistant named Nova. Be friendly." } ]
}
if ( q . includes ( "calculator" ) ) {
respond ( "Opening calculator!" ) ;
window . open ( "https://www.google.com/search?q=calculator" ) ;
return ;
}
"You are a sarcastic but helpful assistant. Keep it witty."
"You are a professional data science tutor."
"You only respond in Urdu."
recognition . lang = "ur-PK" ; // Urdu
recognition . lang = "ar-SA" ; // Arabic
recognition . lang = "fr-FR" ; // French
Concern
Reality
Is data stored?
❌ No — nothing is ever saved anywhere
Is there a server?
❌ No — runs entirely inside your browser
API key exposure
⚠️ Key is client-side — for personal use only
Weather & location
GPS coords sent only to Open-Meteo's public API
Voice data
Processed locally by your browser's speech engine
Problem
Solution
Mic button does nothing
Switch to Chrome or Edge
"Mic error — check permissions"
Allow microphone in browser site settings
AI gives no response
Verify your API_KEY is valid and has quota
Weather not loading
Allow location access when browser prompts
Links / popups blocked
Allow popups for this page in browser settings
Timer notification silent
Allow notifications when prompted
Layer
Technology
UI
Vanilla HTML5 + CSS3 (dark theme, purple accent)
Logic
Vanilla JavaScript ES2020+
AI Brain
Google Gemini 2.5 Flash (REST API)
Voice In
Web Speech API — SpeechRecognition
Voice Out
Web Speech API — SpeechSynthesis
Weather
Open-Meteo (free, no key) + Geolocation API
Alerts
Notifications API + setTimeout
Installs as App
PWA via manifest.json
MIT License — Free to use, modify, and distribute. Give credit where it's due. ✌️
── Built by ──
BS Data Science · FAST NUCES Lahore · 2025–2029
"Build a company of lasting impact." 🚀
⭐ Star this repo if it helped you — it means a lot!
Made with 💜 and a lot of late-night coding sessions