inspecting-hermes-desktop-dom

Inspect the live Hermes desktop DOM and computed CSS over Chrome DevTools Protocol.

Updated Aug 21, 2026
One-click install
npx skills add https://github.com/TylerSimons1127/vibe --skill inspecting-hermes-desktop-dom-tylersimons1127
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: inspecting-hermes-desktop-dom
Source: https://github.com/TylerSimons1127/vibe/tree/main/skills/software-development/inspecting-hermes-desktop-dom
Command: npx skills add https://github.com/TylerSimons1127/vibe --skill inspecting-hermes-desktop-dom-tylersimons1127

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When developing the Hermes desktop app, inferring rendered UI state from .tsx source files leads to wrong conclusions. This Skill reads the live rendered DOM of the running Electron window — computed styles, geometry, winning CSS rules, and console output — over the Chrome DevTools Protocol port exposed on 127.0.0.1:9222. ## Core Features & Use Cases - Live DOM Reading: Evaluate JavaScript against the running renderer via scripts/eval.mjs or the shared CDP client with target discovery and promise-aware eval. - CSS Rule Resolution: Determine which selector actually won for a node, including inherited values and plugin stylesheet overrides like @tailwindcss/typography. - Isolated Probe Instances: Launch a separate Electron instance with its own HERMES_HOME, user-data-dir, and CDP port so the user's session is never disturbed. - Use Case: A style change is not applying in the running app. Instead of editing every call site, query the real node to see its classes, computed font-weight, and ancestor chain, then fix the actual winning rule. ## Quick Start Ask the agent to check the computed style of a component in the running Hermes desktop app using the CDP port on 127.0.0.1:9222.

Frequently Asked Questions about inspecting-hermes-desktop-dom

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I inspect the DOM of a running Electron app?▼

Connect to the Chrome DevTools Protocol port the dev server opens on 127.0.0.1:9222, then evaluate JavaScript against the renderer page. In this repo, run node scripts/eval.mjs with your expression from apps/desktop, or use the shared CDP client for multi-step queries.

How do I find which CSS rule is overriding my style?▼

Query the real rendered node over CDP and read its className, getComputedStyle value, and ancestor class chain. If the node carries no class of its own, the value is inherited, so fix the ancestor or shared-class rule rather than sweeping call sites.

Why is the CDP port not responding on 127.0.0.1:9222?▼

The port is closed for packaged builds and for unpackaged runs without HERMES_DESKTOP_DEV_SERVER. Check with curl against /json/version first, and never relaunch the user's app — start an isolated instance with HERMES_DESKTOP_CDP_PORT set to a different port instead.

Can I inspect the app without disturbing the user's session?▼

Yes. Launch your own Electron instance with a throwaway HERMES_HOME, a separate --user-data-dir to dodge the single-instance lock, and a non-default CDP port such as 9333. The renderer still mounts and the DOM stays readable even without a backend.

What are the limitations of CDP-based DOM inspection?▼

CDP answers factual questions like computed padding or whether an element rendered, but cannot judge aesthetics such as color balance or spacing feel. It also does not cover perf profiling or heap work, which belong to dedicated debugging skills.