agent-desktop-ffi
C-ABI bindings over agent-desktop's PlatformAdapter. Consumers (Python ctypes, Swift, Node ffi-napi, Go cgo, C++, Ruby fiddle)…
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
Claude Code
$ npx -y skills add NanmiCoder/cc-haha --skill agent-desktop-windows --agent claude-code
Codex
$ npx skills add NanmiCoder/cc-haha --skill agent-desktop-windows -a codex -y
Cursor
$ npx skills add NanmiCoder/cc-haha --skill agent-desktop-windows -a cursor -y
Gemini CLI
$ npx skills add NanmiCoder/cc-haha --skill agent-desktop-windows -a gemini-cli -y
GitHub Copilot
$ npx skills add NanmiCoder/cc-haha --skill agent-desktop-windows -a github-copilot -y
OpenCode
$ npx skills add NanmiCoder/cc-haha --skill agent-desktop-windows -a opencode -y
Windsurf
$ npx skills add NanmiCoder/cc-haha --skill agent-desktop-windows -a windsurf -y
name: agent-desktop-windows tags: windows-automation, accessibility, uia, ai-agent, gui-automation, cli requirements: - agent-desktop 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.
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.
| 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 |
splatting operator and deletes the argument before the binary sees it, so `set-value @s8f3k2p9:e1 hi` fails `INVALID_ARGS`. Write `set-value '@s8f3k2p9:e1' hi`. cmd.exe and bash need no quoting.
Every element of a minimized window reports `offscreen` and ref actions fail. Run `restore --app <image>` and snapshot again. Do not use `focus-window` by reflex: it steals the user's foreground.
`not_required`. Elevation boundaries are the only access control.
`--timeout-ms` to `snapshot` instead of concluding the tree is empty.
`win+x`, `win+e`, `ctrl+shift+esc` and their modifier supersets are refused without `--force`. In combos, `cmd` and `meta` are the Windows key, so `meta+c` is a shell shortcut. Write `ctrl+c` to copy.
so a strict-headless `type` returns `POLICY_DENIED`. Use `set-value`, or pass `--headed`. It ends `delivered_unverified` (`verification_scope: "unavailable"`) when the field exposes no readable Text selection, and can verify when one is readable: confirm with a fresh `get`.
targeting. A headless press to a non-frontmost app fails closed. A non-interactive caller (service, scheduled task, CI job) gets `delivered_unverified`.
Windows directory, with or without `.exe` (`notepad` or `notepad.exe`), not a display name. Use `list-apps` to find a running app.
`--headed`. Single-item `dismiss-notification` and `notification-action` need `--headed` and `--expected-app` or `--expected-title` for the entry at INDEX.
not advertise a `menubar` surface.
cc-haha 是一个桌面端 Claude Code 工作台:多会话与全局搜索、分支 / Worktree 启动、Diff 审阅、内置浏览器预览、图形化权限审批、模型自选(Claude / ChatGPT / Grok / 预设 / 本地端点)、图片生成、MCP 与 SubAgent 可视化管理、Agent Teams 协作工作台、动态 Workflow 编排、模型请求追踪、Computer Use、技能市场、多主题、桌面宠物、手机 App 与 H5 远程访问、IM 接入和定时任务,集中在一个 macOS /
C-ABI bindings over agent-desktop's PlatformAdapter. Consumers (Python ctypes, Swift, Node ffi-napi, Go cgo, C++, Ruby fiddle)…
Linux platform guide for the agent-desktop CLI. Lists per command group what works on X11 and on Wayland, how to check the AT-SPI…
macOS platform guide for the agent-desktop CLI. Use for desktop automation on macOS: granting Accessibility and Screen Recording…
Operate desktop applications on macOS, Windows and Linux through native accessibility trees, using the agent-desktop CLI. Use…
Drive a desktop application from one plain-language goal, or resolve one intent at a time, without ever reading the accessibility…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.