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)
๐Ÿ“„ Document Conversion Convert office/HTML/PDF uploads to markdown on demand via ax documents convert (MarkItDown + optional local Granite-Docling for scanned PDFs)
๐Ÿ”ง 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. Long-running, multi-step, research-heavy, or artifact-producing work can be delegated to an approved background worker with a tracked execution plan.


๐Ÿ› ๏ธ 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
๐ŸŒ 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 memory 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

# Memory (facts)
ax memory store "key" "v"     # Store a fact
ax memory recall "key"        # Retrieve a fact

# Knowledge hub
ax knowledge status           # Index status

# Development
ax dev run "code"             # Execute Python code

# Workers
ax worker spawn --prompt "..." --reason "Delegate sustained work" --expected "..." --step "..." --step "Verify completion" # 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.7.tar.gz (685.7 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.7-py3-none-any.whl (821.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for aria_ai-0.3.7.tar.gz
Algorithm Hash digest
SHA256 fe277ef68e4f89b7602f2c20b3f8d43522724ab6f810c29b45167300653daeb2
MD5 3683e012daafab9f5b5573882e8c17c4
BLAKE2b-256 e8332a63a9c353cfff3a54a642f608356d93f4c0a15c82f90ccae74abb9d65f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for aria_ai-0.3.7.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.7-py3-none-any.whl.

File metadata

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

File hashes

Hashes for aria_ai-0.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f078193d03a75bbd71cd7612bab45b44d3aba45f7d382defa2684974e42de2be
MD5 2c8734b24147362c25b840f86218d133
BLAKE2b-256 12283308b863947b04b53125254582f4b817fec4c41e6d1dea15d2ebb390e61d

See more details on using hashes here.

Provenance

The following attestation bundles were made for aria_ai-0.3.7-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