# Windows Computer Use

> Use when controlling this Windows desktop — capturing the screen or a specific window, clicking/typing/sending keyboard shortcuts, recording video of motion, or play-testing a game or app. Covers the screenshot, act, record, play, window, process, and system MCP tools.

- Skill: `sshh12/windows-computer-use` (Agent Skill)
- Install (CLI): `npx skillmds@latest add sshh12/windows-computer-use`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sshh12/windows-computer-use/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: sshh12 (https://skillmd.com/u/sshh12)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/sshh12/windows-computer-use

---


# Windows computer use

Drive the local Windows desktop through the `windows-computer-use` MCP tools. The server runs on
this machine and controls the real displays, mouse, and keyboard.

## Tools

- **screenshot** — see the screen: `desktop`, `display:N`/`display:primary|left|right`, a window
  (`window:<title>`, even if it is behind others), `foreground`, or a `region`. Returns a
  downscaled image + a `capture_id`.
- **act** — input, batched: `left_click`, `type`, `key`, `scroll`, `drag`, `hold_key`, `paste`,
  `click_element`, `mouse_move_relative`, … Coordinates are in the last screenshot's image space.
- **record** — record N seconds → one timestamped frame montage + an mp4 (judge motion/animation).
- **play** — run a timed input script at a cadence while recording (games): `hold w 2`, `look 200 0`,
  `tap space`, `probe`/`until` for telemetry-driven early stop.
- **window** — find / focus / close / `get_text` (read via UI Automation, no screenshot) /
  `click_element` (click a control by accessible name) — all token-cheap, no image. Use `close` to
  close UWP/Store apps (their window PID isn't the killable process).
- **process** — `launch` (incl. `shell:true` for URLs / `ms-settings:` / Store apps), `kill`, `wait`,
  `shell`, `wait_for_file`, `wait_for_window` (readiness — use instead of guessing a sleep).
- **system** — `displays` (monitor layout, DPI, scale), `cursor`, clipboard get/set.

## Rules that prevent the common mistakes

- **Coordinates** are in the last `screenshot`'s image space; the server maps them to physical
  pixels. A newer capture invalidates old coordinates — each screenshot returns a `capture_id` and
  `act` errors if you click against a stale frame. Pass that `capture_id` to `act` when precision matters.
- **Keyboard input goes to the FOREGROUND window.** To type into an app, pass `act focus="<title>"`
  (focuses atomically before the batch) or call `window focus` first. `act` tells you which window
  actually received the input.
- **To read text, use `window get_text`** (UIA + OCR fallback) instead of a screenshot — far cheaper,
  and it works without focusing the window. **To click a labeled control, use `click_element`** — it
  invokes via UI Automation and works even when the window isn't foreground.
- **Multi-monitor:** call `system displays` first; target a monitor with `display:0` /
  `display:primary|left|right`. Displays are 0-indexed.
- **Readiness:** after `process launch`, use `wait_for_window` rather than sleeping.
- Screenshots are inline + downscaled; video and full-resolution captures are written to a file and
  the path/link is returned.

