Propose a change
Name Last commit message Last updated
screenshots Publish 1.0.0 23d ago
skills Publish 1.1.0 23d ago
install.sh Publish 1.0.0 23d ago
package.json Publish 1.2.0 23d ago
page.json Publish 1.2.0 23d ago
README.md Publish 1.1.0 23d ago
SKILL.md Publish 1.2.0 23d ago
uninstall.sh Publish 1.0.0 23d ago

Adom Desktop Control

A skill pack of tested patterns for driving an Adom user's real machine from the cloud AI through Adom Desktop: their logged-in Chrome/Edge, headless pup browsers, native app windows, the Hydrogen editor, sibling Claude tabs, plus a full screen-recording and video post-production pipeline.

Every skill here was distilled from a real session and labels what works, what fails, and why, so the next agent doesn't relearn it the hard way.

adompkg install adom/adom-desktop-control

Pick the right surface

You want to drive... Use Skill
The user's REAL logged-in Chrome/Edge nbrowser_* (extension, CDP) native-browser-control
A throwaway / clean-to-record browser browser_* (pup) pup-browser-control
A native app window (Fusion, dialogs) desktop_* (UIA + SendInput) desktop-ui-control
The Hydrogen editor / its Claude panel (mostly can't, read why) hydrogen-web-control
A sibling Claude tab depends where it runs claude-control
Capture the screen to video desktop_record_* + desktop_caption screen-recording
Cut raw clips into a finished demo ffmpeg + video-post video-post-production

The rules that apply everywhere

  • Background by default, never steal focus. CDP eval, UIA Invoke, and window screenshots all run on a background window. Only OS SendInput needs foreground, so avoid it when a CDP/UIA path exists.
  • Drive it yourself, including login. You can take the user's real browser through an OAuth sign-in end to end. Never ask them to click or log in.
  • Upload via DataTransfer, not the OS file picker. Inject the bytes, set the <input type=file>. Works in pup and nbrowser.
  • Recording captures whatever is topmost. Re-foreground the target before every visible step or you record the wrong window.
  • Verify by screenshot. OS input silently no-ops on many webview editors; confirm the text/state actually landed before building on it.

What's inside

  • native-browser-control - the user's real Chrome/Edge over CDP (incl. browser:"edge", DataTransfer uploads, driving OAuth login, the cross-origin / no-frame-targeting limits).
  • pup-browser-control - headless Puppeteer browsers for anonymous or clean-to-record work.
  • desktop-ui-control - native windows via UIA (find_control/ui_click) and SendInput (click/type/press_key), with screenshot-to-coordinate mapping.
  • hydrogen-web-control - what's reachable in the Hydrogen editor and why its embedded Claude input is not.
  • claude-control - when to delegate to a sibling Claude vs do it yourself.
  • screen-recording - WGC single-window capture (desktop_record_window_start): background, no picker, no banner, occlusion-safe, the right way to record a window (whole-desktop capture and its foreground theft is the wrong default).
  • video-post-production - crop, speed up, brand-font captions, Ken Burns on stills, TTS voiceover, concat, and wiki-ready keyframes.

Pairs with

adom-desktop (the app + relay), adom-browser-extension (native CDP), adom-tts (voiceover), demo-recording (the broader demo workflow).