Windows Computer Use should expose or document advanced pointer/full-desktop primitives

Open 💬 0 comments Opened Jun 10, 2026 by MisterRound

Summary

The Windows Computer Use client exposed to Codex can be healthy for supported windowed actions while still lacking advanced pointer/full-desktop primitives that are documented or needed for some app UI-control tasks.

This is separate from the CUA native-pipe/bootstrap issue: the runtime can be up, action smokes can pass, and the missing primitives are still a real API-surface limitation.

Environment

Sanitized representative setup:

Product: Codex Desktop Windows Store app
Mode: Windows Desktop with app-server running in WSL
Computer Use plugin: openai-bundled computer-use
CUA transport: product native pipe \\.\pipe\codex-computer-use-<uuid>
Runtime: Windows node_repl sidecar with isolated runtime home

What passed

The following operations passed through computer-use-client.mjs:

  • bootstrap with setupComputerUseRuntime({ globals: globalThis });
  • sky.list_apps();
  • sky.list_windows();
  • sky.get_window(...);
  • sky.get_window_state(...);
  • sky.launch_app(...);
  • sky.press_key(...);
  • fresh-screenshot coordinate sky.click(...);
  • sky.drag(...);
  • sky.type_text(...);
  • sky.close().

Action-level validation:

  • Calculator click smoke changed display 0 -> 5;
  • 12-second hold-open smoke stayed responsive;
  • Photoshop 2026 clean-document UI-only stress passed using supported CUA controls only: new document, brush drags, Type tool click, typed text layer, screenshot/text verification, clean close.

Missing live API surface

The live sky object exposed in this setup did not provide:

move
get_screenshot

The local candidate drag_with_button / dragWithButton was tested and rejected because it behaved like ordinary left-drag in Photoshop, not a real non-left or held-pointer primitive.

Observed status from the local API-surface smoke:

hasWindowMove=false
hasFullDesktopScreenshot=false
hasDragWithButton=true
dragWithButtonIsRejectedCandidate=true
completionRelevantGap=no-live-full-desktop-or-move-api

Why this matters

Some real app-control tasks need primitives beyond left-click, left-drag, keypress, and text:

  • move pointer without clicking;
  • hold pointer/button across a sequence;
  • non-left-button drag;
  • full-desktop screenshot/capture when task focus is not limited to one window;
  • reliable gesture support for graphics/design apps and OS-level workflows.

Without these, CUA can be "working" but still unable to perform or verify certain UI tasks safely.

Expected behavior

Either:

  1. expose documented/supported primitives for pointer move, held-button state, non-left drag, and full-desktop capture; or
  2. clearly document that the Windows window2 CUA API currently supports only window-scoped actions and left-button coordinate gestures.

Suggested release-gate distinction:

  • CUA bootstrap: pipe + computer-use-client.mjs setup works;
  • CUA basic actions: list_apps, window state, click/key/type/drag work;
  • CUA advanced pointer: move/held-button/non-left/full-desktop primitives available;
  • CUA clean close: sky.close() ends the session and later calls fail with a closed-client error.

Related issues

  • #25301: CUA availability in Windows Desktop + WSL.
  • #26887: separate action-tool/session issue where state calls can work but actions report inactive.

View original on GitHub ↗