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.
Services
Section titled “Services”chrome-headless
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 |
|---|---|
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 |