Skip to content

hermes-playwright-layer

Recipe card from the charly-hermes plugin (Images — the deployable catalog).

hermes-playwright – Playwright Chromium for Hermes

Section titled “hermes-playwright – Playwright Chromium for Hermes”
Property Value
Dependencies hermes
Security shm_size: 1g
Install files charly.yml, package.json, task:
RPM packages alsa-lib, at-spi2-core, cups-libs, gtk3, libdrm, libxkbcommon, nss, mesa-dri-drivers, vulkan-loader, libXcomposite, libXdamage, libXrandr, pango, cairo
Variable Value
PLAYWRIGHT_BROWSERS_PATH /tmp/.cache/ms-playwright

This is a Tier 1 candy (no pixi.toml) that adds Playwright + Chromium on top of the hermes candy.

Playwright’s npx playwright install --with-deps does not support Fedora – it falls back to Ubuntu and tries apt-get, which fails. The workaround:

  1. rpm packages in charly.yml install all Chromium system library dependencies manually
  2. A root-phase cmd: task runs npx playwright install chromium (without --with-deps) to download only the browser binary

Browsers are installed to /tmp/.cache/ms-playwright/ during the build (the cmd runs as root with HOME=/tmp). The PLAYWRIGHT_BROWSERS_PATH env var ensures Playwright finds them at runtime.

The Playwright npm package is installed globally via the npm builder (from package.json). To require('playwright') in Node.js, set NODE_PATH:

Terminal window
NODE_PATH=~/.npm-global/lib/node_modules node -e "const { chromium } = require('playwright'); ..."

Or use the npx CLI directly:

Terminal window
npx playwright --version
charly.yml
hermes-playwright:
base: fedora
candy:
- agent-forwarding
- hermes
- hermes-playwright
- dbus
- charly

MUST be invoked when the task involves Playwright browser automation in hermes containers, Chromium system dependencies on Fedora, or the hermes-playwright candy. Invoke this skill BEFORE reading source code or launching Explore agents.

  • /charly-image:layer — candy authoring reference (charly.yml schema, task verbs, service declarations)
  • /charly-check:check — declarative testing (check: block, charly check box, charly check live)