desktui
Pixel-exact VNC client for the terminal (Kitty graphics)
TLDR
SYNOPSIS
desktui [options] [target]
DESCRIPTION
desktui is a terminal VNC (RFB) client that renders the remote desktop as real pixels via the Kitty graphics protocol — one remote pixel per terminal pixel, not half-block ASCII art. It targets terminals that implement Kitty graphics (notably Ghostty, kitty, and WezTerm). Startup probes the terminal and refuses to start with a clear error if image graphics are unavailable.On connect, desktui prefers native scaling: it sends SetDesktopSize so the remote desktop matches the terminal’s usable pixel area and nothing is resampled. Servers that refuse (common with x11vnc) fall back to fit, integer, or 1:1 with panning. Input is passed through to the remote; local commands live behind a prefix (default Ctrl+A): quit, refresh, rescale, pan, view-only, and stats.Authentication supports none and classic VNC password (TigerVNC, x11vnc, TightVNC, QEMU, Kasm). Password comes from --password-file, $VNC_PASSWORD, or a prompt when the server asks. Apple Remote Desktop auth, RealVNC proprietary auth, and VeNCrypt/TLS-only servers are not supported. For untrusted networks, use an SSH tunnel: VNC password auth and the session that follows are not modern TLS.
PARAMETERS
target
VNC address in common client forms: host, host:display, host::port, IPv6, or display-style names such as desk:1.--scale MODE
Desktop fitting mode: native (ask the server to resize to the terminal; default when supported), fit, integer, or 1:1. Switchable live with the local prefix then m.--view-only
Do not send keyboard or pointer input to the remote (toggle with prefix then v).--no-clipboard
Disable bidirectional clipboard sync (on by default).--password-file FILE
Read the VNC password from FILE instead of prompting.--quality N
Request a Tight quality level (enables JPEG). Unset means lossless when the server allows it.--compression N
Compression hint for the server.--fps N
Cap frame rate (defaults aim at lossless ~60 fps when the link allows).--prefix KEY
Local command prefix (default Ctrl+A). Use when it collides with tmux or another multiplexer.--print-caps
Probe and print terminal graphics and input capabilities, then exit.--test-pattern
Exercise the pixel pipeline without connecting to a server.--log-file FILE
Write diagnostics to FILE (stdout cannot be used for logs during a graphics session).
CAVEATS
Requires a terminal with the Kitty graphics protocol; ordinary terminals without image support cannot run desktui. Shared-memory frame transport (t=s) is much faster on a local terminal; over SSH you pay zlib+base64 cost and full-screen motion is capped near the compression path (~48 fps in project measurements). macOS Screen Sharing and RealVNC proprietary schemes will fail with an explicit message. Prefer SSH tunnels for any non-local VNC endpoint.