agent-desktop-windows
GitHub提供 agent-desktop CLI 在 Windows 平台的自动化指南,涵盖命令支持情况、PowerShell 引用注意事项及 UIA 交互故障排查。
Trigger Scenarios
Install
npx skills add NanmiCoder/cc-haha --skill agent-desktop-windows -g -y
SKILL.md
Frontmatter
{
"name": "agent-desktop-windows",
"tags": "windows-automation, accessibility, uia, ai-agent, gui-automation, cli",
"description": "Windows platform guide for the agent-desktop CLI. Lists per command group what works on Windows and what refuses, the first-contact gotchas (PowerShell ref quoting, minimized windows, headed-only input), and where to find shell surfaces, notifications, the cursor overlay, UIPI elevation, Chromium\/Electron settle behavior and troubleshooting. Triggers on: \"windows desktop automation\", \"UIA tree\", \"automate Windows app\", \"agent-desktop on Windows\", \"elevated window input blocked\", \"E_ACCESSDENIED\", or any Windows GUI interaction task.",
"requirements": [
"agent-desktop"
]
}
agent-desktop-windows
The observe-act loop, ref system, JSON envelope, sessions and tracing are the same on every platform. This file covers only what differs on Windows.
Requires Windows 10 1809+ / Windows Server 2019+ (x64 or ARM64). Run it in the interactive desktop session of the signed-in user. Session 0 (services and SYSTEM tasks), Server Core, the secure desktop (UAC prompts, the sign-in screen), a locked desktop and another user's session are not supported: observation, actions and capture there fail or return nothing.
Capability Table
| Group | Commands | Status on Windows |
|---|---|---|
| Observation | snapshot, find, get, is, screenshot |
Works. Surfaces are window, focused, a Chromium modal as sheet, and an open application menu as menu |
| Surfaces | list-surfaces |
Works. Lists window, focused and sheet per process, plus menu with item_count while a menu is open |
| Shell surfaces | open-system-surface |
Works for start-menu, taskbar, system-tray, system-tray-overflow and action-center, and returns the window snapshot --surface <kind> reads. quick-settings returns PLATFORM_NOT_SUPPORTED naming action-center |
| Ref interaction | click, right-click, type, set-value, clear, select, toggle, check, uncheck, expand, collapse, scroll, scroll-to |
Works, semantic in headless and --headed mode. right-click and type need --headed and return POLICY_DENIED headless |
| Multi-click and focus | double-click, triple-click, focus |
Works with global --headed only |
| Keyboard and mouse | press, hover, drag, mouse-click, mouse-move, mouse-wheel |
Works. Cursor-moving input needs --headed. First Contact covers press --app |
| Held input | key-down, key-up, mouse-down, mouse-up |
Fails closed on every platform with ACTION_NOT_SUPPORTED. A headless mouse-down or mouse-up returns POLICY_DENIED first |
| App and window | launch, close-app, list-windows, list-apps, focus-window, resize-window, move-window, minimize, maximize, restore |
Works. First Contact covers the name launch takes |
| Displays | list-displays |
Works |
| Clipboard | clipboard-get, clipboard-set, clipboard-clear |
Works; typed text and image content |
| Wait | wait |
Works for ms, --element, --window, --text, --menu, --menu-closed, --event and --notification |
| Notifications | list-notifications, dismiss-notification, dismiss-all-notifications, notification-action |
Works over the Action Center. Pass --headed when the center is closed |
| Cursor overlay | cursor-overlay |
Works. enable returns data.rendered: true only after the renderer acknowledges over its pipe. See references/shell-and-overlay.md |
| System | status, permissions, version, batch, skills, session, trace |
Works |
First Contact
- Quote every ref in PowerShell. PowerShell reads a bare
@tokenas its splatting operator and deletes the argument before the binary sees it, soset-value @s8f3k2p9:e1 hifailsINVALID_ARGS. Writeset-value '@s8f3k2p9:e1' hi. cmd.exe and bash need no quoting. - A window behind another window is drivable. A minimized one is not.
Every element of a minimized window reports
offscreenand ref actions fail. Runrestore --app <image>and snapshot again. Do not usefocus-windowby reflex: it steals the user's foreground. - No permission dialog exists.
permissionsreportsautomationasnot_required. Elevation boundaries are the only access control. - Chromium and Electron apps read thin before they settle. Pass a longer
--timeout-mstosnapshotinstead of concluding the tree is empty. - Blocked shortcuts.
alt+f4,win+l,win+d,alt+tab,win+r,win+x,win+e,ctrl+shift+escand their modifier supersets are refused without--force. In combos,cmdandmetaare the Windows key, someta+cis a shell shortcut. Writectrl+cto copy. typeneeds--headed. It is keystroke synthesis throughSendInput, so a strict-headlesstypereturnsPOLICY_DENIED. Useset-value, or pass--headed. It endsdelivered_unverified(verification_scope: "unavailable") when the field exposes no readable Text selection, and can verify when one is readable: confirm with a freshget.press --appwrites to the foreground queue with no per-process targeting. A headless press to a non-frontmost app fails closed. A non-interactive caller (service, scheduled task, CI job) getsdelivered_unverified.launchtakes an absolute path or a bare name under System32 or the Windows directory, with or without.exe(notepadornotepad.exe), not a display name. Uselist-appsto find a running app.- Notifications:
list-notificationswith the Action Center closed needs--headed. Single-itemdismiss-notificationandnotification-actionneed--headedand--expected-appor--expected-titlefor the entry at INDEX. - Surfaces: an open or context menu is the
menusurface. Windows does not advertise amenubarsurface. - Commands that raise shell chrome take the foreground. Strict headless
refuses them with
POLICY_DENIEDbefore anything is raised. - Stateful actions run once, then verify by re-reading.
delivered_verifiedmeans the readback matched.ACTION_FAILEDwithdetails.kind: "post_action_verification"means the action landed but the readback differs: readdetails.post_stateand do not retry. Aset-valuethe app reformats reads as failed. Seereferences/troubleshooting.md. - Unsigned binary warnings are expected. See
references/troubleshooting.md.
What differs on Windows
- Ref actions are semantic UI Automation calls in headless and
--headedmode, exceptright-click,double-click,triple-click,typeandfocus, which are physical or take focus and need--headed. - The cursor overlay plays its per-action travel only for headless semantic actions. A
--headedaction moves the real cursor instead.
References
references/shell-and-overlay.md: open it foropen-system-surface, tray and taskbar surfaces, notifications, the cursor overlay, hosted (UWP) window identity and menu detection coverage.references/permissions-and-elevation.md: integrity levels, UIPI, blocked combos, protected processes, the cross-process interaction lease.references/chromium-and-electron.md: settle timing, covered-window hazard, WPF wrong-provider trap, unnamed web content.references/troubleshooting.md: symptom-to-cause map, action verification outcomes, saving a document headless, install warnings.
Read any file from the binary:
agent-desktop skills get agent-desktop-windows references/troubleshooting.md.
Version History
- 49fb95f Current 2026-11-03 01:26


