Introduction
KasmVNC is a modern fork of TigerVNC rebuilt for web-native remote desktop access. It replaces traditional VNC viewers with a performant HTML5 client, adds multi-user isolation, and includes hardware video encoding — making it the foundation for Kasm Workspaces and other browser-based desktop solutions.
What KasmVNC Does
- Serves a full Linux desktop or application through a web browser via WebSocket
- Encodes the display using WebP, JPEG, and hardware H.264 for low bandwidth consumption
- Supports multiple simultaneous users with isolated sessions on a single server
- Provides clipboard sync, file transfer, and audio streaming to the browser
- Includes built-in TLS encryption and token-based authentication
Architecture Overview
KasmVNC runs as an X11 VNC server that captures the framebuffer, encodes changed regions using adaptive quality algorithms, and streams them to a built-in web server over WebSocket. The HTML5 client (based on noVNC with significant modifications) renders frames in a canvas element. Hardware encoding leverages VA-API or NVENC when available. Each user session runs in a separate X server instance for isolation.
Self-Hosting & Configuration
- Install from .deb or .rpm packages available on GitHub releases
- Start a session with
vncserver :1and access viahttps://host:6901 - Configure resolution, frame rate, and encoding quality in
~/.vnc/kasmvnc.yaml - Enable hardware encoding by installing VA-API or NVIDIA drivers
- Deploy in Docker with Kasm Workspaces images for containerized desktop environments
Key Features
- No VNC client required — access full desktops from any modern browser
- Adaptive encoding selects WebP, JPEG, or H.264 based on content and bandwidth
- Multi-user session isolation on a single host
- Built-in file upload/download and bidirectional clipboard
- DRI3 GPU rendering support for 3D-accelerated applications in the browser
Comparison with Similar Tools
- TigerVNC — Traditional VNC server; requires a native VNC viewer, no built-in web client
- noVNC — Web-based VNC client that connects to any VNC server; KasmVNC includes a modified noVNC plus a purpose-built server
- Apache Guacamole — Clientless remote desktop gateway for VNC/RDP/SSH; adds a middleware layer rather than replacing the VNC server
- Neko — Docker-based virtual browser with WebRTC; focused on single-app sharing rather than full desktop sessions
- XRDP — RDP server for Linux; uses the RDP protocol instead of VNC, requires an RDP client or web gateway
FAQ
Q: How does KasmVNC differ from TigerVNC? A: KasmVNC adds a built-in web client, WebP/H.264 encoding, multi-user isolation, clipboard/file transfer, and drops legacy VNC viewer support.
Q: Can I use KasmVNC without Kasm Workspaces? A: Yes. KasmVNC is a standalone VNC server. Kasm Workspaces is a separate product that orchestrates containerized KasmVNC sessions.
Q: Does it support audio? A: Yes. PulseAudio is captured and streamed to the browser as Opus audio alongside the video feed.
Q: What GPU hardware acceleration is supported? A: VA-API (Intel/AMD) and NVENC (NVIDIA) for video encoding, plus DRI3 for GPU-rendered desktops.