Repolode
kasmtech

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. 1

    Download the package for your distro from the releases page

  2. 2

    Install the downloaded .deb package

    sudo apt-get install ./kasmvncserver_*.deb
  3. 3

    Add your user to the ssl-cert group, then reconnect to the server

    sudo adduser $USER ssl-cert
  4. 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