Files
python-sdk/pkg/hanzo-tools-browser
zeekayandGitHub 49ad34a2c9 feat(browser): auto-start zapd when absent (connect-or-spawn) (#47)
The browser MCP tool no longer requires a human to have started zapd.
ZapdConsumer.connect() now dials the router and, on failure, auto-starts
the shared singleton (locate the zapd binary, spawn it detached, wait for
the socket) then dials once more — mirroring zapd's own host-mode
connect-or-spawn. No consumer-side lock: the singleton invariant lives in
zapd (advisory-lock bind), so concurrent spawns are safe. The OS unit is
the primary starter; this is the bare-machine fallback so the tool just
works.
2026-07-08 08:49:21 -07:00
..

hanzo-tools-browser

Browser automation tools for Hanzo MCP using Playwright.

Installation

pip install hanzo-tools-browser

Tools

browser - Complete Playwright API

70+ browser actions for full automation.

Navigation:

browser(action="navigate", url="https://example.com")
browser(action="go_back")
browser(action="reload")

Input:

browser(action="click", selector="button.submit")
browser(action="fill", selector="input[name=email]", text="[email protected]")
browser(action="type", selector="textarea", text="Hello")

Touch/Mobile:

browser(action="tap", selector=".button")
browser(action="swipe", selector=".carousel", direction="left")
browser(action="emulate", device="mobile")  # or tablet, laptop

Assertions:

browser(action="expect_visible", selector=".modal")
browser(action="expect_text", selector="h1", expected="Welcome")
browser(action="expect_url", expected="*/dashboard*")

Content:

browser(action="get_text", selector=".content")
browser(action="screenshot", full_page=True)
browser(action="pdf")

Parallel Agents:

# Each agent gets isolated session
browser(action="new_context")  # Separate cookies/storage

Device Presets:

  • mobile - iPhone-like (390x844, touch)
  • tablet - iPad-like (1024x1366, touch)
  • laptop - MacBook-like (1440x900)
  • iphone_14, pixel_7, ipad_pro, etc.

License

MIT