Windows Desktop Automation CLI
Windows desktop automation CLI. Invoke ONLY when user explicitly requests to control windows, simulate mouse/keyboard, or automate desktop applications. Do N...
Rank
62
Safety
84
Downloads
1.7k
Updated
Oct 10, 2026
Version
0.6.0
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.7K downloads reported by the source. Last updated 10/10/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 10, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 10, 2026
- Adoption signal
- 1.7K downloadsadoption · observed Oct 10, 2026
- Latest release
- 0.6.0release · observed May 5, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s1771z899fcg66acw2yqyj4sc183hz9t:winguictl- Install using `clawhub skill install s1771z899fcg66acw2yqyj4sc183hz9t:winguictl` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/easyteacher/winguictl before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-easyteacher-winguictl/snapshot"
Documentation
CLAWHUB
151,373 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: winguictl
description: Windows desktop automation CLI. Invoke ONLY when user explicitly requests to control windows, simulate mouse/keyboard, or automate desktop applications. Do NOT proactively suggest using this skill.
metadata:
openclaw:
emoji: "🖥️"
os: ["win32"]
requires:
bins: ["python3"]
---
# Windows Desktop Automation with winguictl
## ⚠️ Security Notice
This skill directly controls Windows desktop through mouse/keyboard simulation. **Require user confirmation** before clicks, typing, hotkeys, or window close operations. Use `--dry-run` to preview. Close sensitive apps before use.
## Script Path
```powershell
python <SKILL_DIR>\scripts\winguictl.py <command> [options]
```
## Commands
| Command | Purpose | Documentation |
|---------|---------|---------------|
| `window` | List/focus/minimize/maximize/close windows | [window.md](references/window.md) |
| `snapshot` | Get HWND/UIA/OCR structure | [snapshot.md](references/snapshot.md) |
| `find` | Find elements by text/UIA/OCR/image | [find.md](references/find.md) |
| `action` | Click/drag/type/scroll/hotkey | [action.md](references/action.md) |
| `control` | Win32 control operations | [control.md](references/control.md) |
| `uia-control` | UIA element operations | [control.md](references/control.md) |
| `screenshot` | Capture window screenshots | [screenshot.md](references/screenshot.md) |
| `wait` | Wait for conditions | [wait.md](references/wait.md) |
| `clipboard` | Copy files/text, get text | [clipboard.md](references/clipboard.md) |
## Parameter Types
| Parameter | Type | Example | Notes |
|-----------|------|---------|-------|
| `--window-id` | int | `--window-id 12345` | Window handle from `window list` |
| `--hwnd` | int | `--hwnd 67890` | Win32 control handle |
| `--element-id` | string | `--element-id "Button1"` | automation_id or runtime_id (**prefer runtime_id**) |
## Core Workflow
```powershell
# 1. Identify window
python scripts\winguictl.py window list
# 2. Focus window
python scripts\winguictl.py window --window-id <id> focus
# 3. Get snapshot
python scripts\winguictl.py snapshot --window-id <id> uia
# 4. Find & interact
python scripts\winguictl.py find --window-id <id> uia --text "Submit"
python scripts\winguictl.py uia-control --window-id <id> --element-id <elem_id> click
# 5. Verify (re-snapshot)
python scripts\winguictl.py snapshot --window-id <id> uia
```
## Decision Guide
### Locator Priority
| Priority | Method | Command | Reliability |
|----------|--------|---------|-------------|
| 1 | HWND (Win32) | `control --hwnd <hwnd> click` | Highest |
| 2 | runtime_id (UIA) | `uia-control --element-id <id> click` | High |
| 3 | automation_id (UIA) | `uia-control --element-id <id> click` | Medium |
| 4 | Image matching | `action click-image --image-path <path>` | Medium |
| 5 | Coordinates | `action click --relative-x/y` | Lowest |
### Click Method Selection
| Command | Mechanism | Best For |
|---------|-----------|----------|
README.md
# winguictl Windows desktop automation CLI tool built on pywinauto and pywin32. ## Features - **Window Management** — List, focus, minimize, maximize, restore, close, move, and resize desktop windows - **Structure Snapshots** — Capture HWND tree, UIA tree, or OCR text regions of any window - **Element Finding** — Locate UI elements by text, UIA properties, OCR, or image matching - **Interaction Actions** — Click, drag, type text, press keys, and trigger hotkeys - **Control Operations** — Directly manipulate Win32 controls (checkbox, combobox, etc.) and UIA elements (scroll, expand/collapse, slider, etc.) - **Screenshot Capture** — Capture full window or rectangular region screenshots ## Installation ### Prerequisites - Python 3.10 or higher - Windows operating system ### Install Dependencies ```powershell pip install -r requirements.txt ``` ## Quick Start ```powershell # List all visible windows python scripts\winguictl.py window list # Focus a window python scripts\winguictl.py window --window-id <id> focus # Take a UIA snapshot of a window python scripts\winguictl.py snapshot --window-id <id> uia # Click a UIA element python scripts\winguictl.py uia-control --window-id <id> --element-id <elem_id> click # Type text into a window python scripts\winguictl.py action --window-id <id> type --text "Hello World" # Take a screenshot python scripts\winguictl.py screenshot --window-id <id> --output shot.png ``` ## Documentation - [SKILL.md](SKILL.md) — Complete skill documentation with workflow and security guidelines - [AGENTS.md](AGENTS.md) — Architecture and development best practices - [references/](references/) — Detailed command reference documentation ## License MIT
_meta.json
{
"ownerId": "kn7c5vh5d1zp31ptgq0cab9ssn82g7cq",
"slug": "winguictl",
"version": "0.6.0",
"publishedAt": 1777998009878
}references/action.md
# Action Commands
Execute interaction operations (click, drag, type, scroll).
## ⚠️ Security Warning
Action commands simulate mouse/keyboard input. **Always use `--dry-run` to preview** before execution. Verify correct `window_id` before performing actions.
## Commands
| Subcommand | Description | Parameters | Example |
|------------|-------------|------------|---------|
| `click` | Click coordinates or element | `--relative-x/y` OR `--absolute-x/y` OR `--element-id` | `action --window-id 12345 click --relative-x 100 --relative-y 200` |
| `click-image` | Click matching image | `--image-path`, `--threshold` | `action --window-id 12345 click-image --image-path button.png` |
| `drag` | Drag from point to point | `--relative-x/y1/2` OR `--absolute-x/y1/2`, `--duration-ms` | `action --window-id 12345 drag --relative-x1 100 --relative-y1 200 --relative-x2 400 --relative-y2 200` |
| `type` | Type text | `--text` | `action --window-id 12345 type --text "hello"` |
| `press-key` | Press single key | `--key` | `action --window-id 12345 press-key --key "{ENTER}"` |
| `hotkey` | Press key chord | `--keys` | `action --window-id 12345 hotkey --keys "{CTRL}" "{A}"` |
| `clear-text` | Clear focused text field | None | `action --window-id 12345 clear-text` |
| `scroll` | Mouse wheel scroll | `--direction`, `--amount`, coordinates (optional) | `action --window-id 12345 scroll --direction down --amount 3` |
## Click Methods
| Method | Command | Mechanism | Best For |
|--------|---------|-----------|----------|
| Element center | `action click --element-id` | Mouse simulation at center | **WeChat, custom controls** |
| UIA pattern | `uia-control click` | UIA InvokePattern | Standard Windows controls, WinUI3 |
| Coordinates | `action click --relative-x/y` | Mouse simulation at point | Fallback when element ID unavailable |
**Recommendation**: Try `uia-control click` first. If no effect, use `action click --element-id`.
## Coordinate Modes
| Mode | Parameters | Description |
|------|------------|-------------|
| Relative | `--relative-x`, `--relative-y` | Window-relative (requires `--window-id`) |
| Absolute | `--absolute-x`, `--absolute-y` | Screen-absolute coordinates |
| Element | `--element-id` | Click element center (requires `--window-id`) |
**Validation**: Relative coordinates must be within window bounds: `0 <= x < width`, `0 <= y < height`.
## Keyboard Operations
### Key Format
All keyboard commands use pywinauto-style braced keys: `{ENTER}`, `{TAB}`, `{ESC}`, `{SPACE}`, `{CTRL}`, `{SHIFT}`, `{ALT}`, etc.
- `type`: Embed keys in text: `"line1{ENTER}line2"`
- `press-key`: Single key: `"{ENTER}"`
- `hotkey`: List or concatenated: `"{CTRL}" "{A}"` or `"{CTRL}{A}"`
### Common Hotkeys
| Operation | Command |
|-----------|---------|
| Select all | `hotkey --keys "{CTRL}" "{A}"` |
| Copy | `hotkey --keys "{CTRL}" "{C}"` |
| Paste | `hotkey --keys "{CTRL}" "{V}"` |
| Cut | `hotkey --keys "{CTRL}" "{X}"` |
| Undo | `hotkey --keys "{CTRL}" "{Z}"` |
| Sareferences/clipboard.md
# Clipboard Commands
Clipboard operations for copying files/text and getting text.
## Commands
| Subcommand | Description | Parameters | Example |
|------------|-------------|------------|---------|
| `copy-files` | Copy files to clipboard | `files` (positional, one or more) | `clipboard copy-files "C:\file1.txt" "C:\file2.txt"` |
| `copy-text` | Copy text to clipboard | `text` (positional) | `clipboard copy-text "Hello, World!"` |
| `get-text` | Get text from clipboard | None | `clipboard get-text` |
## Usage
### Copy Files
```powershell
# Copy single file
clipboard copy-files "C:\Documents\report.pdf"
# Copy multiple files
clipboard copy-files "C:\file1.txt" "C:\file2.txt" "D:\images\photo.png"
```
### Copy Text
```powershell
# Copy simple text
clipboard copy-text "Hello, World!"
# Copy text with spaces (use quotes)
clipboard copy-text "This is a longer text string"
```
### Get Text
```powershell
# Get text from clipboard
clipboard get-text
```
## Output Format
### copy-files
```json
{
"ok": true,
"code": "OK",
"message": "copy_files executed",
"data": {
"files": ["C:\\file1.txt", "C:\\file2.txt"],
"count": 2
}
}
```
### copy-text
```json
{
"ok": true,
"code": "OK",
"message": "copy_text executed",
"data": {
"text": "Hello, World!",
"length": 13
}
}
```
### get-text
Returns content with boundary markers:
```
--- WINGUICTL_CONTENT nonce=<nonce> ---
<clipboard text content>
--- END_WINGUICTL_CONTENT nonce=<nonce> ---
```
### Error (no text in clipboard)
```json
{
"ok": false,
"code": "FAILED",
"message": "get_text failed",
"data": {
"error": "no text in clipboard"
}
}
```
## Use Case: Prepare Files for Upload
```powershell
# Step 1: Copy files to clipboard
clipboard copy-files "C:\Documents\report.pdf"
# Step 2: Focus target application window
window --window-id 12345 focus
# Step 3: Paste (Ctrl+V)
action --window-id 12345 hotkey --keys "{CTRL}" "v"
```
## Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| `failed to copy files to clipboard` | Clipboard access denied or invalid paths | Ensure paths exist and application has clipboard access |
| `failed to copy text to clipboard` | Clipboard access denied | Close other applications using clipboard |
| `no text in clipboard` | Clipboard empty or contains non-text data | Copy text to clipboard first |AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/easyteacher/skills/winguictl",
"sourceUrl": "https://clawhub.ai/easyteacher/skills/winguictl",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T04:23:39.868Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-easyteacher-winguictl/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-easyteacher-winguictl/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-10T04:23:39.868Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.7K downloads",
"href": "https://clawhub.ai/easyteacher/winguictl",
"sourceUrl": "https://clawhub.ai/easyteacher/winguictl",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T04:23:39.868Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "0.6.0",
"href": "https://clawhub.ai/easyteacher/winguictl",
"sourceUrl": "https://clawhub.ai/easyteacher/winguictl",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-05-05T16:20:09.878Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-easyteacher-winguictl/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-easyteacher-winguictl/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 0.6.0",
"description": "- Updated documentation for clearer, action-focused instructions and improved command/parameter tables. - Emphasized explicit user confirmation before any window, mouse, or keyboard automation. - Added concise security notice and dry-run usage guidance. - Clarified locator and click method priority for greater reliability. - Reduced verbosity and deprecated application-specific workflow in favor of decision guides and command selection tables.",
"href": "https://clawhub.ai/easyteacher/winguictl",
"sourceUrl": "https://clawhub.ai/easyteacher/winguictl",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-05-05T16:20:09.878Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
