Skip to content

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 browser tool
  • Sessions and artifacts are tracked per runtime state
  • Provider choices:
    • sandbox (default): local/container browser automation
    • kernel: remote Kernel-backed execution

Quick Start

[browser]
enabled = true
provider = "sandbox"
timeout_seconds = 30.0
[browser.sandbox]
headless = true
runtime_required = true

Run diagnostics:

Terminal window
uv run ash doctor

If using sandbox provider prerequisites locally:

Terminal window
uv sync --all-groups
uv run playwright install chromium

Choose 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.py
  • src/ash/rpc/methods/browser.py
  • src/ash/tools/builtin/browser.py

Troubleshooting

Browser tool is unavailable

Terminal window
uv run ash doctor

Check:

  • [browser].enabled = true
  • provider-specific credentials (for kernel)

Browser actions time out

Increase timeout:

[browser]
timeout_seconds = 45.0

Sandbox browser fails to start

Terminal window
uv run ash doctor
uv run ash sandbox status

If needed, reinstall browser runtime deps:

Terminal window
uv run playwright install chromium

Reference (Advanced)

Subsystem contract and integration boundaries:

  • specs/browser.md
  • specs/subsystems.md
  • specs/integrations.md