Aria - AI Assistant with web UI, CLI management, and local LLM support
Project description
๐ง Aria
Your local AI assistant with a unified tool-driven architecture
Run a local AI assistant with a web UI, CLI, and desktop GUI
โจ Features
| Feature | Description | |
|---|---|---|
| ๐ฏ | Unified Tool Architecture | 7 categories, 33 tools managed by a centralized registry |
| ๐ฅ๏ธ | Multiple Interfaces | Web UI, CLI, and native PySide6 desktop GUI |
| ๐ค | Local LLM Support | Run models locally with vLLM (GPU-accelerated inference with GPTQ/AWQ quantization) |
| ๐ | Browser Automation | Lightpanda headless browser with CDP/Playwright support |
| ๐ | Privacy First | Your data stays on your machine |
| ๐ | Web Research | Search, weather, finance, and more |
| ๐ป | Code Execution | Safe Python sandbox and shell commands |
| ๐ | Knowledge & Planning | Persistent knowledge store, structured reasoning, task planning |
| ๐ท | Worker Agents | Background workers for heavy tasks (research, code generation, analysis) |
| ๐ง | CLI Tool Commands | Domain-specific CLI commands for search, finance, IMDb, and more |
| ๐ฌ | Model Fine-Tuning | LoRA/QLoRA fine-tuning with CLI-driven workflows |
๐ Quick Start
Option A โ Run from source
git clone git@github.com:malvavisc0/aria-ai.git
cd aria-ai
uv sync
aria server run
# โ Open http://localhost:9876
Option B โ Install from PyPI
pip install aria-ai
aria server run
# โ Open http://localhost:9876
Option C โ Docker (GPU required)
docker run -p 9876:9876 -v ./data:/app/data ghcr.io/malvavisc0/aria-ai-cuda:latest
# โ Open http://localhost:9876
Option D โ Desktop GUI
pip install aria-ai[gui]
aria-gui
Or download the standalone binary for your platform from the latest release:
| Platform | File |
|---|---|
| ๐ง Linux | Aria-x86_64.AppImage |
| ๐ช Windows | Aria-Windows-x86_64.zip |
| ๐ macOS (Apple Silicon) | Aria-macOS-arm64.zip |
๐ค Agent System
Aria uses a tool-first architecture centered around one primary agent with a centralized tool registry. Tools are organized into always-loaded core capabilities and on-demand domain tools that load when needed. Heavy tasks are delegated to background worker agents.
How It Works
User Request โ Aria โ Registry-selected tools โ Response
โ (heavy tasks)
Worker Agent โ Background execution โ Result file
Aria evaluates each request, keeps core capabilities available by default, and pulls in domain-specific tools only when the task requires them. Tasks requiring 5+ tool calls are automatically delegated to worker agents that run in the background.
๐ ๏ธ Tools
Tools are organized into 7 categories (33 tools) managed by a centralized registry. Core and file tools are always available; domain tools load on demand.
| Category | Loading | Tools |
|---|---|---|
| ๐ง Core | Always | reasoning, plan, knowledge, scratchpad, web_search, download, weather, shell |
| ๐ Files | Always | read_file, write_file, edit_file, file_info, list_files, search_files, copy_file, delete_file, rename_file |
| ๐ Browser | On-demand | open_url, browser_click |
| ๐ Development | On-demand | python |
| ๐ Finance | On-demand | fetch_current_stock_price, fetch_company_information, fetch_ticker_news |
| ๐ฌ Entertainment | On-demand | search_imdb_titles, get_movie_details, get_person_details, get_person_filmography, get_all_series_episodes, get_movie_reviews, get_movie_trivia, get_youtube_video_transcription |
| ๐ฅ๏ธ System | On-demand | http_request, process |
Domain tools are also accessible via CLI commands through ax (e.g., ax web search, ax knowledge store, ax dev run).
For the full inventory with parameter reference, see docs/tools-inventory.md.
๐ฆ Installation
Prerequisites
- GPU with 8 GB+ VRAM (minimum; 12 GB+ recommended)
- 16 GB+ system RAM
- Python 3.12 or higher
uvpackage manager (recommended)- Git
See
docs/memory-requirements.mdfor detailed VRAM/RAM breakdown per model.
Install
# Clone the repository
git clone git@github.com:malvavisc0/aria-ai.git
cd aria-ai
# Install dependencies
uv sync
# Or with GUI support
uv sync --extra gui
First Run
On first launch, Aria automatically:
- Creates
.envconfiguration with generated auth secrets - Sets up the SQLite database
- Creates required directories
ax check preflight # Verify installation
aria server run # Start the web server
๐ป CLI Commands
Aria ships with two CLI entry points:
| CLI | Purpose | Commands |
|---|---|---|
aria |
Management CLI | Server, users, models, vLLM, config, system, Lightpanda |
ax |
Agent Experience CLI | Web, knowledge, dev, worker, processes, check |
aria โ Management CLI
Human-facing commands for infrastructure and system management.
# Server management
aria server run # Run in foreground
aria server start # Start in background
aria server stop # Stop the server
aria server status # Check status
# Inference engine
aria vllm install # Install vLLM with auto-detected hardware target
aria vllm status # Check vLLM installation status and version
aria vllm info # Show vLLM configuration details
# Browser
aria lightpanda download # Download Lightpanda headless browser
aria lightpanda status # Check Lightpanda installation
# Model management
aria models download # Download a model from Hugging Face
aria models list # List downloaded models
aria models memory # Show model memory requirements
# User management
aria users list # List users
aria users add # Add new user
aria users reset-password # Reset user password
aria users update # Update user details
aria users delete # Delete a user
# System info
aria system info # Full system overview
aria system gpu # GPU information
aria system vram # VRAM details
aria system context # Calculate max context size
# Configuration
aria config show # Show current config
aria config paths # Show configured paths
aria config database # Show database info
aria config api # Show API endpoints
ax โ Agent Experience CLI
Agent-facing commands for research, knowledge, code execution, and workflow management.
# Web & research
ax web search "query" # Web search
ax web fetch "url" # Fetch URL content
ax web weather "city" # Weather forecast
# Knowledge
ax knowledge store "key" "v" # Store a fact
ax knowledge recall "key" # Retrieve a fact
ax knowledge search "query" # Search stored facts
# Development
ax dev run "code" # Execute Python code
# Workers
ax worker spawn --prompt "..." # Launch background worker
ax worker list # List workers
# Processes & checks
ax processes list # List background processes
ax check preflight # Verify installation
๐ฅ๏ธ GUI Application
aria-gui # Launch desktop application (requires: uv sync --extra gui)
The native PySide6 desktop GUI provides:
| Tab | Features |
|---|---|
| Overview | System status, database info, API endpoints, debug log viewer |
| Setup | Install vLLM, download models from Hugging Face, and manage Lightpanda browser โ with real-time output and cancel support |
| Users | Create, edit, delete users with password strength validation |
| Settings | Configure model paths, API URLs, and service parameters |
| Logs | View application logs with search, level filtering, and auto-refresh |
Additional features:
- System tray โ minimizes to tray on close; force-quit via menu or Ctrl+Q
- First-run wizard โ guided setup on first launch
- Responsive layout โ adapts to window size
- Preflight checks โ validates configuration on tab switch
๐ Web UI
After starting the server, access the web interface at http://localhost:9876
The web UI is powered by Chainlit and provides a chat interface to interact with Aria.
๐ณ Docker
Quick start
# NVIDIA / CUDA
docker run -p 9876:9876 -v ./data:/app/data ghcr.io/malvavisc0/aria-ai-cuda:latest
# AMD / ROCm
docker run -p 9876:9876 -v ./data:/app/data ghcr.io/malvavisc0/aria-ai-rocm:latest
Docker Compose
# Copy and configure environment
cp .env.example .env
# NVIDIA / CUDA
docker compose up -d
# AMD / ROCm
docker compose --profile rocm up -d aria-rocm
| Image | Base | GPU |
|---|---|---|
ghcr.io/malvavisc0/aria-ai-cuda:latest |
vLLM (CUDA/CPU) | NVIDIA |
ghcr.io/malvavisc0/aria-ai-rocm:latest |
vLLM (ROCm) | AMD |
โ๏ธ Configuration
Aria uses environment variables stored in .env:
# Runtime data lives under ~/.aria (override with ARIA_HOME)
#ARIA_HOME=~/.aria
CHAINLIT_AUTH_SECRET=<auto-generated>
# Chat model (served by vLLM)
CHAT_MODEL = Granite-4.1-8B
CHAT_MODEL_PATH = ethanhunt3/Granite-4.1-8B-GPTQ-INT4
CHAT_CONTEXT_SIZE = 32768
# Embeddings model (loaded in-process via HuggingFace)
EMBEDDINGS_MODEL = granite-embedding-311m-multilingual-r2
EMBED_MODEL_PATH = ibm-granite/granite-embedding-311m-multilingual-r2
# vLLM engine
ARIA_VLLM_QUANT = gptq_marlin
ARIA_VLLM_GPU_MEMORY_UTILIZATION = 0.85
๐ Directory Structure
~/.aria/ # Runtime data root (ARIA_HOME)
โโโ workspace/ # Agent-facing workspace (file tools)
โโโ bin/ # Downloaded binaries (lightpanda, etc.)
โโโ db/ # SQLite (aria.db, tools.db) and ChromaDB
โโโ models/ # Downloaded model files
โโโ logs/ # Runtime logs
โโโ storage/ # Chainlit file storage
โโโ uploads/ # User-uploaded files
โโโ workers/ # Worker agent state
<project>/.env # Configuration
๐ค Contributing
Contributions are welcome! Please feel free to submit issues and pull requests.
Development Setup
# Install dev dependencies
uv sync --group dev
# Run tests
uv run pytest
# Lint and format code
uv run ruff check src/
uv run ruff format src/
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
Made with โค๏ธ by malvavisc0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aria_ai-0.1.1.tar.gz.
File metadata
- Download URL: aria_ai-0.1.1.tar.gz
- Upload date:
- Size: 368.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e8969790e40dd2a78642a2771fd6ffde7c9caa6bc96f84b76e5eea5b66c9a0c
|
|
| MD5 |
d8714550b23fdf1f0a085d175d796066
|
|
| BLAKE2b-256 |
312de062ef929dda5cd0f3557c0be09a3ad3b7cb827288e06b7c775e51a1c040
|
Provenance
The following attestation bundles were made for aria_ai-0.1.1.tar.gz:
Publisher:
release.yml on malvavisc0/aria-ai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aria_ai-0.1.1.tar.gz -
Subject digest:
2e8969790e40dd2a78642a2771fd6ffde7c9caa6bc96f84b76e5eea5b66c9a0c - Sigstore transparency entry: 1518881473
- Sigstore integration time:
-
Permalink:
malvavisc0/aria-ai@ffc99e108e7c17f886245c2bfdabc02251ccfaff -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/malvavisc0
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ffc99e108e7c17f886245c2bfdabc02251ccfaff -
Trigger Event:
push
-
Statement type:
File details
Details for the file aria_ai-0.1.1-py3-none-any.whl.
File metadata
- Download URL: aria_ai-0.1.1-py3-none-any.whl
- Upload date:
- Size: 448.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
432e551d414fa55c0a9ed16eb0020baa58968c7d1b8a617ad425c73a8f514e51
|
|
| MD5 |
267ee89531abbbea94f1e3edec26deca
|
|
| BLAKE2b-256 |
067209dcf3d4602fe6a70e949eda313bb3f63b2fc8107b4633dbed5864f6376e
|
Provenance
The following attestation bundles were made for aria_ai-0.1.1-py3-none-any.whl:
Publisher:
release.yml on malvavisc0/aria-ai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aria_ai-0.1.1-py3-none-any.whl -
Subject digest:
432e551d414fa55c0a9ed16eb0020baa58968c7d1b8a617ad425c73a8f514e51 - Sigstore transparency entry: 1518881479
- Sigstore integration time:
-
Permalink:
malvavisc0/aria-ai@ffc99e108e7c17f886245c2bfdabc02251ccfaff -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/malvavisc0
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ffc99e108e7c17f886245c2bfdabc02251ccfaff -
Trigger Event:
push
-
Statement type: