WebVM is a server-less virtual Linux environment running client-side
A new project called WebVM runs a Linux userland entirely in the browser via WebAssembly, offering a “server-less” virtual machine that can even access networking through Tailscale. Commenters are impressed by the technical achievement and potential use cases—education, live coding environments, software preservation, and web IDE backends—but note performance and usability issues, especially on mobile, and question the practicality compared to traditional containers or full system emulators. Some are also disappointed that the underlying CheerpX engine is not open source or fully self-hostable, which limits its appeal for serious or commercial adoption.
Architecture & Networking
- WebVM runs x86 Linux userland binaries in the browser via CheerpX, which emulates Linux syscalls (ring 3 only), not a full kernel.
- Networking is implemented via Tailscale plus an embedded lwIP stack; some glue code is not yet open-sourced.
- This approach avoids needing a traditional network interface in the browser and works with custom headscale/DERP setups.
- It supports
fork()(e.g., bash works), but /proc is not fully available (uptimefails,/proc must be mounted).
Performance
- Mixed impressions: some users say it feels sluggish and “slow and sluggish for interactive use.”
- Benchmarks show it can outperform other in-browser VMs (e.g., Mandelbrot, Python loop vs v86), but others see very slow Node.js execution for trivial scripts.
- Some report it being “ungodly slow” on Apple Silicon.
Use Cases & Roadmap
- Suggested use cases: education, live docs and sandboxes, preservation of historical software/games, running legacy Windows apps, and dev environments for web IDEs.
- GUI support is actively being worked on, with plans for a full desktop environment and later 3D graphics.
- Some imagine future browser-as-container-platform scenarios; WebVM images can already be built from Dockerfiles via a GitHub Action.
UX & Browser Support
- Several reports of unreliable keyboard input and screen freezes; sometimes resolved by pressing backspace.
- Copy/paste is tricky due to Ctrl-C mapping to SIGINT. Menu-based copy works; paste via Ctrl+Shift+V; alternative shortcuts (Insert-based) are discussed.
- Mobile support is inconsistent: some browsers work, others duplicate keystrokes or fail to respond, and detection/error messaging for unsupported setups is requested.
Persistence & Offline Behavior
- Filesystem state is cached client-side via IndexedDB and persists across reloads until cleared by the user.
- Full offline use is limited by the need to avoid downloading the full ~2GB disk image.
Licensing, Openness & Alternatives
- Core engine (CheerpX) is not open source and cannot currently be self-hosted, which disappoints some; free use is limited to non-commercial exploration.
- Other in-browser VMs/emulators (v86, JSLinux, PCjs, Mac emulators, WebContainers) are mentioned for comparison.
Other Questions & Limitations
- Root password is trivial (“password”).
manis missing;apt-get installof extra packages can hang.- Running containers inside WebVM, NFS/network filesystems, and browser-exposed webservers are discussed but remain largely exploratory/unclear.