Skip to content

plugin-cdp

Version 2026.178.0900
Repo superproject
Plugin yes — see the plugin reference

OUT-OF-TREE charly plugin serving the cdp Chrome-DevTools-Protocol check verb — a standalone Go module (go.mod + main.go) that speaks CDP over the DevTools HTTP (/json) + per-tab WebSocket surface via golang.org/x/net/websocket, 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 CDP WebSocket client lives HERE, out of charly’s core check surface (the latest external dep-shed after candy/plugin-appium, -adb, -kube, -spice, -mcp, -record; charly’s core no longer keeps a CDP client of its own — the former in-core copy was deleted when wl externalized). Since the schema-compaction cutover an authored cdp: step desugars to the internal plugin/plugin_input envelope, and every cdp-exclusive modifier (method/tab/url/expression/selector/x/y/…) lives in the plugin’s OWN #CdpInput (schema/cdp.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 CDP port 9222 to a host-reachable DevTools base URL via the generic cc.ResolveEndpoint reverse-leg (the host owns the podman / venue / port-mapping machinery) — so this plugin needs no container inspection at all. Provides the full query/action surface (status/list/url/text/html/eval/axtree/coords/raw/wait/ screenshot/open/close/click/type) plus the SPA remote-desktop input group (spa-status/click/mouse/type/key/key-combo). The R10 consumer is a Chrome-bearing pod bed whose check composes this plugin (e.g. sway-browser-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 cdp verb dispatches through the provider registry and reports the Chrome DevTools Protocol connection status on a live deployment with a CDP endpoint (the out-of-process plugin verb dials the host-resolved DevTools base URL)