Skip to content

plugin-vnc

Version 2026.178.1200
Repo superproject
Plugin yes — see the plugin reference

OUT-OF-TREE charly plugin serving the vnc RFB/VNC check verb — a standalone Go module (go.mod + main.go) that drives a live deployment’s VNC desktop over the RFB protocol (RFC 6143: the custom stdlib-only VNC client — VeNCrypt/TLS + ZRLE decode), served OUT-OF-PROCESS over go-plugin gRPC via the charly plugin SDK (github.com/opencharly/sdk). charly’s loader fetches this candy’s repo, go-builds the provider binary on the HOST, and serves it via LocalTransport — so the RFB client lives HERE, out of charly’s core check surface (the latest external dep-shed after candy/plugin-cdp; nothing VNC-specific remains in core — the former charly check vnc vm CLI is subsumed into the declarative vnc: verb against a vm target). Since the schema-compaction cutover an authored vnc: step desugars to the internal plugin/plugin_input envelope, and every vnc-exclusive modifier (method/x/y/text/key/artifact/http_method/params) lives in the plugin’s OWN #VncInput (schema/vnc.cue); the verb dispatches through the provider registry exactly like a built-in (ResolveVerb → grpcProvider → invokeVerbProvider hands it the full #Op). The plugin resolves the deployment’s VNC endpoint via the generic cc.ResolveGraphicsEndpoint reverse-leg (the host owns the podman / venue / libvirt / port-mapping machinery) — a container’s published port 5900, or a VM’s libvirt-discovered listener bridged/tunneled to a host-reachable TCP address — plus the resolved password, so this plugin needs no container inspection at all. Provides status/screenshot/click/mouse/ type/key/rfb. The R10 consumer is a wayvnc-bearing pod bed whose check composes this plugin (e.g. sway-browser-vnc via sway-desktop-vnc).

This candy’s plan: — the runnable spec charly check executes against a live deployment. check: steps are idempotent probes; run: steps change state.

Intent Step
check the vnc verb dispatches through the provider registry and reports the VNC server status on a live desktop deployment with a wayvnc endpoint (the out-of-process plugin verb dials the host-resolved RFB address)