inspecting-hermes-desktop-dom

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

115|9|Updated Aug 5, 2026
One-click install
npx skills add https://github.com/AtlasOmnia/donna-starter --skill inspecting-hermes-desktop-dom-atlasomnia
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: inspecting-hermes-desktop-dom
Source: https://github.com/AtlasOmnia/donna-starter/tree/main/skills/software-development/inspecting-hermes-desktop-dom
Command: npx skills add https://github.com/AtlasOmnia/donna-starter --skill inspecting-hermes-desktop-dom-atlasomnia

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When developing the Hermes desktop app, inferring rendered UI behavior from .tsx source files leads to wrong guesses about which CSS rule won, whether an element rendered, or what a computed value actually is. This Skill reads the live rendered DOM of the running Electron window over CDP so you answer factual UI questions directly instead of editing call sites blindly. ## Core Features & Use Cases - Live DOM and computed style reading: Connect to the dev server's CDP port on 127.0.0.1:9222 and evaluate expressions against the real renderer to get computed styles, geometry, and class inheritance. - Winning-rule diagnosis: Determine which CSS rule actually applied to a node, including inherited values and plugin stylesheet overrides, before changing any code. - Stable selector hooks: Use the shared SELECTORS data-slot map in scripts/perf/lib/cdp.mjs instead of inventing fragile querySelector strings. - Isolated probe instances: Launch a separate Electron instance with its own HERMES_HOME, user-data-dir, and CDP port so you never disturb the user's running session. - Use Case: A style change is not applying to assistant message links. Evaluate the real node, discover the font-weight is inherited from a typography plugin rule, and override the shared class instead of sweeping every call site. ## Quick Start Ask the agent to check the computed style of an element in the running Hermes desktop app, for example: read the computed padding of the composer input in the live desktop window over CDP.

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 live DOM of an 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 target. The eval.mjs script handles one-liners, while the shared CDP client supports multi-step, promise-aware evaluation.

How do I find which CSS rule is styling an element?

Query the real node in the live DOM and read its computed style plus its ancestor chain. If the node carries no class of its own, the value is inherited, so you must override the ancestor or shared class rather than editing each call site.

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. It can also be moved or disabled via HERMES_DESKTOP_CDP_PORT. Check with curl against /json/version before assuming a port exists.

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

Yes. Launch an isolated Electron instance with a separate HERMES_HOME, a distinct --user-data-dir, and a different CDP port. This avoids the single-instance lock and keeps the probe away from real sessions; never relaunch or kill the user's app.

What are the limitations of CDP-based DOM inspection?

CDP answers factual questions like computed values and selector matches, but cannot judge aesthetics such as color balance or spacing feel. It is also unsuited for performance profiling or heap analysis, which belong to dedicated debugging tools.