Your local AI assistant with a unified tool-driven architecture
Run a local AI assistant with a web UI, CLI, and desktop GUI
Features • Quick Start • Agents • Tools • Installation
| 🎯 | Unified Tool Architecture - Consolidated tool registry with tiered domain loading |
|---|---|
| 🖥️ | Multiple Interfaces - Web UI, CLI, and native GUI application |
| 🤖 | Local LLM Support - Run models locally with llama.cpp integration |
| 🔒 | Privacy First - Your data stays on your machine |
| 🌐 | Web Research - Search, weather, finance, and more |
| 💻 | Code Execution - Safe Python sandbox and shell commands |
# Clone and install
git clone <repository-url>
cd aria
uv sync
# Start the server
aria server run
# Open http://localhost:8000 in your browser📦 Install with GUI support
uv sync --extra gui
aria-gui # Launch desktop applicationAria is in the middle of a tool-first consolidation: the recent architecture work reduces duplicated specialist behavior and centers capability around one primary Aria agent plus a separate prompt-enhancement utility.
- Tooling was consolidated into 33 total tools with a centralized registry and category-based loading.
- Core and file tools are treated as always available, while domain tools load on demand.
- Redundant tool variants were merged into unified interfaces such as
python(),read_file,write_file,edit_file,web_search,download, andshell. - New persistent capability areas now include a knowledge store plus system tools for HTTP requests and process management.
- The specialist-agent model is being phased out in favor of a simpler unified workflow, while
PromptEnhancerAgentremains separate.
| Category | Tools | Capabilities |
|---|---|---|
| 🧠 Core | reasoning, scratchpad, plan, knowledge | Structured thinking, planning, memory |
| 📁 Files | read_file, write_file, edit_file, + 6 more | Full file management |
| 🌐 Search | web_search, download | Web research, content download |
| 🐍 Development | python | Code execution and validation |
| 📊 Finance | stock_price, company_info, ticker_news | Market data and analysis |
| 🎬 Entertainment | 7 IMDb tools, YouTube | Movie/TV data, transcripts |
| 🖥️ System | shell, http_request, process | Shell commands, HTTP, process management |
| 🌤️ Utility | weather, parse_pdf, browser | Weather, PDF parsing, web browsing |
User Request → Aria → Registry-selected tools → Response
Aria evaluates each request, keeps core capabilities available by default, and pulls in domain-specific tools only when the task requires them.
The recent tool redesign merged previously overlapping functions into a smaller, clearer inventory. The registry now organizes tools into always-loaded and on-demand domains.
| Category | Tools |
|---|---|
| 🧠 Core | reasoning, plan, knowledge, scratchpad, web_search, download, get_current_weather, shell |
| 📁 Files | read_file, write_file, edit_file, file_info, list_files, search_files, copy_file, delete_file, rename_file |
| 🌍 Web | open_url, browser_click |
| 🐍 Development | python |
| 📊 Finance | fetch_current_stock_price, fetch_company_information, fetch_ticker_news |
| 🎬 Entertainment | 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 | http_request, process |
For the full inventory, parameter reference, and category mapping, see docs/tools-inventory.md.
The current implementation direction documented in plans/agent-consolidation-review.md is:
- Delete redundant tools.
- Merge overlapping tools into broader interfaces.
- Add the knowledge store.
- Add
http_requestandprocess. - Consolidate specialist agents into a unified Aria workflow.
- Preserve specialist guidance as prompt sections instead of separate agents.
This reduces routing complexity, lowers prompt overhead, and makes future capabilities easier to add.
- 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.
# Clone the repository
git clone <repository-url>
cd aria
# Install dependencies
uv sync
# Or with GUI support
uv sync --extra guiOn first launch, Aria automatically:
- Creates configuration files
- Sets up the database
- Generates auth secrets
aria check # Verify installation
aria server run # Start the web server# 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
# User management
aria users list # List users
aria users add # Add new user
# Model management
aria models list # List downloaded models
aria models download # Download a model
# System info
aria system info # System information
aria system gpu # GPU information
# Configuration
aria config show # Show current configaria-gui # Launch desktop applicationThe GUI provides:
- Server control (start/stop)
- User management
- Model downloads
- Log viewing
After starting the server, access the web interface at http://localhost:8000
Aria uses environment variables stored in .env:
# Core settings
DATA_FOLDER=./data
CHAINLIT_AUTH_SECRET=<auto-generated>
# Model paths
CHAT_MODEL=<path-to-chat-model>
VISION_MODEL=<path-to-vision-model>
EMBEDDING_MODEL=<path-to-embedding-model>📁 Directory Structure
aria/
├── data/ # Database, models, binaries
│ ├── aria.db # SQLite database
│ ├── models/ # GGUF model files
│ └── bin/ # llama.cpp binaries
├── storage/ # Uploaded files
├── chromadb/ # Vector database
└── .env # Configuration
Contributions are welcome! Please feel free to submit issues and pull requests.
# Install dev dependencies
uv sync --group dev
# Run tests
uv run pytest
# Format code
uv run black src/
uv run isort src/This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by malvavisc0
