跑在浏览器里的
网页桌面操作系统

RunX OS 把浏览器变成一台真桌面:可装 Web 应用与 Node 应用,有窗口、有 Dock、有终端, 还有真正的多用户账号、能力审批与围栏隔离。零运行时依赖 —— 一台装了 Node.js 的机器就能起。

一键安装 阅读文档 GitHub
安装(一条命令)
# 国内网络会自动尝试 GitHub 加速镜像
curl -fsSL https://raw.githubusercontent.com/chinartcn/runx-os/main/install.sh | bash

# 启动后打开
http://localhost:3000/

它不是一个网页壳

RunX 有自己的内核、扩展模型与权限系统。下面这些不是「以后会做」——它们现在就在仓库里,跑得起来。

真桌面体验

可拖拽窗口、多窗口共存、Dock 与图标网格、菜单栏、全局快捷键。终端是 script 伪 PTY 跑真 xterm.js,不是 <textarea> 装的。

权限是真的

能力即字符串:fs.read:/sdcard/**。授权永远是「应用 + 能力 + 路径范围」三元组,读能力家族互覆盖 —— 同一个决定不会问四遍。

应用装得进沙箱

tarball / 目录安全解包 → appex.json → 清单。Node 应用跑在 Node 权限模型(--permission)的围栏里,越权访问直接被内核拦。

多用户

多账号、每账号独立授权表。UAC 的答案不是「允许/拒绝」这么粗 —— 对话框类能力的答案是数据(用户亲自选的路径、文件名、按钮)。

事件总线

内核内总线贯穿应用、扩展与桌面:app:started、sys.dialog.open、sys.clipboard.write。Web 应用与 Node 应用用同一套订阅语义。

零依赖内核

不需要 npm install,不需要编译原生模块。扩展就是放进 .js/ 的目录:mod.json、client.js、styles.css,顺序由清单决定。

能力模型

能力是一段字符串。它同时说明「能做什么」和「能碰哪些路径」。用户看到的审批框里,就是这行字符串。

fs.read:/sdcard/**读文件,范围限定在 /sdcard 之下。同时覆盖 fs.list / fs.stat / fs.watch —— 读能力是一个家族。
fs.write:./data/**写文件,只能写在自己的 data 目录里。想写别处,需要一次新的授权。
proc.spawn:/usr/bin/tr起子进程,高危操作,需要先开限时管理员模式。参数是数组,没有 shell。
dialog.open文件选择器。路径由用户在桌面上亲自点出来 —— 应用不能指定自己想去哪,startIn 有白名单,也没有 defaultPath。
clipboard.read读剪贴板,中危:剪贴板里可能刚复制过密码、验证码或私钥。写是低危。
net.fetch:api.example.com联网,按主机限定。可选 sys.info 读系统信息,不含任何敏感内容。

里面有什么

内置应用与核心扩展。

组件作用
终端RunX 真实交互式终端 —— script 伪 PTY + xterm.js
示例五页演示文件选择器、文件监听、大文件流式、子进程 stdin、剪贴板
@runx-desktop桌面 UI:导航条 / 菜单栏 / 窗口管理 / Dock / 图标网格
@runx-rights-manager账号、授权、UAC 审批、风险拦截
@runx-node-safety应用围栏:Node 权限模型(--experimental-permission)
@runx-supervisor应用生命周期:启停、重启、autostart、崩溃自愈
@runx-pax应用安装:安全解包 → appex.json → 清单
@runx-x11X11 图形应用(按需加载,探测不到后端时给安装建议)
@runx-event-bus内核内事件总线
@runx-ui界面组件库:与桌面同一套视觉语言

应用商店

极致白嫖,按需驱动。商店只存元数据与校验值,包在开发者自己的源上 —— 零服务器成本,官方只做指路明灯。

开发者自带干粮

发版到 GitHub / npm / 任意静态托管,然后填个 meta.json 地址,点「一键同步」—— 瞬间全网生效。商店不代理你的包。

权限变了要重新弹窗

下载前做 SHA 强校验;应用申请的 RunX 能力有变动,安装时逐条重新走 UAC。权限没变就静默放行。

代理池救场

源站拉不动时自动轮询 GitHub 镜像代理;全挂了会告诉你每一次尝试 —— 是「仓库没了」还是「GitHub 抽风」。

死链自净

下载 404 会自动上报。连续两次失败才去问上游 API:仓库真没了就下架,API 挂了就不动 —— 锅甩给大厂。

打开商店 商店 API 文档

现在就起一台

只需要 Node.js ≥ 18 和 bash。手机、平板、树莓派、服务器都行。