with one click
peekwin
Inspect, target, and automate native Windows UI with the `peekwin` CLI.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Inspect, target, and automate native Windows UI with the `peekwin` CLI.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | peekwin |
| description | Inspect, target, and automate native Windows UI with the `peekwin` CLI. |
Use peekwin when you need deterministic Windows desktop automation from the command line: window discovery, focus and state changes, UI inspection, mouse and keyboard input, screenshots, clipboard operations, and waiting for exact window or element states.
peekwin is installed and available on PATH--json should be preferred when another tool will consume the outputIf you need the exact syntax for any command, use:
peekwin --helppeekwin helppeekwin <command> --helppeekwin <command> <subcommand> --helpExamples:
peekwin window --helppeekwin click --helppeekwin wait ref --helppeekwin window list --jsonpeekwin app list --jsonpeekwin window inspect --title "..."peekwin see --title "..." --jsonpeekwin wait window --title "..." --state focusedpeekwin wait ref --ref e12 --state visiblepeekwin wait text --title "..." --contains Draftpeekwin click ...peekwin type ...peekwin press ...peekwin hotkey ...peekwin clipboard set ...peekwin image ...peekwin window inspect ...peekwin see ... --jsonpeekwin clipboard get --jsonUse these instructions for:
peekwin wait instead of blind sleepsDo not use them for:
peekwin does not exposePrefer the most exact selector available:
--ref after peekwin see--handle or --window when you already know the HWND--title when a title match is stable enough--app when process-name targeting is more convenient--screen for monitor-relative actionsImportant rules:
--screen, --app, --title, --handle, --window, or --ref, coordinates become relative to that targetpeekwin image requires exactly one targetAfter peekwin see, refs are strict and session-bound.
Do not guess or reuse them loosely. If the source window identity changes, the Windows session changes, or the saved element goes stale, rerun peekwin see and get a fresh ref.
Prefer peekwin ref click over raw pointer clicks when you want button-like activation. It tries UI Automation invoke first and falls back to a center mouse click when needed.
Prefer peekwin wait over fixed sleeps whenever the UI exposes a real state to poll.
peekwin window move --title "Notepad" --x 40 --y 40
peekwin window resize --title "Notepad" --width 1280 --height 900
peekwin window focus --app notepad
peekwin wait window --app notepad --state focused
peekwin type --app notepad --text "hello from peekwin"
peekwin see --title "Notepad" --deep --json
peekwin wait ref --ref e12 --state visible
peekwin ref click --ref e12
peekwin clipboard set "hello from peekwin"
peekwin clipboard get --json
peekwin wait text --title "Save As" --contains Save
peekwin wait text --ref e12 --contains Save --timeout-ms 3000
peekwin image --title "Calculator" --output calc.png
peekwin image --ref e12 --output button.png
window list, app list, screens, desktop list, desktop currentwindow inspect, see, image info, screenshot infowindow focus, window move, window resize, window minimize, window maximize, window restore, window close, desktop switchmove, click, drag, scroll, mouse down, mouse up, ref click, ref focustype, paste, press, hotkey, keys, holdclipboard get, clipboard setwait window, wait ref, wait text, sleepimage, screenshotpeekwin command before running it when the workflow is non-trivialwindow list, window inspect, or seepeekwin see instead of guessing