Download

name: hd-pup description: > PUP — what "pup" means in Hydrogen Desktop and exactly how to open one. When the user says "show me in pup", "open it in pup", "pup window", "in pup", or asks to demo/drive ANY page "in pup", it means a real, AI-drivable Chrome/Edge window opened by Adom Desktop's Puppeteer bridge (auto-installed with HD) on THIS machine — never a webview (see hd-webview), never the user's personal signed-in browser (that's nbrowser). CRITICAL HD DIFFERENCE: in HD, localhost URLs are the NORM for pup (everything binds localhost on the same machine) — the cloud-container rule "pup can't see localhost" is INVERTED here. Trigger words — pup, open in pup, show me in pup, in pup, pup window, puppeteer, pup browser, drive a browser, show the page in pup.

hd-pup — "pup" is a real drivable browser window on this machine

pup = Adom Desktop's Puppeteer bridge driving a fresh, isolated Chrome (or Edge) process. HD embeds Adom Desktop and auto-installs the bridge, so pup is always available — no setup questions, just check readiness and go.

⚠️ THE LOCALHOST RULE IS INVERTED IN HD (do not import cloud instincts)

  • Web Hydrogen (cloud container): pup runs on the user's desktop, so the container's localhost is unreachable — the bridge sanity-checks localhost URLs because they're almost always a mistake, and pages get slug/proxy URLs (vscode_proxy_uri style) instead.
  • Hydrogen Desktop (here): the workspace, HD, and pup all live on the SAME machine. ~95% of pup URLs are http://localhost:<port> and that is CORRECT. Never rewrite a localhost URL to a slug/proxy URL, and never refuse it — HD binds its web servers to localhost by design.

✅ How to open a page in pup (from the workspace)

adom-desktop browser_readiness '{}'          # is the bridge ready? which browser?
adom-desktop browser_open_window '{"url":"http://localhost:<port>/...","sessionId":"<task-name>"}'
adom-desktop browser_screenshot '{"sessionId":"<task-name>"}'   # verify what's on screen
  • Reuse ONE window per task via a stable sessionId — open tabs in it rather than spawning window after window.
  • pup opens in the background by default; pass foreground:true only when the user should see it appear right now.
  • Verify by screenshot, not by assumption: if browser_screenshot doesn't show your page, it isn't open.

⛔ Never confuse the three browser surfaces

Ask Surface Skill
"show me in webview" native Hydrogen webview tab hd-webview
"show me in pup" / drive it isolated Puppeteer Chrome (this skill) pup for deep driving
use my logins / my real browser user's signed-in Chrome/Edge nbrowser / adom-browser-extension

For deep pup driving (tabs, sessions, recording, eval), the full pup skill applies — this skill exists so the word "pup" always routes correctly in HD.