noVNC is an HTML VNC client library and web application that enables remote desktop access through any modern browser, including mobile devices.
The tool solves the problem of accessing remote desktops without requiring native VNC client software installation. It works by implementing a full VNC protocol stack in JavaScript that runs in the browser, communicating with VNC servers through WebSockets. The application supports a comprehensive range of VNC authentication methods including classical VNC, RSA-AES, Tight, VeNCrypt, XVP, Diffie-Hellman, and MSLogonII, along with multiple VNC encodings such as raw, copyrect, rre, hextile, tight, tightPNG, ZRLE, JPEG, Zlib, and H.264. It provides local cursor rendering, clipboard copy and paste with Unicode support, desktop scaling and clipping, touch gestures for mobile interaction, and translation support.
Developers should choose noVNC when they need to embed remote desktop access into web applications or provide browser-based remote access without client installation. It suits any project requiring VNC connectivity in a web context, from cloud infrastructure management to remote support systems. The tool has proven integration in major platforms including OpenStack, OpenNebula, LibVNCServer, and ThinLinc. Browser support extends to Chrome, Firefox, Safari, Opera, and Edge at their modern versions, with full mobile browser compatibility on iOS and Android.
The project maintains an active community discussion group and wiki with integration guidance. Issues marked as patchwelcome indicate ongoing receptiveness to contributions, and the project provides a formal contribution guide for potential developers. The codebase is primarily licensed under the Mozilla Public License 2.0.