Skip to main content

Browser Automation

The browser toolset exposes accessibility-tree navigation and native CDP-backed operations to the model. Browser work is awaited and its session is closed with the agent lifecycle.

Tool surface​

The retained tools include navigation, accessibility snapshots, click, type, scroll, back, key press, image collection, screenshot vision, console access, CDP operations, and dialog handling. Enable them with:

agent = AIAgent(..., enabled_toolsets=["browser"])

Accessibility snapshots assign stable element references for later click and type calls. Screenshot analysis requires a configured vision-capable model.

Local mode​

Local mode uses the external agent-browser command and a Chromium-family browser. Those Node/browser components are not installed by this Python package:

npm install -g agent-browser
agent-browser install

Select local mode explicitly:

browser:
cloud_provider: local
headed: false
engine: auto

headed: true opens a visible browser. Supported engine values are auto, chrome, and lightpanda, subject to the installed agent-browser version.

Existing CDP browser​

Attach to a Chrome/Chromium-compatible debugging endpoint without a UI command:

browser:
cloud_provider: local
cdp_url: "http://127.0.0.1:9222"

The runtime resolves the browser WebSocket endpoint and uses the retained CDP supervisor. Protect remote CDP endpoints as credentials: control URLs can grant complete access to browser tabs, cookies, and authenticated sessions.

Cloud providers​

The retained browser plugins are:

Provider keyCredentials
browser-useBROWSER_USE_API_KEY
browserbaseBROWSERBASE_API_KEY, BROWSERBASE_PROJECT_ID
firecrawlFIRECRAWL_API_KEY

For example:

browser:
cloud_provider: browserbase

Set credentials in the environment or $HERMES_HOME/.env. External account availability, billing, anti-bot behavior, proxies, and session limits are owned by the selected service.

Private-network protection​

Navigation guards block private, loopback, link-local, and cloud-metadata targets by default. Keep the preferred global setting disabled:

security:
allow_private_urls: false

With a cloud provider selected, browser.auto_local_for_private_urls defaults to true: an explicitly requested private URL can be routed to a local browser sidecar instead of sending it to the cloud provider, while redirect-based private-network access remains guarded. Disable hybrid routing with:

browser:
cloud_provider: browserbase
auto_local_for_private_urls: false

Enabling private URLs widens SSRF reach and should be confined to an isolated agent and network. See Security.