# os-js/os.js

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/os-js-os-js).**

7,067 stars · 859 forks · JavaScript · NOASSERTION

## Links

- GitHub: https://github.com/os-js/OS.js
- Homepage: https://www.os-js.org/
- awesome-repositories: https://awesome-repositories.com/repository/os-js-os-js.md

## Topics

`cloud-platform` `desktop` `javascript` `osjs` `web-desktop`

## Description

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.

## Tags

### User Interface & Experience

- [Web Desktop Environments](https://awesome-repositories.com/f/user-interface-experience/web-desktop-environments.md) — Launches a full graphical desktop with windows, file manager, and applications inside any modern web browser without installing software. ([source](https://cdn.jsdelivr.net/gh/os-js/os.js@master/README.md))
- [Application Window Managers](https://awesome-repositories.com/f/user-interface-experience/application-window-managers.md) — Opens, closes, moves, resizes, and organizes application windows within the web desktop interface. ([source](https://manual.os-js.org/))
- [DOM-Based Window Management](https://awesome-repositories.com/f/user-interface-experience/window-managers/dom-based-window-management.md) — Manages application windows as DOM elements with z-ordering, resizing, and event routing entirely within the browser.

### Web Development

- [Browser-Based Desktop Platforms](https://awesome-repositories.com/f/web-development/browser-based-desktop-platforms.md) — Runs a complete graphical desktop with windows, menus, and applications inside any modern web browser.
- [Browser-Based Application Runtimes](https://awesome-repositories.com/f/web-development/desktop-application-frameworks/browser-based-application-runtimes.md) — Runs GUI applications with windows, menus, and dialogs inside a browser using built-in APIs and a graphical toolkit. ([source](https://cdn.jsdelivr.net/gh/os-js/os.js@master/README.md))
- [JavaScript Desktop Environments](https://awesome-repositories.com/f/web-development/javascript-desktop-environments.md) — A desktop environment built entirely with JavaScript that runs in a web browser with window management and application support.
- [Web Desktop Platforms](https://awesome-repositories.com/f/web-development/web-desktop-platforms.md) — A browser-based desktop environment that runs GUI applications, manages windows, and provides file management through a virtual filesystem.
- [Server-Side Process Management](https://awesome-repositories.com/f/web-development/server-process-management/server-side-process-management.md) — Spawns and controls background processes and pseudo terminals via a WebSocket bridge to the host operating system.

### Data & Databases

- [Virtual Filesystems](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/filesystem-abstractions/file-managers/virtual-filesystems.md) — Provides an abstracted virtual filesystem layer that unifies access across local, Google Drive, WebDAV, and FTP backends.
- [Filesystem Abstractions](https://awesome-repositories.com/f/data-databases/filesystem-abstractions.md) — Reads, writes, and organizes files through an abstracted filesystem layer that connects to various storage backends. ([source](https://manual.os-js.org/))
- [Unified Virtual Filesystem Layers](https://awesome-repositories.com/f/data-databases/object-storage/remote-object-storage-integrations/s3-storage-management/unified-virtual-filesystem-layers.md) — Reads and writes files through a unified filesystem layer that works across different backends including local, Google Drive, WebDAV, and FTP. ([source](https://cdn.jsdelivr.net/gh/os-js/os.js@master/README.md))
- [Virtualized Filesystem Layers](https://awesome-repositories.com/f/data-databases/storage-abstraction/local-filesystem-storage/virtualized-filesystem-layers.md) — Implements an abstracted virtual filesystem layer that unifies access across multiple storage backends through a common read/write interface.

### DevOps & Infrastructure

- [Browser-Based Desktop Deployments](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-deployments/browser-based-desktop-deployments.md) — Ships an official Docker image that launches a complete browser-based desktop environment with zero configuration.
- [OS Process Execution](https://awesome-repositories.com/f/devops-infrastructure/background-job-processing/os-process-execution.md) — Spawns and manages system processes and pseudo terminals for executing tasks via a server-side process manager. ([source](https://manual.os-js.org/resource/official/))
- [Docker Container Deployments](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-deployments.md) — Packages the entire platform as a single Docker container image for instant server-side setup with minimal configuration.
- [Remote File System Mounts](https://awesome-repositories.com/f/devops-infrastructure/remote-file-system-mounts.md) — Mounts and interacts with remote file systems including Google Drive, WebDAV, and FTP servers from within the web desktop. ([source](https://manual.os-js.org/resource/official/))

### Networking & Communication

- [Remote Protocol Proxies](https://awesome-repositories.com/f/networking-communication/proxy-servers/local-browser-proxies/remote-protocol-proxies.md) — Translates remote desktop protocols like SSH, VNC, and Xpra into browser-compatible streams using a server-side proxy gateway.
- [Browser-Based](https://awesome-repositories.com/f/networking-communication/remote-access-control/remote-desktop-clients/browser-based.md) — Connects to remote servers and desktops using SSH, VNC, and Xpra protocols from within the web desktop.
- [Remote Desktop Protocols](https://awesome-repositories.com/f/networking-communication/remote-access-control/remote-desktop-protocols.md) — Provides a server-side proxy gateway that translates SSH, VNC, and Xpra protocols into browser-compatible streams. ([source](https://manual.os-js.org/resource/official/))

### System Administration & Monitoring

- [Multi-Protocol Remote Desktop Clients](https://awesome-repositories.com/f/system-administration-monitoring/browser-based-remote-desktop-clients/vnc-interfaces/multi-protocol-remote-desktop-clients.md) — Provides a browser-based client that connects to remote desktops via SSH, VNC, and Xpra protocols.
- [Graphical File Managers](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/linux-system-administration/graphical-file-managers.md) — Ships a built-in graphical file manager for browsing and manipulating files within the web desktop environment. ([source](https://manual.os-js.org/resource/official/))

### Artificial Intelligence & ML

- [Pluggable Authentication Middleware](https://awesome-repositories.com/f/artificial-intelligence-ml/agentic-systems-frameworks/agent-orchestration-multi-agent/security-and-auth/authentication-strategies/identity-providers/oauth-authentication/pluggable-authentication-middleware.md) — Authenticates users against external identity providers or local system accounts through a pluggable auth middleware supporting OAuth and PAM.

### Security & Cryptography

- [User Identity Verification](https://awesome-repositories.com/f/security-cryptography/identity-authentication/user-identity-verification.md) — Verifies user identity against databases, PAM, or OAuth providers to control access to the web desktop. ([source](https://manual.os-js.org/resource/official/))

### Software Engineering & Architecture

- [Event Bus Architectures](https://awesome-repositories.com/f/software-engineering-architecture/event-bus-architectures.md) — Coordinates inter-component communication through an event-driven message bus for window, process, and filesystem events.
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures.md) — Loads third-party applications as isolated modules with sandboxed APIs and lifecycle management through a plugin-based application loader.
