Summary
Add two new tools to the pyclaudir toolset:
browser_open — open a URL in a headless browser session
browser_get_text — extract visible text content from the current browser page
Motivation
These tools would enable the agent to interact with web pages that require JavaScript rendering, login flows, or dynamic content — beyond what WebFetch (static HTTP) can reach.
Proposed behavior
browser_open(url: str) → status
- Opens the given URL in a headless Chromium instance (reuse existing render infra if available)
- Returns load status (success / error / timeout)
- Respects existing private-IP block rules (no localhost, RFC1918, etc.)
browser_get_text(selector?: str) → str
- Returns visible text from the current page
- Optional CSS selector to scope extraction to a specific element
- Truncates at a reasonable limit (e.g. 10k chars) to avoid context overflow
Notes
- Should respect the same internal-URL block rules as
WebFetch/WebSearch
- Consider whether to expose as a stateful session (open → interact → close) or stateless (open+get in one call)
- Headless Chromium is already used for
render_html — reuse that infra where possible
Summary
Add two new tools to the pyclaudir toolset:
browser_open— open a URL in a headless browser sessionbrowser_get_text— extract visible text content from the current browser pageMotivation
These tools would enable the agent to interact with web pages that require JavaScript rendering, login flows, or dynamic content — beyond what
WebFetch(static HTTP) can reach.Proposed behavior
browser_open(url: str) → statusbrowser_get_text(selector?: str) → strNotes
WebFetch/WebSearchrender_html— reuse that infra where possible