Aria isn't a chatbot β it's a computer-use AI agent that can see your screen, understand what's on it, and take actions to accomplish goals. Think Claude Computer Use, but local-first and deeply integrated with your desktop.
"Open WhatsApp and send hello to Shreyas"
β Opens WhatsApp via Windows Search
β Finds Shreyas in contacts using OCR
β Types and sends the message
β Verifies the message was sent
| Category | Capabilities |
|---|---|
| ποΈ Computer-Use Vision | 5-layer perception: screenshot + OCR + UI Automation + pre-trained layouts + learning memory |
| π€ Agentic AI | Multi-step planning, autonomous tool use, self-reflection, session memory |
| π§ Multi-Model | GPT-4o, Claude 3.5/3.7, Gemini Pro, Local Llama 3.2 (Ollama) |
| π₯οΈ Desktop Automation | Click, type, screenshot, app launch β Windows/macOS/Linux |
| ποΈ Voice Control | Wake word detection, Faster-Whisper offline STT, Edge-TTS |
| π Web Search | Real-time search with inline source cards |
| π§ Email | Gmail compose, send, preview with confirmation flow |
| π Calendar | Google Calendar reading, event creation, morning briefing |
| π Notion | Search, read, create Notion pages |
| π΅ Music Player | Local file playback, playlist management, voice-controlled |
| ποΈ System Control | Volume, WiFi, Bluetooth, clipboard, screenshots, power |
| π§ Water Reminders | Hydration tracker with smart interval prompts |
| πΎ Smart Memory | ChromaDB RAG β semantic search across conversations |
| π¨ 6 Premium Themes | Light & dark mode across all themes |
Aria's Vision Agent operates like an autonomous computer user. It sees the screen, reasons about what to do, and takes precise actions.
Every step, the AI receives 5 layers of ground truth before deciding:
Step N:
1. πΈ Screenshot (100px grid overlay with high-contrast labels)
2. π OCR Text Dump (Tesseract extracts ALL visible text)
3. π Live UI Elements (Windows Accessibility API via pywinauto)
4. πΊοΈ Pre-trained Layout (known positions for 10+ apps)
5. π Past Lessons (what worked/failed in similar goals)
β
LLM Decides β Executes β Compares Screenshots β Learns
| Priority | Action | How It Works | Accuracy |
|---|---|---|---|
| 1 | click_ui |
Windows Accessibility API | 100% |
| 2 | click_element |
Pre-trained layout positions | ~90% |
| 3 | click_text |
Tesseract OCR text finding | ~85% |
| 4 | click |
LLM reads grid coordinates | ~60% |
Aria learns from every task and gets smarter over time:
Run 1: No lessons β 12 steps, some failures β saves lesson
Run 2: Recalls lesson β avoids past mistakes β 7 steps
Run 5: Rich memory β near-optimal β 4 steps
Aria knows the UI layout of 10+ common applications out of the box:
WhatsApp Β· Telegram Β· Chrome Β· Edge Β· Spotify Β· VS Code Β· Teams Β· Discord Β· File Explorer Β· Notepad
Add your own apps by editing
backend/data/ui_layouts.json
Aria has a full agentic reasoning engine for complex multi-step tasks:
User Request
β
PlannerBrain (decomposes goal into steps)
β
AgentLoop (executes tools, observes results)
β
ReflectionEngine (checks success, retries on failure)
β
Heartbeat Monitor (ensures agent stays alive)
β
Final Response
Available Agent Tools:
web_searchβ real-time internet searchshellβ run terminal commandsfile_read / file_writeβ file system accessscreenshotβ capture and analyze screenbrowserβ open and interact with URLsemail_sendβ compose and send emailscalendar_readβ check eventsnotion_searchβ search knowledge base
- Python 3.10+ (3.11 recommended)
- Node.js 18+
- Tesseract OCR β Download
- Ollama (optional, for local LLM) β Download
- API Key β OpenAI, Anthropic, or Google
# Clone repository
git clone https://github.com/shreyass0007/Aria.git
cd ARIA
# Setup Python environment
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS/Linux
pip install -r requirements.txt
# Optional: install advanced vision libraries
pip install pywinauto easyocr
# Setup Electron frontend
cd electron
npm install
# Launch Aria
npm startCreate .env in the project root:
# Required β at least one AI provider
OPEN_AI_API_KEY=sk-your-key
# Optional providers
ANTHROPIC_API_KEY=sk-ant-your-key
GOOGLE_API_KEY=your-key
# Integrations
NOTION_API_KEY=your-key
OPENWEATHER_API_KEY=your-key"Hey Aria, what's on my calendar today?"
"Open WhatsApp and send hello to Shreyas"
"Open VS Code"
"Set volume to 50%"
"Play my playlist"
"Search the web for latest AI news"
"Send an email to john@example.com about the meeting"
"What's the weather like?"
"Take a screenshot and describe what you see"
"Enable Deep Work mode"
"Remind me to drink water every 30 minutes"
6 premium themes with full light/dark mode support:
| Theme | Accent | Vibe |
|---|---|---|
| Violet Dream | #6366f1 Purple |
Elegant, default |
| Ocean Breeze | #0ea5e9 Blue |
Calm, professional |
| Sunset Glow | #f97316 Orange |
Warm, creative |
| Forest Mist | #10b981 Green |
Natural, relaxing |
| Azure | #3b82f6 Blue-white |
Clean, corporate |
| Mono | Black & White | Minimalist |
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Electron Frontend (Renderer) β
β Glassmorphism UI Β· 6 Themes Β· Music Player Β· Chat β
ββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β HTTP/REST + WebSocket
ββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββ
β FastAPI Backend β
β 25+ endpoints Β· APScheduler Β· WebSocket streaming β
ββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββ
β Aria Core Engine β
β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββ β
β β AgentLoop β β PlannerBrainβ β ReflectionEng β β
β β (tools, β β (decompose β β (verify, β β
β β reasoning) β β goals) β β retry) β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β VisionAgent (Computer-Use) β β
β β Screenshot β OCR β UIA β Layout β Memory β β β
β β LLM Decides β Execute β Verify β Learn β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββ β
β β ChromaDB β β Calendar β β Desktop β β Email β β
β β RAG β β Manager β β Executor β βManager β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββ β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββ β
β β TTS/STT β β Notion β β Music β β Vision β β
β β Manager β β Manager β β Library β βMemory β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ARIA/
βββ aria/ # Core Python backend
β βββ agent/ # Agentic AI engine
β β βββ loop.py # AgentLoop β autonomous reasoning
β β βββ vision_agent.py # Computer-use vision agent
β β βββ vision_memory.py # Self-improving learning memory
β β βββ ui_automation.py # pywinauto UI element detection
β β βββ reflection.py # Self-reflection engine
β β βββ tools/ # Agent tools (search, shell, etc.)
β βββ brains/ # PlannerBrain, LearningManager
β βββ executor/ # Desktop automation adapters
β βββ handlers/ # Intent handlers
β βββ vision/ # VisionManager (OCR, template matching)
βββ backend/
β βββ data/
β β βββ ui_layouts.json # Pre-trained UI element positions
β β βββ vision_memory.json # Learned patterns (auto-generated)
β βββ routers/ # FastAPI route handlers
βββ electron/ # Electron frontend
β βββ main.js # Main process
β βββ renderer/ # UI (HTML/CSS/JS)
βββ .env # API keys and configuration
| Method | Endpoint | Description |
|---|---|---|
GET |
/health |
Health check |
GET |
/greeting |
Time-based greeting |
GET |
/briefing |
Morning briefing (calendar + weather) |
POST |
/message |
Process message (agentic) |
GET |
/models/available |
List AI models |
POST |
/models/set |
Switch active model |
GET |
/conversations |
List conversations |
POST |
/voice/start |
Start voice input |
POST |
/tts/speak |
Text-to-speech |
GET |
/notifications |
Notification stream |
POST |
/email/send |
Send email |
GET |
/system/analyze-screen |
Computer vision analysis |
POST |
/music/play |
Play music |
Switch via the UI dropdown or POST /models/set:
| Provider | Models |
|---|---|
| OpenAI | gpt-4o, gpt-4o-mini, gpt-3.5-turbo |
| Anthropic | claude-3-5-sonnet, claude-3-7-sonnet, claude-haiku |
gemini-pro, gemini-flash |
|
| Local | llama3.2 (via Ollama β no API key) |
Edit backend/data/ui_layouts.json to add your own apps:
{
"your_app": {
"app_name": "Your App",
"elements": {
"send_button": { "rx": 0.95, "ry": 0.95, "description": "Send button" },
"search_bar": { "rx": 0.50, "ry": 0.04, "description": "Search field" }
},
"tips": ["Ctrl+F opens search"]
}
}Coordinates are relative (0.0β1.0), so they work at any screen resolution.
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
MIT License β see LICENSE for details.
Shreyas β @shreyass0007
Made with β€οΈ by Shreyas
β Star this repo if you find it helpful!
