Skip to content

chrome-headless

Version 2026.156.1447
Repo superproject

Headless Chrome CDP driver running the real google-chrome binary in –headless=new mode for cross-deployment charly check probing Runs the REAL /usr/bin/google-chrome-stable in –headless=new mode on 127.0.0.1:9223 — no Wayland compositor, no desktop — via the always-restart chrome-headless supervisord service launched from ~/.local/bin/chrome-headless-launch. Composes /charly-selkies:chrome (the browser binary) and /charly-selkies:chrome-cdp (the cdp-proxy that republishes CDP on the published port 9222 with Host-header rewriting, so the cdp: check verb is reachable host-side). Use it as a sibling-member DRIVER deployment that CDP-probes a SEPARATE web-server SUBJECT over the shared charly network without baking Chrome into the subject image. Every fact below is observable: the installed launcher and its headless/CDP flags, the real chrome binary it execs, the running service, and the HTTP 200 that Chrome’s /json/version endpoint returns through the proxy. Container-only.

  • chrome-headless

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
run mkdir=${HOME}/.local/bin
run mkdir=${HOME}/.chrome-headless
run write=${HOME}/.local/bin/chrome-headless-launch
check the chrome-headless launcher is installed and executable in the user’s local bin
check the launcher execs the real google-chrome binary in new-headless mode, not the wayland wrapper
check the launcher sets –remote-allow-origins so Chrome 146+ accepts the CDP websocket upgrade
check the launcher binds Chrome’s CDP on the internal debugging port 9223
check the real google-chrome binary the launcher execs is installed
check the chrome-headless service is running under the init system
check Chrome’s CDP /json/version endpoint answers HTTP 200 with a websocket debugger URL through the proxy