A.D.A (Advanced Digital Assistant) is a fully local, privacy-focused AI assistant for Windows. It combines a beautiful modern GUI with powerful voice control capabilitiesโall running entirely on YOUR computer with no cloud dependency.
๐ Your data stays on your machine. No API keys required for core functionality. No subscriptions. No data collection.
| Feature | Description |
|---|---|
| ๐ค Voice Control | Wake word detection ("Jarvis") with natural language commands |
| ๐ฌ AI Chat | Interactive chat with local LLMs via Ollama with streaming responses |
| ๐ Smart Home | Control TP-Link Kasa smart lights and plugs from the app |
| ๐ Planner | Manage calendar events, alarms, and timers |
| ๐ฐ Daily Briefing | AI-curated news from Technology, Science, and Top Stories |
| ๐ค๏ธ Weather | Current weather and hourly forecast on your dashboard |
| ๐ Web Search | Search the web through voice or chat commands |
| ๐ฅ๏ธ System Monitor | Real-time CPU and memory usage in the title bar |
The application features a sleek Windows 11 Fluent Design aesthetic with dark mode support.
Before you begin, make sure you have:
| Software | Purpose | Download |
|---|---|---|
| Miniconda | Python environment manager | miniconda.io |
| Ollama | Local AI model server | ollama.com |
| NVIDIA GPU (Recommended) | Faster AI inference | GPU with 4GB+ VRAM |
- Minimum: 8GB RAM, any modern CPU
- Recommended: 16GB RAM, NVIDIA GPU with 6GB+ VRAM
- Storage: ~5GB for models and voice data
Follow these steps to get A.D.A running on your system.
- Download from miniconda.io
- Run the installer (use default options)
- Open Anaconda Prompt (Windows) or your terminal (macOS/Linux)
- Download and install from ollama.com/download
- Run the installer (Ollama will start automatically as a background service)
โ Ollama runs in the background - no need to start it manually after installation.
Open a terminal and pull your preferred model. You can choose from:
๐น Option A: Qwen3 (Recommended for most users)
# Fast and efficient - great balance of speed and quality
ollama pull qwen3:1.7b๐น Option B: DeepSeek R1 (Better reasoning)
# Stronger reasoning capabilities - slightly slower
ollama pull deepseek-r1:1.5b๐ก Tip: You can switch models anytime in
config.pyby changingRESPONDER_MODEL.
Verify your model is installed:
ollama list# Clone the repository
git clone https://github.com/your-username/pocket_ai.git
cd pocket_ai
# Create a conda environment
conda create -n ada python=3.11 -y
# Activate the environment
conda activate ada
# Install dependencies
pip install -r requirements.txtโฑ๏ธ Note: First installation may take 5-10 minutes as PyTorch and other large packages are downloaded.
For significantly faster AI inference, install PyTorch with CUDA support:
# Install PyTorch with CUDA 12.4 support
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124Verify CUDA is working:
python -c "import torch; print(f'CUDA available: {torch.cuda.is_available()}')"๐ก CPU-only users: Skip this stepโPyTorch will use CPU by default. It's slower but works fine.
python main.py๐ That's it! A.D.A will launch with a beautiful GUI.
A.D.A benefits greatly from GPU acceleration. Here's what runs on your GPU:
| Component | GPU Benefit | Without GPU |
|---|---|---|
| Router Model | ~50ms inference | ~200ms inference |
| Ollama LLM | Fast streaming responses | Slower, but functional |
| Whisper STT | Real-time transcription | Slight delay |
- NVIDIA GPU with CUDA Compute Capability 5.0+ (GTX 900 series or newer)
- CUDA Toolkit: Bundled with PyTorchโno separate install needed
- VRAM: 4GB minimum, 6GB+ recommended
# View GPU info and VRAM
nvidia-smiThe following models are downloaded automatically on first runโno manual setup required:
| Model | Purpose | Size | Downloaded From |
|---|---|---|---|
| Router Model | Intent classification | ~500MB | Hugging Face |
| TTS Voice | Text-to-speech | ~50MB | Piper Voices |
| STT Model | Speech-to-text (Whisper) | ~150MB | OpenAI Whisper |
๐ฆ First launch will take a few minutes while these models download. Subsequent launches are instant.
A.D.A includes Alexa-like voice control with wake word detection.
- Say "Jarvis" to wake the assistant
- Speak your command naturally
- A.D.A processes your request and responds
| Command | What It Does |
|---|---|
| "Jarvis, turn on the office lights" | Controls smart lights |
| "Jarvis, set a timer for 10 minutes" | Creates a countdown timer |
| "Jarvis, what's on my schedule today?" | Reads your calendar |
| "Jarvis, search the web for Python tutorials" | Performs web search |
| "Jarvis, add buy groceries to my to-do list" | Creates a task |
Edit config.py to customize:
# Change wake word (default: "jarvis")
WAKE_WORD = "jarvis"
# Adjust sensitivity (0.0-1.0, lower = less false positives)
WAKE_WORD_SENSITIVITY = 0.4
# Enable/disable voice assistant
VOICE_ASSISTANT_ENABLED = TrueAll configuration is centralized in config.py:
Change the chat model in config.py:
# The main chat model (runs on Ollama)
# Options: "qwen3:1.7b" (fast) or "deepseek-r1:1.5b" (better reasoning)
RESPONDER_MODEL = "qwen3:1.7b"
# Ollama server URL (usually no need to change)
OLLAMA_URL = "http://localhost:11434/api"Model Comparison:
| Model | Speed | Reasoning | Best For |
|---|---|---|---|
qwen3:1.7b |
โก Fast | Good | Daily use, quick responses |
deepseek-r1:1.5b |
Moderate | Excellent | Math, coding, complex questions |
# Voice model (downloads automatically on first run)
TTS_VOICE_MODEL = "en_GB-northern_english_male-medium"The default location is New York City. To change it:
- Open the app
- Go to Settings tab
- Enter your latitude and longitude
pocket_ai/
โโโ main.py # Application entry point
โโโ config.py # Centralized configuration
โโโ requirements.txt # Python dependencies
โ
โโโ core/ # Backend logic
โ โโโ router.py # FunctionGemma intent classifier
โ โโโ function_executor.py # Executes routed functions
โ โโโ voice_assistant.py # Voice pipeline orchestrator
โ โโโ stt.py # Speech-to-text with wake word
โ โโโ tts.py # Piper text-to-speech
โ โโโ kasa_control.py # Smart home device control
โ โโโ weather.py # Open-Meteo weather API
โ โโโ news.py # DuckDuckGo news + AI curation
โ โโโ tasks.py # To-do list management
โ โโโ calendar_manager.py # Local calendar/events
โ โโโ history.py # SQLite chat history
โ โโโ llm.py # Ollama LLM interface
โ
โโโ gui/ # PySide6 GUI
โ โโโ app.py # Main window setup
โ โโโ handlers.py # Chat message handling
โ โโโ tabs/ # Individual tab screens
โ โ โโโ dashboard.py # Weather + status overview
โ โ โโโ chat.py # AI chat interface
โ โ โโโ planner.py # Calendar + tasks
โ โ โโโ briefing.py # AI news curation
โ โ โโโ home_automation.py # Smart device control
โ โ โโโ settings.py # App configuration
โ โโโ components/ # Reusable UI widgets
โ
โโโ merged_model/ # Fine-tuned FunctionGemma router
โโโ demo.py # Standalone voice assistant demo
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ User Input โโโโโโถโ FunctionGemma โโโโโโถโ Function โ
โ (Voice/Text) โ โ Router โ โ Executor โ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโฌโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ Kasa Lights โ โ Calendar โ โ Web Search โ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโ
โ Qwen LLM โ
โ (via Ollama) โ
โโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโ
โ Piper TTS โ
โ (Voice Out) โ
โโโโโโโโโโโโโโโโ
- User speaks or types a command
- FunctionGemma Router (fine-tuned local AI) classifies intent
- Function Executor runs the appropriate action
- Qwen LLM generates a natural language response
- Piper TTS speaks the response (if voice enabled)
A.D.A supports TP-Link Kasa smart devices:
- โ Smart bulbs (on/off, brightness, color)
- โ Smart plugs (on/off)
- โ Smart light strips
- Ensure your Kasa devices are on the same network as your computer
- Open A.D.A and go to the Home Automation tab
- Click Refresh to scan for devices
- Control devices through the GUI or voice commands
"Turn on the living room lights"
"Set the bedroom lights to 50%"
"Turn off all lights"
"Change the office light to blue"
โ Ollama connection refused
Problem: The app can't connect to Ollama.
Solution:
- Make sure Ollama is running:
ollama serve - Check if the model is downloaded:
ollama list - Verify the URL in
config.pymatches your setup
โ CUDA/GPU not detected
Problem: PyTorch is running on CPU instead of GPU.
Solution:
- Install CUDA-compatible PyTorch:
pip install torch --index-url https://download.pytorch.org/whl/cu121
- Verify CUDA:
python -c "import torch; print(torch.cuda.is_available())"
โ Voice assistant not working
Problem: Wake word isn't being detected.
Solution:
- Check your microphone permissions
- Ensure
realtimesttis installed:pip install realtimestt - Try lowering
WAKE_WORD_SENSITIVITYinconfig.py
โ Smart devices not found
Problem: Kasa devices don't appear in the app.
Solution:
- Ensure devices are on the same WiFi network
- Try the Kasa app first to verify devices work
- Check firewall isn't blocking device discovery (UDP port 9999)
Contributions are welcome! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests:
pytest tests/ - Submit a pull request
This project is open source. See LICENSE for details.
- Ollama - Local LLM inference
- QFluentWidgets - Beautiful UI components
- Piper TTS - Lightweight text-to-speech
- python-kasa - Kasa device control
- RealTimeSTT - Speech recognition
Made with โค๏ธ for local AI enthusiasts
