open-source project · MPL-2.0 · novnc.com

noVNC

The VNC client that runs in a browser tab, with no viewer installation.

noVNC is an open-source VNC viewer that runs in a browser, with its core code licensed under MPL-2.0. It needs a separate VNC server, connected through WebSockets or websockify. The latest release listed in this page’s spec card is 1.7.0, released 28 April 2026.

  • Good for: personal projects and home labs that need a browser viewer and have an operator to configure the server, network path, authentication and updates.
  • Consider RealVNC Connect when: your business depends on remote access and you need end-to-end encryption, centralised management and commercial support.

Where it is strong

  • No viewer installation. The viewing side runs entirely in a browser with HTML5 and JavaScript.
  • Fits web consoles. noVNC can be embedded in virtualization and cloud dashboards.
  • Broad device reach. Any device with a modern browser can act as the viewer, including tablets. noVNC v1.7.0 README.
  • Some assets have separate licences; see the noVNC v1.7.0 LICENSE.txt.

Where it stops

  • Client only. There is no noVNC server; a separate VNC server supplies the remote desktop.
  • WebSockets required. The VNC server must speak WebSockets directly or connect through the websockify proxy.

Get noVNC

Get noVNC and its websockify companion from the project repositories:


Quickstart

Written for noVNC v1.7.0 on Linux. This local launch assumes a noVNC v1.7.0 tree, working websockify, and a VNC server already listening at localhost:5901. Run from the noVNC directory on that server machine, using Bash. Before running: the default proxy listener is port 6080 on all interfaces. The command below uses --listen localhost:6081 to bind to localhost; its printed URL uses http://. Sources: noVNC v1.7.0 README and utils/novnc_proxy.

noVNC · proxy
./utils/novnc_proxy --vnc localhost:5901 --listen localhost:6081

Look for Navigate to this URL:. Open the printed URL in a browser on the same machine, press Connect, and enter the password if the VNC server has one. The printed URL does not verify the VNC target. Failed to start WebSockets proxy means the proxy startup failed; Could not find vnc.html means the script could not locate that file. Press Ctrl-C to exit. Source: noVNC v1.7.0 utils/novnc_proxy and the README cited above.

In noVNC v1.7.0, Windows AltGr detection fails if either Ctrl key is first pressed manually. See the comment in noVNC v1.7.0 keyboard.js.

In noVNC v1.7.0, H.264 is included in the encoding list only at 24-bit colour depth and when the browser supports H.264 decoding through WebCodecs. See noVNC v1.7.0 rfb.js, _sendEncodings.

Protocol background

  • VNC vs RDP: protocol background for understanding what a browser-based VNC client carries between the remote machine and the viewer.
For project help, see the noVNC v1.7.0 README. Configuration, distribution, and display-server questions can also go to the Open Source VNC group.
Questions about a noVNC setup? The community’s Using VNC Technology group covers setup and troubleshooting, and Security and Remote Access covers safe exposure patterns.

Sources accurate as of 30 September 2026.

Open-source VNC suits personal projects and home labs. When your business depends on remote access, RealVNC Connect adds end-to-end encryption, centralised management and commercial support from the team that created VNC.

Start a free trial ↗ See plans and pricing ↗ Download RealVNC Connect ↗