explaingit

os-js/os.js

7,061JavaScriptAudience · developerComplexity · 3/5Setup · moderate

TLDR

OS.js is a web-based desktop environment that runs entirely in a browser tab, complete with a window manager, file system API, and a toolkit for building custom browser-based desktop apps.

Mindmap

mindmap
  root((os.js))
    What it does
      Browser desktop
      Window manager
      File system API
    Tech stack
      JavaScript
      Node.js
      Docker
    Setup options
      Docker one-command
      Local Node install
    Use cases
      Custom web OS
      Internal tooling
      Browser kiosk
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a custom browser-based operating system or internal tool portal with real windows and a file manager

USE CASE 2

Create a web desktop with custom applications for a specific workflow accessible from any browser

USE CASE 3

Host a shared file and app environment that requires no software installation on user devices

Tech stack

JavaScriptNode.jsDocker

Getting it running

Difficulty · moderate Time to first run · 30min

Node.js 17 is not supported without a workaround, use Docker or Node.js 10+ (skipping 17) for a smooth setup.

In plain English

OS.js is a web desktop platform that runs entirely in a browser tab. Built in JavaScript, it recreates the look and feel of a traditional desktop operating system inside a web page, complete with a window manager that lets you open, move, and resize windows, a set of application programming interfaces for building apps, a graphical interface toolkit, and abstractions for working with files and directories on the server. The project is open source and available on GitHub. Its core repository serves as a base template that developers can clone and modify to create their own installations or custom distributions. The README also points to an official live demo where you can try a hosted version without installing anything locally, though it notes that some features may be disabled or temporarily unavailable on the demo server. Getting started requires either Docker or Node.js. The Docker path is the simpler of the two: a single command pulls and runs the official image, and the desktop is accessible at port 8000 in your browser. The local installation path involves cloning the repository, installing Node.js dependencies, optionally adding extra packages from the project's package catalog, building the client-side assets, and then starting the server. The README notes that Node.js 17 is not currently supported without a workaround and that Node.js 10 or later (excluding 17 without the fix) is needed. Official documentation is published separately in the project's manual, which covers guides, tutorials, and step-by-step articles. Community support is available through a chat channel, a forum, Twitter, and Facebook. The project is maintained by its author and accepts financial contributions through several donation platforms including GitHub Sponsors, Patreon, OpenCollective, and PayPal.

Copy-paste prompts

Prompt 1
Using OS.js, help me build a browser-based desktop app that lets users upload and preview image files inside a resizable window.
Prompt 2
How do I set up OS.js with Docker and add a custom application to the desktop from the package catalog?
Prompt 3
Write a simple OS.js application that displays a to-do list with add and delete functionality inside a desktop window.
Prompt 4
How do I configure OS.js on a local Node.js installation and package it with a custom set of built-in apps?
Open on GitHub → Explain another repo

← os-js on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.