# Browser Automation

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

- Repository: https://github.com/agent0ai/agent-zero (19630 stars)
- Category: DevOps
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add agent0ai/agent-zero --skill browser-automation -g -a claude-code -y`
Codex: `npx skills add agent0ai/agent-zero --skill browser-automation -g -a codex -y`
Cursor: `npx skills add agent0ai/agent-zero --skill browser-automation -g -a cursor -y`
Gemini CLI: `npx skills add agent0ai/agent-zero --skill browser-automation -g -a gemini-cli -y`

## Description

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

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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.

The rest: https://github.com/agent0ai/agent-zero/blob/HEAD/plugins/_browser/skills/browser-automation/SKILL.md
