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
Acceptance plan
Section titled “Acceptance plan”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) |