Control Mouse & Keyboard (Single or Chained)
handy_actExecutes native mouse, keyboard, clipboard-paste, window-focus, and visual-wait steps in one chained call, enabling agents to automate desktop UI actions reliably.
Instructions
Execute native mouse, keyboard, clipboard-paste, window-focus, and smart visual-wait controls in real-time. Supports chaining multiple steps sequentially in one call — e.g. [{ "type": "focus_window", "title": "Code" }, { "type": "click", "x": 420, "y": 260 }, { "type": "paste", "text": "Hello!" }, { "type": "wait_for_settled" }]. Steps support coordinateSpace: "screen" | "normalized" | "window", and any pointer step accepts mark: N to target a detected UI element from the last handy_see({ marks: true }) instead of raw x/y. Set screenshotAfter: true to receive an updated coordinate-mapped screenshot with numbered action-trail markers, or verifyChange: true for a cheap did-anything-happen diff.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"actions": "<actions>"
},
"name": "handy_act"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| grid | No | ||
| marks | No | Run Set-of-Mark element detection on post-chain/mid-chain screenshots and return `elements` | |
| actions | Yes | Ordered array of steps (move, click, double_click, triple_click, right_click, drag, scroll, type, paste, key, focus_window, wait, wait_for_change, wait_for_settled, wait_for_color, screenshot) | |
| display | No | Target display index for normalized coordinates or screenshotAfter | |
| failsafe | No | Abort immediately if a human slams the cursor to the top-left (0,0) corner (default: true) | |
| maxMarks | No | Max marks when `marks` is true (default: 40) | |
| maxWidth | No | ||
| settleMs | No | Wait in ms before taking screenshotAfter (default: 50) | |
| showMouse | No | ||
| showTrail | No | Draw numbered amber markers (#1, #2, drag lines) on post-action screenshots (default: true) | |
| stepDelayMs | No | Settling delay in ms between steps so native UI focus updates reliably (default: 15) | |
| verifyChange | No | Capture before and after the chain and report `change`/`changed` so you learn whether anything visually moved without requesting an image (default: false) | |
| highlightDiff | No | Outline changed pixels since the previous capture on post-action screenshots (default: false) | |
| screenshotAfter | No | Capture and return an annotated screen image after the chain completes (default: false) |