A virtual operating system in the browser — desktop GUI, terminal, packages, and real hardware access via Web APIs.
| Area | Capabilities |
|---|---|
| Desktop | Window manager, taskbar, start menu, icons |
| Terminal | Full shell + apx, lsusb, bluetooth, network |
| Files | Persistent VFS (storage/disk.img) |
| Settings | Network status, Web Bluetooth, WebUSB, permission registry |
| Packages | .apx install with Android-style permission gatekeeper |
| Apps | Calculator, text editor, browser, system info |
| Security | Login (RBAC), per-app permission grants in /system/etc/permissions.json |
git clone https://github.com/YOUR_USERNAME/ApexOS.git
cd ApexOS
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python run.py| User | Password |
|---|---|
| root | password |
| guest | guest |
ApexOS bridges the virtual desktop to the host browser:
- Network —
navigator.connection/navigator.onLine(Settings → Network,networkCLI) - Bluetooth —
navigator.bluetooth(Settings → Bluetooth,bluetooth scan) - USB —
navigator.usb(Settings → USB,lsusb)
Hardware calls are user-gated by the browser. Chrome/Edge on localhost or HTTPS work best.
An .apx file is a ZIP archive:
my-app.apx
├── manifest.json
├── index.js
└── (optional assets)
{
"name": "Hello World",
"id": "com.apex.helloworld",
"version": "1.0.0",
"author": "ApexOS",
"permissions": ["hardware.network.read", "hardware.usb.read"],
"entry": "index.js"
}- Open Packages on the desktop
- Select a
.apx/.zipfile - Confirm permissions in the gatekeeper dialog
CLI:
apx list
apx remove com.apex.helloworld
perms
Sample package: packages/hello-world.apx
Permissions are stored in the VFS at /system/etc/permissions.json.
login / whoami / pwd / date / sysinfo
ls cd cat write touch mkdir rm
echo ps kill matrix clear
apx list | apx remove <id>
perms
lsusb
bluetooth scan
network
help
ApexOS/
├── apps/ # Built-in app manifests
├── packages/ # Sample .apx packages
├── src/
│ ├── api/ # FastAPI + desktop frontend
│ ├── auth/ # Authentication
│ ├── core/ # Kernel, scheduler, apx engine
│ └── filesystem/ # VFS
├── storage/disk.img # Persistent disk (created at runtime)
├── run.py
├── requirements.txt
└── README.md
- Phase 1 — Network / Bluetooth / USB control panels + CLI
- Phase 2 —
.apxpackage format + install API + gatekeeper UI - Phase 3 — Permission registry + grant API
- Phase 4 —
apx,lsusb,bluetooth scan,networkcommands
MIT — see LICENSE.
Web Bluetooth / WebUSB behavior depends on the browser vendor. Use HTTPS or localhost for full API access.