An offline-first AI-powered Windows desktop assistant with:
- Wake word detection
- Voice interaction
- Local LLM reasoning
- Tool execution
- Memory system
- System tray integration
- Background startup support
- Fully local execution using Ollama
- Wake word activation (
alexa) - Speech-to-text using Faster Whisper
- Text-to-speech responses
- Continuous conversation mode
- Silence detection + timeout handling
The agent uses:
- LLM for intent classification
- Deterministic Python routing
- Deterministic tool execution
- LLM for natural conversation
This gives:
- Better reliability
- Lower hallucinations
- Faster execution
- Safer automation
Architecture:
Supports:
- Open applications
- Open websites
- Battery status
- Volume control
- Clipboard actions
- File operations
- Web search
- System utilities
Stores:
- Conversations
- Tool usage
- Responses
- Preferences
Stores:
- User preferences
- Interaction summaries
- Semantic embeddings
Uses:
- ChromaDB
- sentence-transformers
- all-MiniLM-L6-v2
Examples:
Remember that I prefer dark mode Remember volume at 40 percent
- Ollama
- Qwen2.5
- Faster Whisper
- Sentence Transformers
- LangGraph
- LangChain
- ChromaDB
- pystray
- pyaudio
- psutil
- sounddevice
- soundfile
- openwakeword
- silero-vad
- pyttsx3
- pyperclip
- Pillow
- pygetwindow
- ddgs
- pycaw
- comtypes
- pyautogui
Windows Productivity Agent/
├── assets/
├── logs/
├── memory/
├── notebooks/
├── tests/
│ ├── src/
│ ----- └── wpa/
│ -------------- ├── agent/
│ -------------- ├── memory/
│ -------------- ├── tools/
│ -------------- ├── voice/
│ --------------- ├── system/
│ --------------- └── main.py
├── start_wpa.bat
├── requirements.txt
└── README.md
git clone <your_repo_url> cd "Windows Productivity Agent"
python -m venv .venv
Activate:
.venv\Scripts\activate
pip install -r requirements.txt
Install Ollama:
Ollama Official Website https://ollama.com
Pull required models:
ollama pull qwen2.5:7b
Optional lightweight classifier model:
ollama pull qwen2.5:1.5b
Verify:
ollama list
python -m src.wpa.main
pythonw -m src.wpa.main
Double-click start_wpa.bat to launch WPA
( or )
Win + R → shell:startup
Place a shortcut to start_wpa.bat inside.
it will be automatically triggered on logging into your pc.
Features:
- Pause assistant
- Resume assistant
- Open logs
- Clear memory
- Exit WPA
Runs using:
- pystray
- Pillow
Implemented:
- Warm model loading
- Lazy memory initialization
- GPU inference
- Deterministic routing
- tool calling without using llm
- Windows only
- Some Store apps need special handling
- Long responses may increase latency
Risky tools require confirmation:
Examples:
- File deletion
- Volume changes
- Clipboard overwrite
- Closing applications
Example:
Set volume to 40 percent → Should I proceed?
Open Chrome Open VS Code Open Settings Open Task Manager
Open YouTube Open GitHub Open Gmail
How is my battery? Set volume to 50 percent
Useful for:
- debugging
- startup failures
- tool execution tracing
- wake word diagnostics
-Venky
