A dedicated VM where agents interact like humans , with Terminal Aria, local files, local OpenAI key setup, local voice mode, and visible long-term memory. The project started as an attempt to answer a simple question: what happens if an AI agent is given control of an operating system, including sudo, browser navigation, file access, and UI interaction, but is isolated inside its own VM? AriaOS is that answer. The VM is the product, the repo now exposes the readable local brain that runs inside it, and the public build keeps the main path local-first.
- 🤖 Agent-focused OS - A dedicated environment for running and operating an agent inside a VM
- 💻 Terminal Aria - A work surface centered on agent-driven execution
- 🖱️ Computer Use - The agent can see the screen, move the mouse, click, type, scroll, and verify desktop/browser results inside the VM
- 🔐 OpenAI BYOK - Users provide their own OpenAI API key on first launch
- 🗂️ Local Workspace - Files, history, and memory stay inside the VM
- 🧠 Visible Local Brain - The repo now exposes the local VM brain, its prompts, and its agentic loop
- 🎙️ Local Voice Mode - Microphone input, transcription, TTS, and task start/stop all run inside the VM
- 🧾 Long-Term Memory - Aria keeps a readable Markdown memory file plus a local semantic index for summary recall
- ⏳ Future-Task Brain Contract - The planner already understands scheduling, cancellation, updates, and replacements for later tasks
- 🖥️ Integrated Desktop - Browser, files, and shell run inside the same machine
# Clone the repository
git clone <your-repo-url> ariaos
cd ariaos
# Run the GTK shell locally
cd app/aria-shell-gtk
PYTHONPATH=src python3 -m aria_shell_gtkFor the actual product experience, the intended path remains the preconfigured AriaOS VM. This public repository contains the shell codebase, VM guest files, and VM release tooling.
- Latest VM release page - Download the latest AriaOS VM
- Direct OVA download - Download AriaOS (.ova)
- Direct QCOW2 download - Download AriaOS for UTM (.qcow2)
- Download page - AriaOS VM downloads
- External mirror - If the VM grows beyond GitHub's per-file release limit, keep the canonical download on your own server/CDN and point the release page here
- Mac Intel - Use UTM and import the published
.qcow2image. This is the recommended macOS path. - Mac Apple Silicon - The current public VM is still
x86_64. Use UTM with emulation. It can work, but boot and runtime will be slower than on Intel Macs. - ARM-native status - A native Apple Silicon / ARM build is not published yet.
- Boot the AriaOS VM
- Let the first boot create the local
ariauser automatically - Wait for the VM to reboot into the desktop session
- Open AriaOS / Aria Home
- Enter an OpenAI API key
- Launch Terminal Aria
- Aria Home - Main entry point
- Terminal Aria - Task execution interface
- OpenAI Key - Local API key and model setup
- Files - Access to the local workspace
- Browser - Navigation inside the VM
The public AriaOS flow is now local-only:
- no mandatory account creation
- no mandatory remote server dependency for first use
- OpenAI API key stored locally inside the VM
- embedded local runtime as the only supported execution path
If you want to understand what the public AriaOS brain can actually do, read:
docs/BRAIN_ACTION_SURFACE.md- planner contract,computerloop, desktop helpers, file/programming actions, and runtime guard railsdocs/KERNEL_AND_SURFACE_MAP.md- real kernel-level input module, old obfuscated name mapping, and the readable UI surfaces now exposed publiclydocs/KERNEL_AUDIT.md- audit of the actual VM kernel, the olderAriaos/kerneltree, the/dev/uinputpath, and the real boot-branding layerdocs/LOCAL_FIRST_ARCHITECTURE.md- local runtime topology inside the VMdocs/LONG_TERM_MEMORY.md- readable memory file, local SQLite embedding index, recall, and write pathdocs/VM_SLIMMING_AUDIT.md- what makes the VM heavy today, what can be removed safely, and what must stay for the public releasedocs/VOICE_MODE.md- local voice websocket flow, transcription, TTS, and task controldocs/FUTURE_TASKS.md- current future-task planner contract and what is still missing for full local schedulingdocs/VM_CODE_LAYOUT.md- canonical VM code location, runtime state paths, caches, staging copies, and backups
Main local files used by AriaOS:
~/.config/ariaos/user_secrets.json- local OpenAI key and secrets~/.config/ariaos/runtime_config.json- runtime configuration~/.local/state/ariaos/onboarding_state.json- onboarding state~/Desktop/Aria Memory.md- readable long-term memory file~/.ariaos/data/aria_memory_index.db- local SQLite embedding index for semantic memory recall~/.ariaos/data/- local history and app data
ariaos/
├── README.md
├── backend/ # Local backend runtime, visible brain, prompts, and voice server
├── aria/ # Local input backend package used by the brain
├── app/
│ └── aria-shell-gtk/ # GTK shell, onboarding, home, terminal
├── vm/
│ ├── guest/ # Launchers, desktop files, firstboot, greeter
│ └── release/ # VM export and release tooling
├── docs/
│ ├── INSTALL_VM.md # VM setup flow
│ ├── LOCAL_FIRST_ARCHITECTURE.md
│ ├── BRAIN_ACTION_SURFACE.md # Planner actions, computer-use loop, and local helper/tool surface
│ ├── KERNEL_AND_SURFACE_MAP.md # Real kernel input module, old/private name mapping, and public UI surfaces
│ ├── KERNEL_AUDIT.md # Audit of the real VM kernel, boot-branding path, and upstream kernel checkout
│ ├── VM_SLIMMING_AUDIT.md # What makes the VM heavy and which components can be removed safely
│ ├── LONG_TERM_MEMORY.md # Markdown memory file, semantic recall, and local vector index design
│ ├── VOICE_MODE.md # Local voice websocket flow and speech stack
│ ├── FUTURE_TASKS.md # Scheduler contract and current local scheduler status
│ └── VM_CODE_LAYOUT.md # Canonical VM source location vs state/cache/staging directories
└── assets/ # Shared repository assets
AriaOS isolates the agent experience inside a dedicated VM:
- 🧱 Separate perimeter - The agent works inside the VM, not directly on the host
- 🔐 Local key storage - The OpenAI key stays stored locally
- 🗃️ Visible memory - Preferences and useful summaries remain inspectable
- 🎙️ Local speech path - Voice mode stays on the VM through the local websocket backends
- 🧭 Simplified flow - Fewer remote dependencies in the main product path
- Python 3
- Linux / Debian-based VM
- GTK4 + libadwaita for the GTK shell
- OpenAI API key
Common packages:
python3-gigir1.2-gtk-4.0gir1.2-adw-1
Public license not finalized yet.