Web Use: control only built-in browser Pages
An agent can call web_use, or let GUI Agent Harness execute continuously through the same interface. The runtime binds an exact Page and pins one of three browser backends for execution.
TARGET NAME: WEB_USE · PUBLIC NAME: WEB_USE · BROWSER-ONLY RUNTIME IMPLEMENTED
Names and boundaries
| Capability | Responsibilities | Current status |
|---|---|---|
| Web Use | Built-in browser BrowserContext, Page, tab, popup, split views, cross-window discovery, and DOM/ARIA/viewport operations. | Current capability; its public name is web_use |
| Computer Use | Future desktop applications, full-screen or application-window screenshots, and OS-level mouse/keyboard input; Web Use can be called for webpage interaction. | Reserved name; not currently implemented, with no pre-created configuration or background processes |
System structure
The three backends are alternative execution paths. The runtime pins one when creating the WebSession and confines every action to the same Page.
Representing four webpages in one window
Currently, list_pages returns both tab_entries + pages: the former describes single/split layout and pane ordering; the latter provides independently controllable exact Page tokens. Cross-window targets retain the same structure, adding an outer windows[], while each Page retains its original window_id. For the full fields, see Multi-Page data model.
Claude Code visual coordinate-click path
This diagram is based on inspection of the locally installed Claude Code 2.1.227 and Chrome extension 1.0.85 packages. It describes only the visual-coordinate path, not an officially stable internal interface.computer also supports clicking through page refs; that path does not require a screenshot first.
Chat rendering stability
When a live normal assistant reply or its corresponding runtime card exists, Web Use tree updates must not trigger transcript reload. A standalone run without a persisted runtime card may perform one initial hydration. This preserves existing historical message element identity and prevents streaming replies, scroll positions, and message-action state from being reset.
Extent of reuse
| Conclusion | Component | OpenProgram handling |
|---|---|---|
| Use directly | Microsoft Playwright MCP, Playwright, MCP SDK | Open-source dependency; integrate a pinned version. |
| Call the interface directly | CDP, Electron webContents.debugger, Chrome debugger / Native Messaging | No Claude source copy is needed. The built-in browser uses Electron/CDP directly, without installing a separate Chrome extension. |
| Optional backend | Chrome DevTools MCP | Connect through an MCP adapter to the shared runtime and bind an exact Page. |
| Optional backend | Open Claude in Chrome-compatible | Use its tool contract and visual interaction model; the OpenProgram Electron/CDP adapter binds an exact Page. |
| OpenProgram layer | Exact Page adapter, shared permissions, verification, and backend selector | Shared by all three backends; only one backend may execute actions within a WebSession. |
Task results and observation evidence
Successful browser task results retain the bounded, password-redacted observation associated with the verified frame, alongside the assertion and exact Page identity. The observation is read-only context for the caller, not authority to reuse a closed session or proof that every page field was verified. A caller can report observed fields without invoking another browser task merely to recover data discarded by the result adapter. Failed, stale, cancelled or privacy-rejected completion emits no successful observation.
The single-Page task executor receives an already validated binding. Its planner prompt distinguishes an unavailable inventory interface from an empty inventory and does not request discovery or switching when those tools are not exposed. Runtime owns Page identity and permissions; the model chooses actions on the supplied observation.
Acceptance uses the installed App and an existing task: select the authorized file, observe and verify the website receipt, then use GUI Agent delegation to return the requested page facts and verification evidence. Selecting a file alone is insufficient for website acceptance. Zero mutation steps is valid for a successful read-only verification. Network disconnection or an App restart is reported separately from an invalid target or unsupported action.
When no Page is bound, browser tasks use the same registered Page inventory and command driver as web_use. They do not fall back to a broadcast asking whichever window is visible. An existing explicit Page binding keeps its native controller; an explicitly disabled surface remains denied. Target selection and switching use owner-scoped inventory capabilities.