Code Quality Rank: L2
Programming language: JavaScript
License: GNU General Public License v3.0 or later
Tags: Operating System    
Latest version: v3.1.9
Add another 'Operating System' Library



OS.js is an open-source web desktop platform with a window manager, application APIs, GUI toolkit, filesystem abstractions and much more.

Backing/Donations: Github sponsorship, Patreon, OpenCollective, LibrePay, PayPal, Bitcoin

Support: Chat, Forums, Twitter, Facebook


This is the OS.js base repository that you can use as a template to make your own distributions, installations and development environments.

Try it yourself

Visit the official demo for a preview version. Please note that some features are disabled and might be outdated or unavailable at times.



See the official manuals for articles, tutorials and guides.

There's also a contribution guide if you want to contribute to this project.


OS.js runs on http://localhost:8000 by default.

Using a pre-made image

You can use the official Docker base image to run OS.js without downloading this repository.

This image is based on this source code and comes with a minimal setup.

docker run -p 8000:8000 osjs/osjs:latest

Using this repository

Clone the master branch:

You can also download an archived version (ex. zip file) instead of using git.

git clone -b master --single-branch https://github.com/os-js/OS.js.git
cd OS.js

Docker Compose installation

The easiest way to install is to use Docker Compose. This allows you to run a single command to set everything up:

docker-compose up

Local installation

You can also install this directly onto your system by using the following set of commands.

NOTE: Requires Node v10 (or later. node 17 not currently supported without workaround).

# Install dependencies
npm install

# It's recommended that you update dependencies
npm update

# Optionally install extra packages:
# For a list of packages, see https://manual.os-js.org/resource/official/
npm install @osjs/example-application

# Discover installed packages
npm run package:discover

# Build client
npm run build

# Start serving
npm run serve

*Note that all licence references and agreements mentioned in the os.js README section above are relevant to that project's source code only.