A high-performance, cross-platform VNC client and server for viewing and controlling remote desktops.
kasmtech/KasmVNC
A web-based VNC server for Linux that streams desktops and apps to any modern browser, using a protocol modified from standard RFB.
- Stars
- 5,335
- Forks
- 471
- Open issues
- 118
- Last commit
- 10 hours ago
What is it?
KasmVNC serves a Linux desktop or single application over the web, so users connect from any modern browser without installing a legacy VNC viewer. Although it has VNC in its name, it departs from the RFB specification that defines VNC in order to support newer web technologies and improve security.
The server supports WebCodecs video streaming with H.264, H.265 and AV1, along with WebP and JPEG image compression that adjusts to CPU load and screen change rates. Clipboard sharing for text, images and formatted text works in Chromium-based browsers. Configuration uses YAML at both the server and per-user level, and sessions can be managed with the vncserver and vncpasswd commands or run under systemd.
KasmVNC includes data loss prevention controls such as clipboard size and rate limits, keystroke and clipboard logging, and screen region concealment. It also provides a web API for remote control and multi-user permissions. Packages are available for Debian, Ubuntu, Kali, Oracle Linux, openSUSE and Fedora.
Key features
- 01Browser-based access with no legacy VNC viewer required
- 02WebCodecs video streaming with H.264, H.265 and AV1
- 03Adaptive WebP and JPEG image compression
- 04Clipboard sharing for text, images and formatted text in Chromium browsers
- 05YAML-based server and per-user configuration
- 06Data loss prevention controls including clipboard limits and logging
Use cases
- Giving users remote access to a Linux desktop from a browser
- Providing a containerized desktop or single application streamed to clients
- Running shared desktop sessions with per-user permissions and auto-start via systemd
Quick start
- 1
Download the package for your distro from the releases page
- 2
Install the downloaded .deb package
sudo apt-get install ./kasmvncserver_*.deb - 3
Add your user to the ssl-cert group, then reconnect to the server
sudo adduser $USER ssl-cert - 4
Start a session
vncserver
Things to know
- The server runs only on Linux, with packages for Debian, Ubuntu, Kali, and Oracle 8.
- Clients must use a modern browser, since legacy VNC viewer applications are not supported.
- The protocol deliberately departs from the standard RFB specification, so it is not compatible with other VNC viewers.
- Licensed under GPL-2.0, a copyleft license that requires derivative works to remain open source.
In collections
Topics
FAQ
- What is KasmVNC?
- A web-based VNC server for Linux that streams desktops and apps to any modern browser, using a protocol modified from standard RFB. KasmVNC serves a Linux desktop or single application over the web, so users connect from any modern browser without installing a legacy VNC viewer. Although it has VNC in its name, it departs from the RFB specification that defines VNC in order to support newer web technologies and improve security.
- Is KasmVNC free to use? What license does it have?
- KasmVNC is open source under the GPL-2.0 license. Check the license terms before using it in commercial products.
- Is KasmVNC still maintained?
- Actively maintained. The last commit to KasmVNC was on Oct 24, 2026.
- What can I use KasmVNC for?
- Giving users remote access to a Linux desktop from a browser Providing a containerized desktop or single application streamed to clients Running shared desktop sessions with per-user permissions and auto-start via systemd
- How do I install KasmVNC?
- Download the package for your distro from the releases page Install the downloaded .deb package: sudo apt-get install ./kasmvncserver_*.deb Add your user to the ssl-cert group, then reconnect to the server: sudo adduser $USER ssl-cert Start a session: vncserver
- Where can I get KasmVNC?
- The source code and installation instructions are on GitHub: https://github.com/kasmtech/KasmVNC
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
An open source RDP server that gives Linux machines a graphical remote login compatible with standard Microsoft RDP clients.
A self-hosted virtual browser that runs in Docker and streams to multiple users over WebRTC, with shared control.
An open-source, low-latency remote desktop for Linux, written in Rust with WebRTC transport and GStreamer hardware encoding.
The guacd proxy daemon, libguac C API and protocol libraries that translate RDP, VNC, SSH and Telnet into Guacamole's browser-friendly protocol.
Open-source, self-hostable remote desktop application written in Rust, offered as an alternative to TeamViewer.