Skip to content

Touchpoint-Labs/touchpoint

v0.3.0 Breaking

This release includes 1 breaking change for platform teams planning a safe upgrade.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

accessibility ai ai-agent ai-agents automation cdp
+11 more
claude computer-use cross-platform cursor-ai desktop-automation llm mcp mcp-server openclaw python ui-automation

ReleasePort's take

Light signal
editorial:auto 1mo

Release v0.3.0 adds several new capabilities to the MCP API and tools, including a no‑vision mode, cross‑platform window management, universal text selection and retrieval, diagnostics reporting, role classification constants, expanded backend detection, thread‑safe public APIs, macOS timeout hardening, and faster Windows element search.

Why it matters: These feature additions broaden functional coverage (no‑vision mode, new APIs) and improve performance (Windows search acceleration, macOS timeout), directly benefiting developers building automation workflows across platforms.

Summary

AI summary

Updates UIA, AT-SPI2, and CDP across a mixed release.

Changes in this release

Feature Medium

Adds no-vision MCP mode via TOUCHPOINT_MODE=no-vision.

Adds no-vision MCP mode via TOUCHPOINT_MODE=no-vision.

Source: llm_adapter@2026-06-08

Confidence: high

Feature Medium

Adds cross-platform window management APIs: minimize, fullscreen, close, move, resize.

Adds cross-platform window management APIs: minimize, fullscreen, close, move, resize.

Source: llm_adapter@2026-06-08

Confidence: high

Feature Medium

Makes select_text work everywhere across all backends.

Makes select_text work everywhere across all backends.

Source: llm_adapter@2026-06-08

Confidence: high

Feature Medium

Adds read_text MCP tool and tp.get_text_content() for direct element text retrieval.

Adds read_text MCP tool and tp.get_text_content() for direct element text retrieval.

Source: llm_adapter@2026-06-08

Confidence: high

Feature Medium

Introduces tp.diagnostics() and matching MCP tool for backend health reporting.

Introduces tp.diagnostics() and matching MCP tool for backend health reporting.

Source: llm_adapter@2026-06-08

Confidence: high

Feature Medium

Exports role‑classification sets: INTERACTIVE_ROLES, CONTAINER_ROLES, STRUCTURAL_ROLES.

Exports role‑classification sets: INTERACTIVE_ROLES, CONTAINER_ROLES, STRUCTURAL_ROLES.

Source: llm_adapter@2026-06-08

Confidence: high

Feature Medium

Broadens role and state coverage on Windows and macOS to many more element kinds and states.

Broadens role and state coverage on Windows and macOS to many more element kinds and states.

Source: llm_adapter@2026-06-08

Confidence: high

Feature Medium

Makes public API calls and MCP workflows thread‑safe by serializing shared state access.

Makes public API calls and MCP workflows thread‑safe by serializing shared state access.

Source: llm_adapter@2026-06-08

Confidence: high

Feature Medium

Hardens macOS responsiveness with configurable ax_messaging_timeout (default 1 s).

Hardens macOS responsiveness with configurable ax_messaging_timeout (default 1 s).

Source: llm_adapter@2026-06-08

Confidence: high

Feature Medium

Accelerates element search on large Windows desktops by skipping leaf controls and using direct filters.

Accelerates element search on large Windows desktops by skipping leaf controls and using direct filters.

Source: llm_adapter@2026-06-08

Confidence: high

Bugfix Medium

Enables OS-level window management for CDP (browser/Electron) windows.

Enables OS-level window management for CDP (browser/Electron) windows.

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Bugfix Medium

Raises clear ValueError for malformed element IDs across all backends.

Raises clear ValueError for malformed element IDs across all backends.

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Bugfix Medium

Improves reliability of Windows text selection, avoiding offset drift and correctly handling multiline edits.

Improves reliability of Windows text selection, avoiding offset drift and correctly handling multiline edits.

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Bugfix Medium

Fixes multi-monitor screenshot clipping, expanding captures to full monitor area.

Fixes multi-monitor screenshot clipping, expanding captures to full monitor area.

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Bugfix Low

Fixes control of GTK4 applications that previously failed actions due to UUID‑style paths.

Fixes control of GTK4 applications that previously failed actions due to UUID‑style paths.

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Bugfix Low

Corrects wait_for behavior when wait_for_new=True, validates mode early, and de‑duplicates queries per polling cycle.

Corrects wait_for behavior when wait_for_new=True, validates mode early, and de‑duplicates queries per polling cycle.

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Full changelog

