Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

75 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Aria Logo

N E O

Your Intelligent Desktop AI Assistant

Agentic AI brain Β· Computer-Use Vision Β· Voice-First Β· Glassmorphism UI

Python Electron FastAPI License


✨ What Makes NEO Different

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

πŸš€ Features

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

πŸ‘οΈ Vision Agent β€” Computer-Use AI

Aria's Vision Agent operates like an autonomous computer user. It sees the screen, reasons about what to do, and takes precise actions.

5-Layer Perception Pipeline

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

5-Tier Click System

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%

Self-Improving Memory

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

Pre-Trained App Layouts

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


πŸ€– Agentic Loop

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 search
  • shell β€” run terminal commands
  • file_read / file_write β€” file system access
  • screenshot β€” capture and analyze screen
  • browser β€” open and interact with URLs
  • email_send β€” compose and send emails
  • calendar_read β€” check events
  • notion_search β€” search knowledge base

πŸš€ Quick Start

Prerequisites

  • Python 3.10+ (3.11 recommended)
  • Node.js 18+
  • Tesseract OCR β€” Download
  • Ollama (optional, for local LLM) β€” Download
  • API Key β€” OpenAI, Anthropic, or Google

Installation

# 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 start

Environment Setup

Create .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

πŸ—£οΈ Voice Commands

"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"

🎨 Themes

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

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚            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  β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ Project Structure

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

πŸ“‘ API Endpoints

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

πŸ”§ Configuration

AI Models

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
Google gemini-pro, gemini-flash
Local llama3.2 (via Ollama β€” no API key)

Customizing App Layouts

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.


πŸ“š Documentation


🀝 Contributing

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open Pull Request

πŸ“ License

MIT License β€” see LICENSE for details.


πŸ‘€ Author

Shreyas β€” @shreyass0007


Made with ❀️ by Shreyas

⭐ Star this repo if you find it helpful!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages