Browser
Ash includes a browser subsystem for session-based page actions such as navigation, extraction, clicks, typing, and screenshots.
Browser In 30 Seconds
- Browser actions run through the
browsertool - Sessions and artifacts are tracked per runtime state
- Provider choices:
sandbox(default): local/container browser automationkernel: remote Kernel-backed execution
Quick Start
[browser]enabled = trueprovider = "sandbox"timeout_seconds = 30.0
[browser.sandbox]headless = trueruntime_required = trueRun diagnostics:
uv run ash doctorIf using sandbox provider prerequisites locally:
uv sync --all-groupsuv run playwright install chromiumChoose A Provider
Sandbox provider (default):
[browser]provider = "sandbox"Kernel provider:
[browser]provider = "kernel"
[browser.kernel]api_key = "${KERNEL_API_KEY}"base_url = "https://api.kernel.sh"project_id = "your-project-id"Use sandbox unless you specifically need remote execution.
Operational Notes
Browser integration is wired through subsystem hooks, not ad-hoc runtime branching.
Key integration surfaces:
src/ash/integrations/browser.pysrc/ash/rpc/methods/browser.pysrc/ash/tools/builtin/browser.py
Troubleshooting
Browser tool is unavailable
uv run ash doctorCheck:
[browser].enabled = true- provider-specific credentials (for
kernel)
Browser actions time out
Increase timeout:
[browser]timeout_seconds = 45.0Sandbox browser fails to start
uv run ash doctoruv run ash sandbox statusIf needed, reinstall browser runtime deps:
uv run playwright install chromiumReference (Advanced)
Subsystem contract and integration boundaries:
specs/browser.mdspecs/subsystems.mdspecs/integrations.md