The interface is localized. Skill descriptions and documents are machine-translated by AI into your language; code, commands, paths and technical terms stay in the original, and the author's document governs.
Explore skills
DevOps · SKILL.md

browser-automation

browser-automation

Control web pages: tabs, clicks, forms, downloads, screenshots; host or Docker browser.

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill documentation

GitHub

name: browser-automation description: "Control web pages: tabs, clicks, forms, downloads, screenshots; host or Docker browser." triggers:

  • "browser automation"
  • "web automation"
  • "open website"
  • "open URL"
  • "navigate browser"
  • "interact with web page"
  • "JavaScript page"
  • "browser screenshot"
  • "screenshot webpage"
  • "visual verification"
  • "multi-tab browsing"
  • "download file from website"
  • "upload file in browser"
  • "host browser"
  • "local browser"
  • "my browser"

Browser Tool

Use this skill after the compact browser tool prompt points you here. It is the progressive-disclosure workflow guide for rendered pages, multi-step browser work, logins, downloads, JavaScript-heavy sites, screenshots, host/container browser mode, and visual inspection. Prefer search_engine or document_query for plain text research.

For fragile forms, load browser-form-workflows with skills_tool:load before acting when selects, checkboxes, radios, file uploads, contenteditable fields, validation, or final submission state are central to the task.

Core Workflow

  1. open creates a browser tab and returns a browser_id.
  2. content returns readable markdown plus typed refs like [link 3], [button 6], [input text 8].
  3. Interact with refs using click, type, submit, scroll, etc.; iframe/shadow targets may return frame-chain metadata in action results.
  4. Use navigate on an existing browser_id for serial browsing.
  5. Keep only a small working tab set; close pages when finished.
  6. If the user asks for an existing tab, page title, or already-open URL, call list first, match by title or currentUrl, then use set_active or navigate on that browser_id instead of opening a new tab.

Modes

When the user asks for "my browser", "host browser", "local browser", a local Chromium browser, or opening a URL in their host browser, use this browser tool. Do not substitute computer_use_remote, code_execution_remote, xdg-open, sensible-browser, or Python webbrowser.open. If setup fails and mentions remote debugging, tell the user to open the browser inspect page, such as chrome://inspect/#remote-debugging or opera://inspect/#remote-debugging, enable "Allow remote debugging for this browser instance", run /browser host on, and retry.

The same tool may run in Docker container mode or A0 CLI host-browser mode, depending on project/plugin settings.

  • Container mode: browser and upload paths resolve inside the Agent Zero container.
  • Host mode: browser and upload paths resolve on the connected A0 CLI host machine.

In host mode, page content and screenshots may be blocked by host-content policy when remote models are active.

Screenshots And Vision

Screenshots are explicit only; the browser does not automatically load images into model context.

  1. Call browser with action: "screenshot".
  2. Call vision_load with the returned vision_load.tool_args.paths value.
  3. Reason from the latest loaded screenshot.

Screenshot args include quality, full_page, and optional path. Without path, the screenshot is saved as a chat-scoped artifact and returned through vision_load.tool_args.paths; with path, PNG is used when path ends with .png, otherwise JPEG is used.

Forms And Files

  • select_option works for native selects and detectable ARIA listbox/combobox controls; pass one choice via value or several via values.
  • set_checked works for checkbox, radio, switch, and toggle-like refs; pass the desired state via checked.
  • upload_file works for file input path or multiple paths, file input refs or associated labels; verify files exist in the active browser environment.
  • For fragile forms, call skills_tool with action: "load" and skill_name: "browser-form-workflows", then follow that form-specific workflow before filling or submitting.

Pointer And Keyboard

  • Prefer refs/selectors and DOM/CDP actions over viewport coordinates.
  • Interaction targets use ref from the latest content output; hover, double_click, right_click, and drag also accept viewport coordinates when no reliable ref exists.
  • Coordinates are Chromium viewport CSS pixels and match screenshots; treat them as visual fallback, not the default interaction path.
  • Coordinate args: x/y position the pointer; drag adds destination to_x/to_y or destination target_ref; element-relative offsets use offset_x/offset_y and drag target_offset_x/target_offset_y.
  • mouse sends raw pointer input with event_type (default click) plus x/y and button.
  • click with modifiers (e.g. "Control") alters the click; focus_popup: true targets an auto-registered popup window.
  • key_chord presses keys in order and releases in reverse; keyboard types text or presses a single key.
  • content narrows extraction via selector or a list of selectors.
  • evaluate runs JavaScript in the page via script and returns the evaluated result.
  • Browser settings set the evaluate deadline (default 30 seconds, range 0.1–60 seconds); there is no tool-call timeout override. A timeout interrupts JavaScript in place and preserves the page when execution stops. If async execution remains pending, recovery may reload the affected tab, losing unsaved DOM edits; cookies and tab storage normally survive. The error explicitly reports a reload or fallback closure; use list before retrying a closed tab. Host evaluation requires an updated connector; Safari rejects it because its backend cannot forcibly interrupt JavaScript.
  • wheel scrolls by pixel deltas delta_x/delta_y at x/y.
  • clipboard actions are copy, cut, or paste, chosen via clipboard_action; paste inserts text.
  • set_viewport resizes the page viewport via width and height.
  • navigate takes the destination url on an existing browser_id.

Tabs And Popups

  • Popups and target-blank tabs are auto-registered.
  • list shows open tabs; pass include_content: true sparingly.
  • set_active deliberately changes focus.
  • Operations on a non-active tab do not steal focus unless browser rules require it.

Browser Action Multi

multi is only a browser action, never a top-level tool. Use:

{
  "tool_name": "browser",
  "tool_args": {
    "action": "multi",
    "calls": [
      {"action": "content", "browser_id": 1},
      {"action": "screenshot", "browser_id": 2}
    ]
  }
}

Use browser action multi for parallel reads across tabs. Avoid mutating the same tab twice in one batch unless serial order is intended.

Saved skills