An operating system for software built with web technologies.

Website · Documentation · Live demo · Releases

PhreshOS runs on the machine you install it on, keeps your Programs running there, and gives you a Desktop in the browser to use them from. Programs are built with the web tools you already know. The System gives each of them a place to run, one sign-in, communication with other Programs, storage, and permissions, so a Program only holds its own logic.

Everything on the Desktop, from the file manager to Settings and the wallpaper, is a Program built on the System, not part of it.

This repository is the System: the service that runs on your machine, and the Desktop it serves.

- A place to run. A Program's Server keeps running on the machine, whether or not a browser is open.

- One sign-in. The owner signs in to the System. Programs never handle accounts, sessions, or connections.

- Communication. Programs ask, publish, and listen, between their own parts and between Programs, without setting up a transport.

- Permissions. The System decides what each Program may reach.

- Any browser. Open the Desktop from any browser that can reach the machine, and the same Programs are there, as you left them.

- Agents alongside you. An AI agent uses the same Programs through the

phreshcommand line and the SDKs, at the same time as you use them on the Desktop.

The live demo gives you a disposable Desktop for an hour, with nothing to install.

To install PhreshOS on macOS, Linux, or Windows, you need Node.js 24.15 or newer:

npm install --global @phreshos/cli

phresh system installThe command installs the System as a service of your user, starts it, and

prints the Desktop's address, usually http://localhost:4300. The first visit

creates the owner account. See Installation

to update, stop, or remove it, or to change where it keeps its data.

Then create your first Program:

phresh create my-program

cd my-program

phresh devThe System owns the running state of PhreshOS:

- Programs, their Processes, and the Server and Client Endpoints they run;

- communication between Endpoints, Services, and Programs;

- authentication of the owner and of every connection;

- permissions, storage, uploads, and logs;

- the Desktop: Windows, layers, the plane of views, and the Appearance.

The browser shows this state; it does not hold it. A Desktop, a Node script,

and the phresh command all reach the same System, through contracts defined

in @phreshos/core. See

The System for the full model.

You need Bun 1.3 and Node.js 24.15 or newer.

bun install --frozen-lockfile

bun run devdev runs the System from source, with its data in storage/ in this

repository and the Desktop on the first free port from 5300. An installed

System uses ~/.phreshos and ports from 4300, so both can run side by side.

PHRESHOS_HOME and PHRESHOS_PORT choose another home or port.

The source has three parts: source/server is the System, source/client is

the Desktop, and source/shared holds what both use.

See CONTRIBUTING.md. To report a vulnerability privately, see SECURITY.md.

MIT. Copyright © 2026 Zohayr SLILEH.