skill
Adom Desktop Control
Public Made by Adomby adom
Drive the user's real desktop from the cloud: their Chrome/Edge, headless pup, native UI, the Hydrogen editor, sibling Claude tabs, plus screen recording and video post.
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).
# 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.
```bash
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](https://wiki.adom.inc/adom/adom-desktop) (the app + relay),
[adom-browser-extension](https://wiki.adom.inc/adom/adom-browser-extension) (native CDP),
[adom-tts](https://wiki.adom.inc/adom/adom-tts) (voiceover),
[demo-recording](https://wiki.adom.inc/adom/demo-recording) (the broader demo workflow).