# KasmVNC — Modern Web-Native VNC Server > A modern VNC server designed for web-based access with hardware-accelerated encoding, multi-user support, and built-in web client — no native VNC viewer needed. ## Install Save in your project root: # KasmVNC — Modern Web-Native VNC Server ## Quick Use ```bash # Debian/Ubuntu sudo apt install ./kasmvncserver_*.deb vncserver :1 -websocketPort 6901 # Open https://localhost:6901 in a browser ``` ## 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 :1` and access via `https://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. ## Sources - https://github.com/kasmtech/KasmVNC - https://kasmweb.com/kasmvnc --- Source: https://tokrepo.com/en/workflows/asset-2981398b Author: AI Open Source