WebVM is a server-less virtual Linux environment running client-side
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.