Use this plugin when the task involves native Windows desktop apps or browser surfaces that do not have a stronger structured integration available.
Operating modes
Pick one of these modes before taking action:
UIA-first mode: preferred for native Windows apps with accessible controls.
Visible-display mode: for quick manual-adjacent automation on the user’s active screen.
Isolated-display mode: for non-interrupting automation on a secondary or virtual display that Windows exposes.
Coordinate-fallback mode: for canvas apps, remote surfaces, or controls that UI Automation cannot reach reliably.
Decision rules
Prefer structured browser automation for websites when a browser tool or MCP server already exists.
Prefer uia_inspect and uia_invoke for native Windows controls before coordinate clicks.
Prefer list_displays and display-aware screenshots before assuming the primary screen is the correct target.
Prefer move_window to place apps on a non-user display before interacting when isolation matters.
Use screenshots to verify state before and after mutating actions.
Ask for human confirmation before destructive actions such as deleting data, closing unsaved work, submitting forms, or sending messages.
Mode patterns
UIA-first mode
Call list_windows and focus_window to target the correct app.
Call uia_inspect to find stable selectors.
Use uia_invoke, type_text, or press_keys.
Capture a screenshot after important mutations.
Isolated-display mode
Call list_displays and choose the non-user display by displayId or displayName.
Launch or find the app with launch_app or list_windows.
Call move_window to place the window on that display. Use fitToDisplay: true when full-display placement is better than a preserved window size.
Use screenshot against that display, then prefer uia_* actions.
If coordinate fallback is required, pass displayRelative: true so coordinates stay local to the isolated display.
Coordinate-fallback mode
Capture a display-specific screenshot.
Use click, double_click, drag, or scroll with displayRelative: true when you are targeting a specific monitor.
Re-capture a screenshot after each mutation that could change layout or focus.
Desktop-overview mode
Use screenshot with virtualScreen: true to inspect the full multi-monitor layout.
Use list_displays to resolve the right target display before moving windows or clicking.
Guardrails
launch_app is allowlisted by default. Expand the allowlist intentionally instead of disabling it.
For risky key chords, pass confirm: true only after the user has explicitly approved the action.
Treat browser work inside Edge, Chrome, or Electron as browser automation first unless the task specifically needs full-desktop interaction.
Treat “hidden display” as a Windows-visible secondary or virtual monitor. If Windows does not expose the target as a display, this plugin cannot safely target it as one.
1---2name: windows-desktop-control3description: Windows Desktop Control4---5# Windows Desktop Control67Use this plugin when the task involves native Windows desktop apps or browser surfaces that do not have a stronger structured integration available.89## Operating modes1011Pick one of these modes before taking action:12131. UIA-first mode: preferred for native Windows apps with accessible controls.142. Visible-display mode: for quick manual-adjacent automation on the user’s active screen.153. Isolated-display mode: for non-interrupting automation on a secondary or virtual display that Windows exposes.164. Coordinate-fallback mode: for canvas apps, remote surfaces, or controls that UI Automation cannot reach reliably.1718## Decision rules1920- Prefer structured browser automation for websites when a browser tool or MCP server already exists.21- Prefer `uia_inspect` and `uia_invoke` for native Windows controls before coordinate clicks.22- Prefer `list_displays` and display-aware screenshots before assuming the primary screen is the correct target.23- Prefer `move_window` to place apps on a non-user display before interacting when isolation matters.24- Use screenshots to verify state before and after mutating actions.25- Ask for human confirmation before destructive actions such as deleting data, closing unsaved work, submitting forms, or sending messages.2627## Mode patterns2829### UIA-first mode30311. Call `list_windows` and `focus_window` to target the correct app.322. Call `uia_inspect` to find stable selectors.333. Use `uia_invoke`, `type_text`, or `press_keys`.344. Capture a `screenshot` after important mutations.3536### Isolated-display mode37381. Call `list_displays` and choose the non-user display by `displayId` or `displayName`.392. Launch or find the app with `launch_app` or `list_windows`.403. Call `move_window` to place the window on that display. Use `fitToDisplay: true` when full-display placement is better than a preserved window size.414. Use `screenshot` against that display, then prefer `uia_*` actions.425. If coordinate fallback is required, pass `displayRelative: true` so coordinates stay local to the isolated display.4344### Coordinate-fallback mode45461. Capture a display-specific `screenshot`.472. Use `click`, `double_click`, `drag`, or `scroll` with `displayRelative: true` when you are targeting a specific monitor.483. Re-capture a `screenshot` after each mutation that could change layout or focus.4950### Desktop-overview mode51521. Use `screenshot` with `virtualScreen: true` to inspect the full multi-monitor layout.532. Use `list_displays` to resolve the right target display before moving windows or clicking.5455## Guardrails5657- `launch_app` is allowlisted by default. Expand the allowlist intentionally instead of disabling it.58- For risky key chords, pass `confirm: true` only after the user has explicitly approved the action.59- Treat browser work inside Edge, Chrome, or Electron as browser automation first unless the task specifically needs full-desktop interaction.60- Treat “hidden display” as a Windows-visible secondary or virtual monitor. If Windows does not expose the target as a display, this plugin cannot safely target it as one.
Run npx skillmds@latest add virtengine/windows-desktop-control in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Windows Desktop Control It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. Capability flags: docs only. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
virtengine (@virtengine) published this skill. Their other Agent Skills are listed on their SkillMD profile.