Skip to main content
computer lets an expert operate your desktop directly: native applications, games, any interface without a DOM. It is the lowest-level interaction tool available, and the one where understanding the constraints matters most.

Activation

profy-computer is user_selectable: true with requires: { desktop_connected: true }. Both conditions are mandatory — you must enable it in the plugin panel and be running Profy Desktop. The plugin never activates in a cloud sandbox.

Element addressing: prefer tokens, avoid coordinates

This is the key to using computer well and the easiest place to get stuck. cua-driver 0.17 has strict addressing rules: Tokens go stale. Taking another get_window_state snapshot of the same window invalidates the previous batch, producing stale_element_token. The right response is to re-snapshot and retry, not to fall back to coordinates.

Standard workflow

Step 5 is not optional. Pixel-level operations return nothing that tells you whether the click landed; only a fresh snapshot confirms it.

The 18 actions

Observation

Action

Phantom cursor: move is hard-disabled

Calling move returns this error directly:
This is by design, not a defect. Profy runs in phantom cursor mode:
  • Accessibility-addressed clicks dispatch events through the AX API and never touch the cursor
  • Pixel-coordinate clicks save and restore the cursor position in the driver layer
So you can keep using your computer while the expert operates the desktop; neither side fights for the pointer.

Background key delivery and its blind spot

keypress defaults to delivery_mode="background", which does not steal focus. The cost: native application menu shortcuts (Cmd+N, Cmd+F, and so on) may be silently ignored in the background — no error, nothing happens. The correct handling order:
  1. Verify with get_window_state after the keypress and notice nothing changed
  2. Retry once with delivery_mode="foreground" (this does steal focus)
  3. Or switch to invoke_menu, which goes through the accessibility menu — neither stealing focus nor being ignored
For anything menu-driven, invoke_menu is the better default.

Automatic pixel fallback

When a token-addressed click is refused by the accessibility layer, the tool automatically performs one pixel retry: it re-snapshots, locates the element by the index parsed out of the failed token, and clicks the center of its frame. That fallback requires window_id to have been supplied. Without it, the original error is returned untouched. So pass window_id alongside token addressing even though the token alone would work.

Failures and what to do

Execution path

screenshot is translated at the driver layer into get_desktop_state (full screen) or get_window_state (window-scoped) — cua-driver has no standalone screenshot command. The underlying driver is trycua/cua-driver-rs, pinned to 0.17 in the desktop platform.ts. Every addressing constraint above is the behavior of that version.

How it divides work with chrome and browser

Prefer chrome or browser for anything on the web: they do not depend on screen resolution and are far more stable. Reserve computer for cases where there is no other way in.

Keep reading

Chrome

Control your own browser, sessions included

Browser

The isolated sandbox browser

Record and replay

Turn a desktop sequence into a reusable flow

Tool catalog

Full parameters for every action