pro-desktop-control
Skill6 starsChanged 32 days agoMITView on GitHub
Drive programs on this computer's screen that are not web pages or emulators: installer wizards, OS dialogs, desktop apps. Reads elements, presses without moving the mouse, asks before installs and sign-in approvals. Windows and macOS (incl. notifications).
In this repository17 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- pro-agent-testSkill
- pro-changelog-deploySkill
- pro-commitSkill
- pro-figmaSkill
- pro-githubSkill
- pro-init-worktreeSkill
- pro-launchSkill
- pro-oss-consultSkill
- pro-reportSkill
- pro-reviewSkill
- pro-skill-creatorSkill
- pro-sshSkill
- pro-testcaseSkill
- pro-ui-designSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 19
Call them as scripts, the same way pro-launch documents ({PYTHON} {SCRIPTS}/launch_cli.py desktop <action>, with the fixed entry point …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
pro-desktop-control — programs on this computer's screen
When to use
- "Press Next in the installer", "finish this setup wizard", "click OK in that dialog", "change this setting in the app" (Korean: '설치 프로그램 다음 눌러줘', '이 설치 마법사 끝까지 진행해줘', '저 대화상자 확인 눌러줘', '이 프로그램 설정 바꿔줘', '내 컴퓨터 화면 조작해줘', '오른쪽 위 알림 눌러줘', '애플 로그인 코드 읽어서 넣어줘')
- A web flow hands off to a downloaded program (a security module installer, a certificate tool) and the agent must continue there.
- macOS: a notification or system dialog must be answered — for example the Apple Account sign-in alert (Allow) and the code window that follows.
- Not for: pages inside a browser (
pro-launchweb), emulator or simulator screens (pro-launchapp), bug-hunting QA (pro-agent-test).
Reply to the user in their language (or the configured language preference).
This skill is the procedure. The commands are pro-launch's desktop group; their contract is in ../pro-launch/references/desktop.md.
Call them as scripts, the same way pro-launch documents ({PYTHON} {SCRIPTS}/launch_cli.py desktop <action>, with the fixed entry point
~/.projectops/bin/launch_cli.py when it exists).
Workflow
Phase 0 — Check and tell
desktop doctor. Ondesktop_deps_missing, ask the user, thendesktop setup. Onunsupported_on_platform, say that this computer's OS is not supported yet and stop. On macOSpermission_missing, relaygrant: the terminal app needs Accessibility and Screen Recording, then a restart of that app.desktop session start --purpose "<issue or task>". Relaytell_userto the user as is — they need to know the keyboard and mouse are in use and that moving the mouse pauses the work. Ondesktop_busy, another session holds them: tell the user and wait.
Phase 1 — Read, pick, press
desktop windows→ pick the window (--window "<part of the title>"). If the window in front is a browser, the page belongs toweb. macOS notifications and system dialogs areoverlaywindows: use--window overlay(see../pro-launch/references/desktop.md, section macOS).desktop find --window "<title>" --text "<button text>"→ pick areffromitems. Usetreeonly when you do not know the text.desktop click --ref N(ortype --ref N ...). Readtransportandscreen_changed:screen_changed: false→ nothing happened; pick another candidate.ref_stale→ the screen moved on;findagain.
- Long steps (an installer copying files):
desktop wait --text "<text of the next step>" --timeout 120. Do not loopshot. - Notification banners (macOS) vanish in about 5 seconds:
wait --window overlay --text "<text>"returns refs — click right away. Their hidden buttons are innamed_actions; press withclick --ref N --action "<name>".
Phase 2 — Approval gates (never skip)
| Result | Do |
mutating_blocked | Tell the user in one line what pressing it changes (installs X, agrees to terms, deletes, saves). Press with --confirm-mutating only after they say yes, for that one click |
needs_user · screen_locked · elevated_window | Relay ask_user. Wait until the user says it is done. Do not try to get around it |
user_interrupted | The user moved the mouse or typed. Stop. Ask whether to continue. desktop session resume only after a yes |
secret_requires_cred | The field is a password. Use a saved credential (--cred) or --text-env. Never ask the user to paste a password into the chat |
Terms and licence agreements: read the agreement's title to the user and let them decide. Do not accept on their behalf.
Sign-in approvals (Allow · Trust, in any UI language): approving lets someone into the user's account. Ask every time, naming the sign-in it belongs to
(the one this session just started, with the location the alert shows). Never approve a request this session did not cause.
"Trust this browser" is the user's choice. A wrong code entry invalidates the code — resend once, never loop (the account can be locked).
Full Apple Account recipe: ../pro-launch/references/desktop.md (section "Apple Account two-factor on this Mac").
Phase 3 — Finish and report
desktop session stop— always, also after a failure.- Report: what was pressed (names, not refs), what is now on screen, and anything left for the user (a restart, a prompt they must answer).
Attach a
desktop shotonly when the result is visual.
Common pitfalls (from real use)
- A dialog listed in
windowscan draw its content in another window or close when it loses focus (Windows "Open With"). Re-list windows rather than retrying the same ref. - An installer that asks for administrator rights shows a UAC prompt on the secure desktop. Nothing can read or press it —
needs_useris expected, not a bug. - "Don't save" is blocked because it contains "save". That is intended: it throws work away.
Customize
Your own language, tone and rules apply: see ../references/preferences.md. Read them once at the start: run the snippet in ../references/preferences.md with SKILL_ID=pro-desktop-control.
Keys for this skill: the common language, tone, rules only.
Preferences change presentation only; approval gates, secret protection and --dry-run stay in force.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

