KDE Plasma on the web
a full Linux desktop in one browser tab. rvwasm boots Debian with KDE Plasma on your own computer: Konsole, Dolphin, Kate, apt-get install, sound, GPU drawing and video. nothing is streamed from a server.
one click boots it in this tab. free, no account. the first start downloads the parts of the disk it needs. prefer zero clicks? plasmaontheweb.com/desktop boots at once.
what is rvwasm
rvwasm is a Linux desktop on the web. it runs Debian (riscv64) with the KDE Plasma desktop inside a single Chrome tab, so you can use KDE Plasma in the browser with nothing to install. there is no remote screen and no virtual machine in a data centre: the machine runs on your computer, inside the page, on your CPU and GPU.
the Plasma shell is compiled straight to WebAssembly, so this is a real Plasma web port, not a video of a desktop. the applications are Debian's ordinary riscv64 programs, run through a JIT that translates them to WebAssembly while they run.
the project is called rvwasm; Plasma is what it runs. it is real enough to open a terminal, install packages with apt-get, play sound and run Firefox.
how it works
the browser tab is the computer. a Linux kernel built for WebAssembly runs in it, and Debian's programs run on that kernel. small services of ours connect the programs to the page, which draws the windows, runs the GPU commands, plays the sound and decodes the video.
- kernel: Joel Severin's linux-wasm, Linux compiled to 64-bit WebAssembly, with our patches. each process is a Web Worker sharing one memory.
- the jit, rv: runs Debian's unmodified riscv64 binaries by turning hot code into WebAssembly, which the browser compiles to machine code. RISC-V is simple and regular, so it translates cheaply.
- native desktop: the Plasma shell skips emulation entirely, so the panel, menus and windows stay responsive.
- disks: the system disk is fetched in 1 MiB pieces as the machine reads them and kept in your browser. your changes and home folder never leave it.
- the server only hands out those files and a restricted network relay. it does not run your desktop.
what works
a Debian riscv64 system with the full KDE desktop, not a demo window.
plasma and apps
the Plasma 6 desktop with panel, launcher and system tray, plus Konsole, Dolphin, Kate, System Settings, Firefox ESR and Chromium.
apt and packages
apt-get install reaches Debian's riscv64 archive. pip, npm, cargo and git clone from GitHub work too.
audio
the kernel has a sound card; PulseAudio plays through an AudioWorklet to your speakers. Chrome needs one click on the page first.
gpu
programs draw with OpenGL through Mesa, and the commands run on your real GPU through WebGL2, or WebGPU with ?exec=webgpu.
video
players hand compressed video to the page, which decodes it with WebCodecs on your hardware decoder (H.264, HEVC, VP8, VP9, AV1). showing the picture in the player's window is still being finished.
your files
the home folder and every change are kept in your browser's private storage, so a second visit picks up where you left off.
known limits: no fork() (programs use vfork), no systemd, Chrome only, and programs under the JIT run slower than natively.
requirements
rvwasm runs on your computer, so your computer sets the speed. per-core speed matters most: the JIT and the desktop are mostly single-threaded per task.
- browser
- current desktop Chrome, Edge or Brave. Firefox, Safari, phones and tablets are not supported.
- cpu
- fast single-core performance: Apple M1 or newer, a recent Intel Core or AMD Ryzen, at least 4 cores (8 or more is better).
- memory
- 16 GB of RAM recommended. the tab uses 4 to 8 GB with the desktop; 8 GB works for a light session.
- disk
- about 5 GB free for the browser's copy of the system disk.
- gpu
- any GPU with WebGL2. WebGPU is better for
?exec=webgpu.
low-power laptops and Chromebooks boot it, but heavy programs such as Firefox, Chromium and compilers will be slow there.
network allowlist
the machine reaches the internet only through a relay, and this public relay is restricted on purpose so the demo cannot be used for spam or scanning. DNS answers only for allowlisted domains, connections go only to the addresses those names resolved to, on ports 80 and 443, with per-visitor limits.
the allowlist covers installing software:
deb.debian.orgsecurity.debian.orgpypi.orgfiles.pythonhosted.orgregistry.npmjs.orggithub.comcrates.ioso apt-get install, pip install, npm install and git clone from GitHub (and its download hosts) work. general web browsing from inside the machine does not, and neither do mail, SSH or other ports.
faq
What is rvwasm?
rvwasm is a Linux desktop that runs inside a browser tab. It boots Debian (riscv64) with KDE Plasma on linux-wasm, a Linux kernel compiled to WebAssembly, and runs Debian's programs through our own riscv64-to-WebAssembly JIT. rvwasm is the project; Plasma is what it runs.
Is this really KDE Plasma running in the browser?
Yes. The desktop shell (plasmashell, built on Qt 6.8, KDE Frameworks 6 and Plasma 6.3) is compiled straight to WebAssembly and runs natively in your tab, so it is a web port of the Plasma desktop. Applications such as Konsole, Dolphin, Kate and System Settings are Debian's own riscv64 builds, run through the JIT.
Is the desktop streamed from a server, like a remote desktop?
No. Nothing is streamed. The machine runs on your own computer, inside the page, using your CPU, GPU, sound output and hardware video decoder. The server only hands out files and, optionally, a restricted network relay.
Is it free? Do I need an account?
It is free to use and needs no account and no installation: open the page and click Start Plasma.
Is this official KDE software?
No. This is an unofficial project and is not affiliated with or endorsed by KDE e.V. KDE and Plasma are trademarks of KDE e.V. The desktop it runs is KDE's free software.
Which browsers and computers does it work on?
Current desktop Chrome, Edge or Brave. Firefox, Safari, phones and tablets are not supported. A computer with fast single-core performance (Apple M1 or newer, a recent Intel Core or AMD Ryzen) and 16 GB of RAM is recommended; the tab uses 4 to 8 GB with the desktop. About 5 GB of free disk space is used for the browser's copy of the system disk.
Why does the first start take a while?
The system disk is fetched in 1 MiB pieces as the machine reads them and is kept in your browser, so the first visit downloads the parts it uses (hundreds of megabytes up to a few gigabytes). Later visits start from what is already stored.
Can I install software with apt-get?
Yes. apt-get install works through the network relay, as do pip install, npm install, cargo and git clone from GitHub. The relay only allows a short list of domains, so general web browsing from inside the machine does not work.
Can I browse the web inside the desktop?
Not on the public site. Firefox and Chromium are installed, but the machine can only reach the allowlisted domains (Debian's archive, PyPI, npm, GitHub and crates.io), on ports 80 and 443.
Are my files saved?
Your home folder and everything you change on the disk are stored in your own browser, in its Origin Private File System, and never on the server. They stay until you clear this site's data.
How fast is a Linux desktop in a browser tab?
The Plasma shell, the GPU, sound and video paths run at close to native speed in WebAssembly. Debian's riscv64 programs run through the JIT, which is several times faster than other WebAssembly emulators but slower than native, so heavy programs such as Firefox, Chromium and compilers feel slow on a low-power laptop.
credits
rvwasm stands on a lot of free software.
- linux-wasm by Joel Severin: the Linux kernel compiled to WebAssembly that everything runs on.
- Debian: the riscv64 system, its packages and its archive.
- KDE: Plasma, KDE Frameworks, Konsole, Dolphin, Kate and System Settings.
- Qt, Mesa and virglrenderer, PulseAudio, mpv and libva, BusyBox, musl and LLVM.