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.