Skip to content

winuse 0.2.4

Choose a tag to compare

@straygizmo straygizmo released this 30 Oct 01:11
· 14 commits to main since this release

winuse 0.2.4 answers the feedback from driving Java Swing apps: get_table reads Swing tables, a Java window the bridge cannot read comes with a diagnosis that says where the connection stopped, the internal node limit of the Java tree is reported, and passwords can be typed without landing in the log.

Changes

  • get_table on Swing tables. A JTable is read through the bridge's table interface: the header row first, then every cell (boolean cells as true / false). max_rows caps the data rows; row_count and omitted_rows are reported for UIA grids as well, so an empty list is row_count: 0. A JTable is one Table node in the interactive tree (its cells no longer eat the node budget); scope get_ui_tree to the table ref to list the cells.
  • Bridge diagnostics. When a Java window cannot be read, get_ui_tree returns java_access_bridge_diagnostics next to the java_access_bridge reason: stage (client_unavailable, no_hello, handshake_failed, timeout, send_failed, no_answer, not_owned), jvm_pid, jvm_connected, bridge_module, wire_format, bitness, client_window, timeout_ms and connected_jvms with the last failed request of each. The reason names the JVM pid and the failed step instead of a generic "not responding"; winuse doctor prints the same reason. No window titles or element data are included.
  • Node limit flag. get_ui_tree reports node_limit_reached: true and node_limit: 5000 when the Java tree walk stopped at its internal bridge round-trip limit (previously only a log warning).
  • Secrets. get_ui_tree takes include_values: false (no element value is read, so field contents stay out of the result and the log). set_text, type_text, paste_text and clipboard_set take secret: true: the text is used but the log, the journal and saved scenarios hold "***"; replaying such a step stops with secret text was not recorded until the scenario names the value as ${NAME}.

Scenarios recorded with 0.2.3 replay unchanged. The one behaviour change for existing clients: the cells of a Swing table are no longer listed in the default (interactive_only) tree.

Install

  1. Install the .NET 10 runtime (or SDK).
  2. Unzip winuse-0.2.4-win-x64.zip into a folder.
  3. Register with Claude Code: claude mcp add winuse -- <folder>\winuse.exe --mcp
  4. Set JEV_API_KEY, or CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN, as user environment variables, then run winuse doctor.

Upgrading from 0.2.3: unzip over the old folder and restart the AI client.

Known issues

The bridge reports no position for a Swing table cell, so a cell listed in a scoped tree carries the table's rectangle. Unchanged from 0.2.3: a JRE without the Java side of the bridge cannot be read; type_text with Japanese text can be garbled under the Japanese IME (intermittent).

Full changelog: CHANGELOG.md