An agent runtime

The operating system your agents run on.

Agents need somewhere to live that is not your main session, and not someone else's container.

v1.4.0 x86_64 UEFI Apple T2 NVIDIA MCP registry self-hosted

2

personas, the workstation and the headless node, built from one codebase.

100%

of your prompts, files and keys stay on your hardware by default, not opt-in.

201MB

idle memory on the headless node. Measured, not a target we hope to hit.

Where the work actually runs.

Most agent work is grunt work: summarizing, refactoring, extracting, drafting, testing. A local model on hardware you already own handles it at zero marginal cost, offline, in private. The hard fraction (deep reasoning, big context, the final call) goes to a frontier model over the API.

vinOS wires that split in at the runtime layer, so it holds whether you are one person at a desk or thirty workers on a rack. Ollama serves local models on the metal, Claude Code stands ready for the calls that earn their price, and vinos-mcp governs which tools an agent can reach. The API bill covers judgment, not volume.

One codebase. Two shapes.

The distro underneath differs because the job differs. The vinOS layer on top (bash, systemd units, config drop-ins, the vinos CLI) is byte-identical on both.

vinos-dev

The workstation you sit in front of.

base
Arch Linux, rolling
kernel
linux and linux-t2
you drive it
Hyprland, a keyboard, your hands
ships as
archiso image, BIOS and UEFI
idle memory
about 1.5 GB
updates
you run pacman -Syu

shipping, v1.4.0

vinos-vm

The headless node you never log into.

base
Ubuntu 24.04 LTS, minimal
kernel
linux-image-generic
you drive it
SSH, cloud-init, an orchestrator
ships as
qcow2, AMI, VHD
idle memory
201 MB, measured
updates
unattended, with a kernel-reboot gate

in development

Why two distros and not one? Because Arch on a cloud VM has an adoption ceiling somewhere under one percent, and Ubuntu on a developer's ThinkPad is a compromise nobody asked for. Rather than force one base to be bad at half its job, vinOS keeps the base honest and moves the portable part, the runtime, above it.

That is the whole architectural bet. A desktop distro cannot become a fleet runtime later; a runtime can grow a desktop. We built the runtime first.

A thin, readable layer you can leave.

Not a fork of anything. A runtime layer over an unmodified base: plain bash, plain systemd units, plain config files. Read all of it in an afternoon, walk away and nothing follows you.

Your cheapest node is the one you already own.

One ISO, any x86_64 machine. The laptop on your desk, the workstation your OEM shipped preloaded, the box in the basement that has been idle since 2021. Every one of them is a node that costs nothing per hour.

16 GB of RAM and a decade-old CPU run a 7B model comfortably. A GPU or a fat server runs 30B. Drivers are detected and services tuned, because a node you have to hand-configure is a node you will never add a second of.

Including the Intel MacBooks Apple walked away from. vinOS ships the linux-t2 kernel in the ISO and installs it to disk on Apple hardware automatically. Keyboard, trackpad, Wi-Fi and Touch Bar work from the live USB through to the installed system.

Known T2 limits: suspend is unreliable upstream (the workarounds are documented), and Touch ID does not work under Linux. Everything else does.

A vinOS desktop after install: Hyprland with the waybar strip across the top and the vinOS mark on the wallpaper
The desktop as it arrives. No dongles, no firmware scavenger hunt.

Three steps.

Nothing tricky. If you have flashed a USB before, you can install this.

  1. Download.

    Grab vinos-1.4.0-x86_64.iso from the releases page. About 4.0 GB, with a published checksum. Verify before you flash.

  2. Flash.

    Etcher, Rufus, or dd. Any 8 GB stick works. Five minutes.

  3. Install.

    Boot the stick. When the desktop loads, open a terminal and run:

    sudo vinos-install-disk

Add only what you use.

The base stays small. Each bundle is a plain list of packages at /usr/share/vinos/bundles/, installed by one command.

ai

ollama · claude-code · open-webui · llm

dev

neovim · lazygit · docker · gh · nodejs · rustup · uv · direnv

media

mpv · imv · yt-dlp · ffmpeg · spotify · pinta

office

libreoffice-fresh · zathura · obsidian · localsend

gaming

steam · lutris · gamemode · mangohud · protontricks

productivity

obsidian · dbeaver · postman · flameshot · syncthing

comms

signal-desktop · slack · zoom · discord

browser

chromium · firefox · brave-bin

Install one with vinos-install ai. Nothing here is preinstalled, and nothing here is required.

The whole cheat sheet.

Every binding is wired in the default Hyprland config and works on first boot. Press Super+K to see it inside the OS.

Agents

  • Local AI chatSuper+A
  • Claude Code hereSuper+Shift+A

Launch

  • LauncherSuper+Space
  • TerminalSuper+Return
  • BrowserSuper+B
  • File managerSuper+E
  • EditorSuper+N
  • System monitorSuper+T

vinOS

  • Menu hubSuper+Ctrl+O
  • Wi-Fi pickerSuper+Ctrl+W
  • Bluetooth pickerSuper+Ctrl+B
  • Audio pickerSuper+Ctrl+U
  • Theme switchSuper+Ctrl+T
  • System doctorSuper+Ctrl+S
  • Lock screenSuper+L

Screen

  • Region, annotateSuper+P
  • Region to clipboardSuper+Shift+P
  • Region to clipboardPrintScreen
  • Colour pickerSuper+Shift+C

Windows

  • Close windowSuper+Q
  • FullscreenSuper+Shift+F
  • Float or tileSuper+V
  • Exit HyprlandSuper+Shift+E

Workspaces

  • Switch to 1 through 9Super+1
  • Move window thereSuper+Shift+1
  • Show cheat sheetSuper+K

How it stacks up.

Same kernel, same repos, same packages you could install yourself. The difference is what is already done, and whether that work carries over to the machine you never log into.

vinOS · Arch (stock) · DIY Hyprland
vinOSArch (stock)DIY Hyprland
Live installer ISOyesyesno
Hyprland pre-configuredyesnobring your own
T2, NVIDIA, ThinkPad driversbaked inmanualmanual
Agent stack in one commandyesnono
First-boot user creationTUI installerarchinstallmanual
Live theme switcher5 themesnono
Opt-in app bundles8 bundlesnono
Sudo and security defaultshardeneddefaultsdefaults
Time to a working desktopabout 15 minabout 45 mina weekend
Same layer runs headlessone codebaserebuild itrebuild it
MCP tool registryvinos-mcpnono

Is this for you?

Yes, if

  • You run agents on more than one machine and you are tired of each one being a snowflake.
  • You want the box under your desk and the box in the rack to behave identically.
  • You would rather a local model do the volume than meter every routine call through an API.
  • You need to know where the prompts, the files and the keys physically are, because someone will ask.
  • You have hardware sitting idle that could be doing work.

No, if

  • You want a hosted product with a support contract. This is infrastructure you run.
  • You only ever need one machine and it already works. Nothing here beats that.
  • You want a desktop distro. There are excellent ones, and some have real funding behind them.

Start with one node.

Flash it to a USB, boot any x86_64 machine (including the T2 MacBook in your drawer) and you have a node running local models in about fifteen minutes. Add the second one when the first has earned it.