Added

  • No-vision MCP mode. Setting TOUCHPOINT_MODE=no-vision lets agents
    drive the desktop from a compact structured snapshot() of the active
    window — plus diff_snapshot() and automatic verify flags on actions —
    instead of screenshots. Any model can now control the desktop, including
    local models with no vision capability.
  • Cross-platform window management. New APIs tp.minimize_window(),
    tp.fullscreen_window(), tp.close_window(), tp.move_window(), and
    tp.resize_window() (with matching MCP tools) let agents arrange and
    control application windows on Linux, Windows, and macOS.
  • select_text now works everywhere. Native structured text selection
    is complete across all backends — Linux, Windows, macOS, and web/Electron
    — so agents can select substrings without mouse drags or triple-clicks on
    any platform.
  • Read element text directly. The read_text MCP tool and
    tp.get_text_content() return the full text of an element or container
    (article, document body, terminal) verbatim — no screenshot OCR needed.
  • tp.diagnostics() (and a matching MCP tool) reports the health of
    backends, input, CDP targets, timeouts, and optional dependencies, making
    it easy to confirm a working setup or troubleshoot a misconfigured one.
  • Role-classification sets. INTERACTIVE_ROLES, CONTAINER_ROLES, and
    STRUCTURAL_ROLES are exported for grouping elements by kind (e.g. what an
    agent can act on vs. layout containers).

Changed

  • Broader role and state coverage on Windows and macOS. Both backends
    now recognize many more element kinds (headings, landmarks, form roles,
    labels, figures, notes, meters, split buttons, and more) and additional
    states such as pressed, active, invalid, multi-selectable, and resizable —
    bringing Windows and macOS much closer to parity with Linux.
  • Thread-safe, more reliable automation. Public API calls and complete
    MCP tool workflows now serialize access to shared backend and session
    state, so concurrent or worker-thread usage no longer corrupts state or
    stalls.
  • macOS responsiveness hardening. macOS now uses a configurable
    messaging timeout (ax_messaging_timeout / TOUCHPOINT_AX_MESSAGING_TIMEOUT,
    default 1 second) applied throughout element traversal, so an unresponsive
    app is detected and skipped instead of hanging the whole session.
  • Faster element search on large Windows desktops. Windows searches now
    skip obvious leaf controls, use direct control-type filters for exact role
    queries, and fully read only matched elements, reducing overhead on big
    accessibility trees.
  • tp.configure() is now also a getter — calling it with no arguments
    returns a copy of the current configuration.

Removed

  • The elements MCP tool has been replaced by snapshot(), which returns
    a compact structured tree of the active window (in both vision and no-vision
    modes). The tp.elements() Python API is unchanged.

Fixed

  • CDP windows now support OS-level window management. Minimize, fullscreen,
    close, move, and resize on a browser/Electron page are routed to the
    underlying native OS window (resolved by owning process), with a clear error
    only when no native window can be found. (Window activation was already
    supported.)
  • GTK4 apps are now controllable. Some GTK4 apps expose elements under
    UUID-style paths that were previously misread as malformed, so they appeared
    in listings but every action failed. They now work correctly.
  • Consistent errors for malformed element IDs. All backends now raise a
    clear ValueError when given a structurally invalid element ID, instead of
    some platforms silently returning nothing.
  • Reliable Windows text selection. Text selection reads and selects from a
    single source to avoid offset drift, and falls back to a native message for
    classic edit controls that don't expose the modern text pattern. Multiline
    edit fields are no longer mislabeled as single-line, and ordinary controls
    are no longer falsely marked invalid.
  • wait_for correctness. wait_for(..., wait_for_new=True) now records a
    correct baseline of existing matches (previously it could behave as a no-op),
    mode is validated immediately, and repeated queries are de-duplicated within
    each polling cycle to avoid redundant tree scans.
  • Multi-monitor screenshots. Captures of elements on monitors positioned
    above or to the left of the primary display now expand correctly instead of
    being clipped back to the primary display's origin.

Platform support after 0.3.0

| Feature | Linux (AT-SPI2) | Windows (UIA) | macOS (AX) | Web / Electron (CDP) |
|---|---|---|---|---|
| select_text | ✅ Full | ✅ Full | ✅ Full | ✅ Full |
| Window management | ✅ X11 + wmctrl | ✅ Full | ✅ Full | 🚧 Routed to OS window |

Breaking Changes

  • Removed the `elements` MCP tool; use `snapshot()` instead.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Touchpoint-Labs/touchpoint

Get notified when new releases ship.

Sign up free

About Touchpoint-Labs/touchpoint

Playwright for the entire OS. Gives AI agents the ability to see, find, and interact with UI elements in any desktop application.

All releases →

Related context

Beta — feedback welcome: [email protected]