CtrlK
BlogDocsLog inGet started
Tessl Logo

browser-automation

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

65

Quality

82%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

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.

Repository
agent0ai/agent-zero
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.