A console operating environment for handheld gaming PCs — built on Linux, presented as a dedicated gaming console.
PlayOS boots directly from UEFI into a controller-first shell. A custom compositor permanently owns the display. One hardware-accelerated game runs at a time. The player never sees a Linux desktop, terminal, or login screen.
A minimal, immutable Linux system that acts as a hardware enablement layer
A Wayland compositor that owns DRM/KMS and enforces console display policy
A persistent Raylib shell that is always alive, even while a game runs
A stable public C ABI (libplayos) that games target instead of Linux internals
A thirteen-repository project with clear ownership boundaries
A Linux distribution or desktop environment
A general-purpose PC OS
An emulation layer or compatibility shim
A cloud gaming platform
Repository Role
playos-specArchitecture, contracts, ADRs, roadmap, game developer docs
playos-platform-apiPublic libplayos C ABI
playos-runtimeInternal IPC, lifecycle transport, private Wayland protocols
playos-compositorwlroots compositor, DRM/KMS, focus, input routing
playos-shellController-first Raylib shell and PlayOS Raylib backend
playos-refdistroBuildroot integration, kernel config, image assembly, installer
playos-initPID 1 process supervisor, boot lifecycle, storage mount
playos-samplesSample games and reference applications
playos-toolsHost-side developer and OTA staging tools
playos-foundationShared foundation libraries and utilities
playos-reference-devicesReference device configurations and images
playos-cloudCloud services — cloud saves and accounts (post-MVP)
playos-marketplaceGame store and marketplace (post-MVP)
# Build and run in QEMU
make setup
make qemu-config
make qemu-build
make qemu-run
# Build for ROG Ally (USB image)
make ally-config
make ally-build
make ally-usb-image
See build-guide.md and dev-environment.md for full setup instructions.
ASUS ROG Ally — AMD Ryzen Z1 / RDNA 3 APU
First supported graphics stack: AMDGPU + Mesa RadeonSI
Intel expansion: Sprint 13