The First Agentic Experience Operating System A developer has released Veda, an agentic-native operating system written entirely in Rust, from its UEFI bootloader and microkernel to its window system and applications, with a voice agent built into the system that wakes on the phrase "Hey Veda." The agent acts through typed actions that applications declare and that run the same code as the keyboard and mouse, with the built-in apps offering more than 100 such actions, and the system holds sensitive or destructive actions until the user allows them, answerable only by the desktop shell. Veda runs Linux drivers in a VM on its own hypervisor, contained by the IOMMU and restarted on crash, and requires a Deepgram API key entered in Settings → Agent to enable the voice agent. The Agentic-Native Operating System An operating system written in Rust, with a voice agent built into the system. Screenshots screenshots · Quick start quick-start · Make an app agentic make-an-app-agentic · Architecture architecture · Documentation documentation Say "Hey Veda, switch my wallpaper to the dunes" and it is done. The agent works in every application through the same code as your keyboard and mouse, and asks you before anything that is hard to undo. Everything here is Rust, from the UEFI bootloader and the microkernel to the window system and the applications. | An agent in the system A service from boot that wakes when you say its name. Its model, its voice and even its name are settings. | Actions, not screen scraping Applications declare typed actions that run the same code as the keyboard and mouse. The built-in ones offer more than 100. | Consent the model cannot skip The system holds sensitive and destructive actions until you allow them, and only the desktop shell can answer. | | A microkernel in Rust Capabilities, SMP, and services in user space that restart by themselves. Applications get Rust's standard library. | Linux's drivers, contained Linux drives the hardware in a VM on Veda's own hypervisor, held in by the IOMMU and restarted if it crashes. | A complete desktop A compositing window system, a lock screen, a web browser on WebKit, OpenGL ES 3.0, GCC in the Terminal, WPA3 Wi-Fi and a firewall that asks first. | | Desktop | | | Browser | Text Editor | | Photos | Music | | Files | Videos | | Settings | Paint | | Calculator | Terminal | | Interceptor | Unlocking | Veda builds on an x86-64 Linux machine with KVM. Install Rust https://rustup.rs and the build tools: Packages on Debian and Ubuntu sudo apt install qemu-system-x86 qemu-system-gui qemu-system-modules-opengl ovmf \ build-essential bc curl rsync m4 flex bison meson ninja-build cmake nasm \ libgmp-dev libmpfr-dev libmpc-dev python3 python3-mako python3-packaging python3-yaml The driver VM also needs KVM's nested virtualization kvm intel nested=1 . Then build Veda and boot it: cargo automation doctor check the tools cargo automation toolchain once, about half an hour: GCC, musl and Rust for Veda cargo automation linux once: the driver VM's Linux and Mesa cargo automation web once, an hour or more optional : WebKit, for the browser cargo automation python once, a few minutes optional : Python, its standard library cargo automation run build Veda and boot it in QEMU Add a Deepgram https://deepgram.com API key in Settings → Agent , then say "Hey Veda" , click the ring on the taskbar or press Super+Space . Try "Play Neon Horizon" , "Show me the lighthouse photo, full screen" or "Delete the City Lights photo" it asks you first . On a PC: cargo automation iso writes a live system for a USB stick. Start it in UEFI mode, with VT-x and VT-d on and Secure Boot off. It runs from memory and leaves the PC's disks alone; see what it supports https://github.com/vahmoh/Veda/blob/main/documentation/DRIVERVM.md status . Agent support is part of the ui toolkit. An application describes its actions, reports its state and performs actions; ui::run registers it with the agent service and answers the agent between frames: use ui::agent::{self, Action, AppAgentInfo, Risk, Value, arg path, arg str, json, show path}; impl ui::App for Notes { fn update &mut self, ui: &mut ui::Ui { / ... / } fn agent info &self - Option