hermes-playwright
Recipe card from the charly-hermes plugin (Images — the deployable catalog).
hermes-playwright
Section titled “hermes-playwright”Hermes AI agent with Playwright Chromium — web scraping, browser automation, and all headless agent capabilities.
Box Properties
Section titled “Box Properties”| Property | Value |
|---|---|
| Base | fedora |
| Candies | agent-forwarding, hermes, hermes-playwright, dbus, charly |
| Platforms | linux/amd64 |
| Security | shm_size: 1g |
| Registry | ghcr.io/opencharly |
Full Candy Stack
Section titled “Full Candy Stack”Builds on the base hermes candy (not the hermes box), adding Playwright Chromium:
fedorabase +agent-forwarding+hermes+hermes-playwright+dbus+charlyhermes-playwright– Playwright npm package + Chromium Headless Shell + system deps
Quick Start
Section titled “Quick Start”charly box build hermes-playwrightcharly config hermes-playwright -e OLLAMA_API_KEY=your-key # or OPENROUTER_API_KEYcharly start hermes-playwrightThe hermes entrypoint performs single-phase, first-start-only auto-configuration of LLM providers and MCP servers from env vars. See /charly-hermes:hermes for full provider configuration and MCP auto-discovery details.
Playwright Usage
Section titled “Playwright Usage”From Node.js
Section titled “From Node.js”charly shell hermes-playwright -c "NODE_PATH=~/.npm-global/lib/node_modules node -e \"const { chromium } = require('playwright');(async () => { const browser = await chromium.launch({ headless: true }); const page = await browser.newPage(); await page.goto('https://example.com'); console.log(await page.title()); await browser.close();})();\""Via npx CLI
Section titled “Via npx CLI”charly shell hermes-playwright -c "npx playwright --version"Key Candies
Section titled “Key Candies”/charly-hermes:hermes– core agent (inherited)/charly-hermes:hermes-playwright– Playwright + Chromium + system deps
Fedora Compatibility Note
Section titled “Fedora Compatibility Note”Playwright’s --with-deps flag does not support Fedora (falls back to Ubuntu’s apt-get). The hermes-playwright candy works around this by:
- Installing Chromium’s system library dependencies via rpm packages in
charly.yml - Installing only the browser binary via
npx playwright install chromiumintask:
The PLAYWRIGHT_BROWSERS_PATH=/tmp/.cache/ms-playwright env var is set automatically.
Related Boxes
Section titled “Related Boxes”/charly-hermes:hermes– full-featured standalone hermes (no browser, uses cross-container CDP)
Verification
Section titled “Verification”After charly start:
charly status hermes-playwright # container runningcharly service status hermes-playwright # all services RUNNINGcharly shell hermes-playwright -c "hermes --version"charly shell hermes-playwright -c "npx playwright --version"# Full browser launch test:charly shell hermes-playwright -c "NODE_PATH=~/.npm-global/lib/node_modules node -e \"const { chromium } = require('playwright');(async () => { const b = await chromium.launch({ headless: true }); const p = await b.newPage(); await p.goto('https://example.com'); console.log('Title:', await p.title()); await b.close(); console.log('OK');})();\""When to Use This Skill
Section titled “When to Use This Skill”MUST be invoked when the task involves the hermes-playwright box, Hermes Agent with browser automation, or deploying hermes with Playwright. Invoke this skill BEFORE reading source code or launching Explore agents.
Related
Section titled “Related”/charly-image:image— image family umbrella (candy:image entries — those carryingbase:/from:— incharly.yml, build/validate/inspect/list)/charly-build:build— the embedded build vocabulary (distros, builders, init-systems)