agent-desktop-windows
Skill1.8k starsChanged 7 days agoApache-2.0View on GitHub
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.
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are 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.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 55
Every element of a minimized window reports offscreen and ref actions fail.
- Very specific: line 109
Read any file from the binary: agent-desktop skills get agent-desktop-windows references/troubleshooting.md.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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
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.
Trending
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about lahfir/agent-desktop
- A Hacker News story“Show HN: Agent-desktop – Native desktop automation CLI for AI agents”Hacker News · May 2, 2026 · 99 points
- A Hacker News story“Show HN: I spent 3 months making desktop automation stop lying to AI agents”Hacker News · Aug 15, 2026 · 6 points
- @camilleroux.com“Fini les screenshots pour piloter le bureau — agent-desktop expose les arbres d'accessibilité OS en JSON …”Bluesky · May 21, 2026 · 4 likes
- A Hacker News story“I might have solved computer use”Hacker News · Aug 14, 2026 · 2 points
- @hackernewsbot.bsky.social“I built the Playwright for desktop apps. 80% token savings | Discussion”Bluesky · May 2, 2026 · 2 likes
The biggest 5 of 35 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 35
Talked about on GitHub, Hacker News and Bluesky (35 times).
On GitHub · 29
- Jun 11, 2026feat(agent-desktop): add agent-desktop — mvanhorn/printing-press-library1 reaction · 2 comments
- Oct 28, 2026agent-skills.github.lahfir.agent-desktop: 0.11.1 → 1.0.1 — sudosubin/agents.nix0 reactions
- Oct 27, 2026[Request]: agent-desktop — ScoopInstaller/Main0 reactions
- Oct 26, 2026[Candidate] lahfir/agent-desktop/skills/agent-desktop-macos - agent-desktop-macos — ProSkillsMD/proskills0 reactions · 1 comment
- Oct 25, 2026agent-skills.github.lahfir.agent-desktop: 0.11.0 → 0.11.1 — sudosubin/agents.nix0 reactions
24 more on GitHub
- Oct 25, 2026agent-skills.github.lahfir.agent-desktop: 0.10.1 → 0.11.0 — sudosubin/agents.nix0 reactions
- Oct 19, 2026[사례] 데스크톱 조작: Agent Desktop · typesafe-computer-use — tourbut/decision-lib0 reactions · 1 comment
- Oct 18, 2026Add agent-desktop (lahfir/agent-desktop) — reacher-z/Awesome-CUA0 reactions
- Oct 18, 2026agent-skills.github.lahfir.agent-desktop: 0.9.4 → 0.10.1 — sudosubin/agents.nix0 reactions
- Sep 29, 2026agent-skills.github.lahfir.agent-desktop: init at 0.9.4 — sudosubin/agents.nix0 reactions
- Sep 22, 2026feat(omp): add opt-in Jev-guided compaction and vendored jev-review setup — danielkuykendall23-boop/firstmate0 reactions
- Aug 15, 2026[News Bot] 6 article(s) need review — chobrien99-svg/AMI-Labs0 reactions
- Jul 1, 2026deps: bump the bun-dependencies group across 1 directory with 20 updates — AmeerJ97/grok-cli-vertex0 reactions · 1 comment
- Jun 24, 2026deps: bump the bun-dependencies group across 1 directory with 18 updates — AmeerJ97/grok-cli-vertex0 reactions · 1 comment
- Jun 17, 2026deps: bump the bun-dependencies group across 1 directory with 20 updates — AmeerJ97/grok-cli-vertex0 reactions · 1 comment
- Jun 10, 2026deps: bump the bun-dependencies group across 1 directory with 18 updates — AmeerJ97/grok-cli-vertex0 reactions · 1 comment
- Jun 4, 2026deps: bump the bun-dependencies group across 1 directory with 15 updates — AmeerJ97/grok-cli-vertex0 reactions · 1 comment
- May 27, 2026deps: bump the bun-dependencies group with 8 updates — AmeerJ97/grok-cli-vertex0 reactions · 1 comment
- May 26, 2026Add SKILL.md for agent-desktop automation — Cogni-AI-OU/cogni-ai-agentic-collections0 reactions · 5 comments
- May 22, 2026deps: bump the bun-dependencies group across 1 directory with 8 updates — AmeerJ97/grok-cli-vertex0 reactions
- May 20, 2026Bump the bun-dependencies group with 6 updates — AmeerJ97/grok-cli-vertex0 reactions · 1 comment
- May 20, 2026Bump the bun-dependencies group with 22 updates — AmeerJ97/grok-cli-vertex0 reactions
- May 8, 2026Add a Pi skill for agent-desktop usage — amfaro/duckdb-idea-plugin0 reactions
- May 4, 2026🔍 Weekly Discovery: 50 new tools found (2026-05-04) — heylabs-co/dev-tools-portal0 reactions
- May 3, 2026[claude-hackernews] Reply draft: agent-desktop Show HN, snapshot-allowlist guardrail (id=47982708) — FailproofAI/claude-hackernews0 reactions · 1 comment
- May 2, 2026📱 SNS 콘텐츠 - 2026-05-02 14:38 KST — leaf468/autothreads0 reactions
- May 2, 2026🤖 AI 트렌드 리포트 - 2026-05-02 14:38 KST — leaf468/autothreads0 reactions
- Apr 27, 2026Work in parallel with human — vercel-labs/agent-desktop0 reactions · 3 comments
- Apr 25, 2026chore(stats): replace self-hosted chart with star-history.com embed — vercel-labs/agent-desktop0 reactions
On Hacker News · 3
- May 2, 2026Show HN: Agent-desktop – Native desktop automation CLI for AI agents99 points · 44 comments
- Aug 15, 2026Show HN: I spent 3 months making desktop automation stop lying to AI agents6 points
- Aug 14, 2026I might have solved computer use2 points · 1 comment
On Bluesky · 3
- May 21, 2026Fini les screenshots pour piloter le bureau — agent-desktop expose les arbres d'accessibilité OS en JSON avec des refs déterministes. Un… — @camilleroux.com4 likes and reposts · 3 replies
- May 2, 2026I built the Playwright for desktop apps. 80% token savings | Discussion — @hackernewsbot.bsky.socialsays it tested it2 likes and reposts
- May 2, 2026📰 I built Playwright for desktop apps, achieving 80% token savings in development time and cost efficiency. 🔗… — @sagalinked.bsky.socialsays it tested it1 likes and repost
In this repository6 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- agent-desktop-ffiSkill
- agent-desktop-linuxSkill
- agent-desktop-macosSkill
- agent-desktopSkill
- jev-desktopSkill
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.

