OS.js is a browser-based desktop environment built entirely with JavaScript that runs a full graphical interface with windows, file management, and applications inside any modern web browser without requiring local software installation. It provides a web desktop platform that manages application windows as DOM elements with z-ordering, resizing, and event routing, while offering an abstracted virtual filesystem layer that unifies access across multiple storage backends through a common read/write interface.
The platform connects to remote servers and desktops using SSH, VNC, or Xpra protocols through a server-side proxy gateway that translates these remote desktop protocols into browser-compatible streams. It authenticates users against external identity providers or local system accounts via a pluggable authentication middleware supporting OAuth and PAM, and coordinates inter-component communication through an event-driven message bus for window, process, and filesystem events. Third-party applications load as isolated modules with sandboxed APIs and lifecycle management through a plugin-based application loader, while a server-side process manager spawns and controls background processes and pseudo terminals via a WebSocket bridge to the host operating system.
The environment includes built-in applications for playing audio files, viewing images, videos, PDFs, ePUBs, ODF documents, and HTML files, editing source code and plain text with syntax highlighting, and managing files through a graphical file manager. Remote storage can be mounted from Google Drive, WebDAV, and FTP servers, and the entire platform can be deployed instantly using a pre-built Docker container image for minimal configuration.