noVNC

An HTML5 VNC client library that renders a remote desktop directly in the browser over WebSockets

Library
npm
v1.7.0
14,052 stars
Mozilla Public License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
70 /100 Good
Development Activity 52
Maintenance 36
Community 92
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
76 /100 Good
Architecture 80
Code Quality 78
Innovation 75
Learning Curve 70

noVNC implements the RFB (Remote Framebuffer / VNC) protocol entirely in JavaScript, using an HTML5 Canvas to render the remote screen and native browser input events to send keyboard/mouse/touch back to the server, with no browser plugin or native client required. Because the RFB protocol runs over a raw TCP socket that browsers can’t open directly, noVNC connects through websockify, a companion WebSocket-to-TCP proxy that both wrap the RFB stream for browser delivery.

The @novnc/novnc package exposes the core client as an importable RFB class (core/rfb.js) for embedding in custom applications, while the repository’s vnc.html/vnc_lite.html provide ready-made standalone pages. It is widely used as the browser-based console for virtualization and cloud platforms — including Proxmox VE, oVirt, OpenStack, and many other VNC-backed remote-access products.

What You Get

  • An importable RFB client class (core/rfb.js) for embedding a VNC viewer in a custom web application
  • Full RFB protocol implementation: multiple encodings, clipboard sync, and credential/auth negotiation
  • Canvas-based rendering with support for touch, virtual keyboard, and mobile-friendly input handling
  • Ready-to-use standalone pages (vnc.html, vnc_lite.html) for drop-in remote-desktop access
  • Internationalized UI strings (po/ translations) for the bundled application shell

Common Use Cases

  • Embedding a browser-based remote-desktop console in a virtualization or cloud management UI (VM consoles, hypervisor dashboards)
  • Giving support/helpdesk tooling a no-plugin-required way to view and control a remote machine’s screen
  • Providing kiosk or remote-lab access to a desktop environment purely through a web browser
  • Building a custom remote-access product on top of the RFB client while supplying your own UI chrome

Under The Hood

Architecture - The core/ directory holds the protocol client: rfb.js drives the RFB handshake/state machine and owns a Display (display.js) for Canvas rendering and a Websock (websock.js) abstraction over the browser WebSocket API; decoders/ implements each supported RFB encoding (raw, hextile, tight, etc.) as a pluggable decoder, and input/ normalizes keyboard/mouse/touch events into RFB input messages.

Tech Stack - Modern vanilla JavaScript (ES modules, "type": "module" in package.json) with no framework dependency, a small vendor/ directory for pako (deflate) and legacy keysym tables, Karma + a fake-WebSocket test harness for browser-environment testing, and ESLint for style enforcement.

Code Quality - tests/ contains dedicated suites per module (test.display.js, test.deflator.js, test.copyrect.js, etc.) plus a fake.websocket.js harness that lets protocol logic be tested without a real VNC server, and a playback.js/playback-ui.js tool for replaying captured RFB sessions during debugging — a strong testing setup for a binary-protocol client.

API Design - Consumers instantiate new RFB(target, url, options) against a DOM element and a websockify-fronted WebSocket URL, then listen for connect/disconnect/credentialsrequired events; this is a comparatively low number of concepts for a full remote-desktop protocol client, though correctly standing up the required websockify proxy on the server side is an extra piece of infrastructure every integrator must provide.

Used by 6 apps in this directory

Go
73%
GPL 3.0

1Panel

Devops · Hosting Control Panel · Monitoring

37,044

The only open-source VPS control panel with native AI agent runtime — deploy websites, Docker stacks, and local LLMs from one web interface.

View details
91
Repo Health
76
Technical
67
Dependency
Built with
Go 73%
Vue 27%
Updated 5 days ago
Go
75%
AGPL 3.0

Coder

Code Editors · Developer Tools · Devops

16,729

Self-hosted cloud development environments and AI coding agents — defined in Terraform, connected via WireGuard, automatically shut down when idle.

View details
91
Repo Health
90
Technical
65
Dependency
Built with
Go 75%
TypeScript 23%
Updated 5 days ago
Go
60%
MIT

Obot

AI Agents · Mcp

1,071

An open-source MCP platform for organizations — host MCP servers, run MCP registries, monitor usage, and build agents and chatbots on top of the Model Context Protocol from one self-hosted deployment.

View details
87
Repo Health
70
Technical
70
Dependency
Built with
Go 60%
Svelte 26%
TypeScript 13%
Updated 1 weeks ago
TypeScript
91%
MIT

OpenClaw

AI Agents · AI Assistants

390,670

An open-source AI assistant that runs on your own hardware and meets you in Discord, Slack, WhatsApp, iMessage, Telegram, and 20+ other channels, with native apps for every major platform.

View details
88
Repo Health
88
Technical
68
Dependency
Built with
TypeScript 91%
Updated 5 days ago
TypeScript
99%
AGPL 3.0

Pangolin

Networking

22,937

An open-source, identity-based zero-trust remote access platform built on WireGuard — a self-hostable alternative to Cloudflare Tunnel and Twingate with SSO, OIDC, and tunneled reverse proxying.

View details
87
Repo Health
68
Technical
68
Dependency
Built with
TypeScript 99%
Updated 5 days ago
Python
78%
AGPL 3.0

Skyvern

AI Agents · Automation

23,088

Skyvern (YC S2023) automates browser-based workflows by pairing LLMs with computer vision, letting agents click, fill, and extract data on sites they've never seen, without brittle XPath selectors that break on every layout change.

View details
89
Repo Health
82
Technical
70
Dependency
Built with
Python 78%
TypeScript 20%
Updated 5 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers