inspecting-hermes-desktop-dom

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

Updated Aug 19, 2026
One-click install
npx skills add https://github.com/swcstudiospace/aimeecodes --skill inspecting-hermes-desktop-dom-swcstudiospace
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: inspecting-hermes-desktop-dom
Source: https://github.com/swcstudiospace/aimeecodes/tree/main/.aimee/skills/inspecting-hermes-desktop-dom
Command: npx skills add https://github.com/swcstudiospace/aimeecodes --skill inspecting-hermes-desktop-dom-swcstudiospace

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When developing the Hermes desktop app, inferring UI behavior from .tsx source files leads to wrong guesses about which CSS rule actually won, whether an element rendered, or what a computed value really is. This Skill lets you read the live rendered DOM of the running app over the Chrome DevTools Protocol (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 console output. - Winning-rule diagnosis: Determine which CSS rule actually applied to a node, including inherited values and plugin stylesheet overrides (e.g. @tailwindcss/typography), 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 your own Electron instance with a separate HERMES_HOME, user-data-dir, and CDP port so you never disturb the user's running session. - Use Case: A style change "isn't applying" in the running app. You connect over CDP, read the node's computed font-weight and ancestor classes, discover a prose plugin rule is winning, and override it on the shared class instead of sweeping every call site. ## Quick Start Ask the agent to check the computed style of a specific element in the running Hermes desktop app, for example: "Check whether the composer element rendered and what its computed border radius is in the live desktop app."

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?▼

Electron dev-server runs expose a Chrome DevTools Protocol port, here on 127.0.0.1:9222. Verify it with curl to /json/version, then evaluate expressions against the renderer using the eval.mjs one-liner or the shared CDP client in scripts/perf/lib/cdp.mjs.

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

Read the actual node's computed style and ancestor classes over CDP instead of editing call sites. If the node carries no class of its own, the value is inherited, and a plugin stylesheet like @tailwindcss/typography's prose rules may be beating your utility class.

Why is the CDP port not open 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 with HERMES_DESKTOP_CDP_PORT or disabled with =off. Poll for a second or two after launch, since a fresh app needs time to bind.

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

Yes. Launch an isolated Electron instance with a separate --user-data-dir, a throwaway HERMES_HOME, and a different HERMES_DESKTOP_CDP_PORT. This dodges the single-instance lock and keeps the probe away from real sessions. Never kill or relaunch 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 whether something looks good. It is also not suited for perf profiling or heap analysis, and you should never dump the whole DOM via outerHTML.