Skip to main content

๐Ÿง  Aria

Your local AI assistant with a unified tool-driven architecture

Python 3.12+ CI PyPI Docker License Code style: ruff

Run a local AI assistant with a web UI, CLI, and desktop GUI

Aria Screenshot

โœจ 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   # pins CPU-only torch automatically (embeddings run on CPU; vLLM has its own isolated CUDA venv)
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
  • uv package manager (recommended)
  • Git

See docs/memory-requirements.md for 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   # CPU-only torch pinned automatically via [tool.uv] index

# Or with GUI support
uv sync --extra gui

First Run

On first launch, Aria automatically:

  • Creates .env configuration 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         # Build isolated vLLM venv + install pinned wheel
aria vllm install --version 0.24.0  # Install a specific pinned release
aria vllm update          # Recreate the isolated venv at the latest PyPI release
aria vllm status          # Check installation status, version, and venv path
aria vllm info            # Show vLLM configuration details
aria vllm start           # Start the vLLM server
aria vllm stop            # Stop the vLLM server
aria vllm restart         # Restart only the vLLM server (no web UI side effects)
aria vllm uninstall       # Remove the isolated vLLM venv
aria vllm uninstall --legacy  # Remove a pre-detach vLLM from Aria's own .venv

# 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
# A generic template ships at the repo root; VRAM-tuned presets live in docs/env/
#   (e.g. cp docs/env/.env.16gb.example .env for a 16 GB GPU)
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

First run: the container auto-generates a CHAINLIT_AUTH_SECRET and persists it to the data volume. You still need to create a login user:

docker exec -it aria aria users add --identifier admin@example.com --name "Admin" --role admin

โš™๏ธ 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

# vLLM isolated venv (advanced overrides)
#ARIA_VLLM_VERSION = 0.24.0          # pinned PyPI release tag (v0.24.0 โ†’ 0.24.0)
#ARIA_VLLM_VENV = /opt/vllm          # use a pre-existing venv (Aria won't create/delete it)
#ARIA_VLLM_REMOTE = true            # skip local process mgmt (external server)

Upgrading from an in-.venv vLLM install (before the detach) vLLM is now an external tool installed into an isolated venv at ~/.aria/venvs/vllm (Aria's own dependency tree no longer imports it). A vLLM copy left in Aria's .venv from before the detach is ignored at runtime. aria vllm status prints a one-line notice when it detects this; reclaim the multi-GB CUDA/torch stack with aria vllm uninstall --legacy, then install the isolated copy with aria vllm install.

Reclaiming unused CUDA wheels from Aria's .venv (CPU-torch pin) Aria's venv now installs CPU-only torch โ€” embeddings run on CPU by default (device="cpu"), so the multi-GB CUDA/torch wheel set was loaded but never used. This is enforced automatically via the [tool.uv] pytorch-cpu index in pyproject.toml; plain uv sync resolves torch==+cpu. An existing .venv still holds the old CUDA wheels after re-syncing; prune them explicitly:

uv pip uninstall torch nvidia-cuda-runtime nvidia-cudnn-cu13 \
    nvidia-cusparselt-cu13 nvidia-nccl-cu13 nvidia-nvshmem-cu13 \
    cuda-toolkit cuda-bindings triton
uv sync

vLLM's GPU stack is unaffected โ€” it lives in its own isolated venv at ~/.aria/venvs/vllm, and the vLLM installer passes --no-config so Aria's CPU index never leaks into it.

๐Ÿ“ 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

Report Bug ยท Request Feature

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aria_ai-0.3.2.tar.gz (579.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aria_ai-0.3.2-py3-none-any.whl (682.2 kB view details)

Uploaded Python 3

File details

Details for the file aria_ai-0.3.2.tar.gz.

File metadata

  • Download URL: aria_ai-0.3.2.tar.gz
  • Upload date:
  • Size: 579.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for aria_ai-0.3.2.tar.gz
Algorithm Hash digest
SHA256 4f086f89f53f1418573bb0b5cfe0db3ec02bdc4e7678195d9b902c4c0c04441b
MD5 b9b421fb65640a14bd1530f74e1a0ce4
BLAKE2b-256 a76f57b1c20b4056e35cef564f2ab4d7852f8dd8b4c09d70e2f2c38522a2932e

See more details on using hashes here.

Provenance

The following attestation bundles were made for aria_ai-0.3.2.tar.gz:

Publisher: release.yml on malvavisc0/aria-ai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aria_ai-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: aria_ai-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 682.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for aria_ai-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 83f3c6d5ac7a6e623baf2be0a8f70d431cfb140898b5de236bb66badcdb2a82a
MD5 98027360d3038c429cc1b8f1a10b83a5
BLAKE2b-256 44c39471821f74ac1606bbc6ed2713a67e6db52ba80f9d5cbce4a054463dac25

See more details on using hashes here.

Provenance

The following attestation bundles were made for aria_ai-0.3.2-py3-none-any.whl:

Publisher: release.yml on malvavisc0/aria-ai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page