clawd/skills/browser/SKILL.md

3.0 KiB

name description default_model
browser Web browsing via Chrome relay or headless Chromium K2.5

Skill: Browser Automation

Route all browsing tasks to the k2-browser agent (uses K2.5 model).

Spawning Browser Tasks

From main agent, delegate browsing to K2.5:

clawdbot agent --agent k2-browser --message "Browse to X and summarize Y"

Or use sessions_spawn tool:

{"agent": "k2-browser", "message": "Browse to https://example.com and extract..."}

Quick Reference

Available Actions

Action Required Params Description
tabs List open tabs
open targetUrl Open new tab with URL
navigate targetUrl, targetId Navigate existing tab
snapshot targetId Get page content (aria tree)
screenshot targetId Get page screenshot
act targetId, request Click/type/interact

Profiles

  • profile="chrome" — Chrome relay (authenticated sites like X.com)
  • profile="fast" — Headless Chromium (general automation)

Examples

1. List tabs

{"action": "tabs", "profile": "chrome"}

2. Open a new tab

{"action": "open", "profile": "chrome", "targetUrl": "https://example.com"}

3. Navigate existing tab

{"action": "navigate", "profile": "chrome", "targetId": "ABC123", "targetUrl": "https://example.com"}

4. Get page content

{"action": "snapshot", "profile": "chrome", "targetId": "ABC123"}

5. Click an element (use ref from snapshot)

{"action": "act", "profile": "chrome", "targetId": "ABC123", "request": {"kind": "click", "ref": "e42"}}

6. Type text

{"action": "act", "profile": "chrome", "targetId": "ABC123", "request": {"kind": "type", "ref": "e15", "text": "hello world"}}

Common Mistakes (AVOID THESE)

Wrong: {"action": "navigate", "url": "https://..."}Right: {"action": "navigate", "targetUrl": "https://...", "targetId": "..."}

Wrong: {"action": "open"} (missing targetUrl) ✓ Right: {"action": "open", "targetUrl": "https://..."}

Wrong: {"action": "snapshot"} (missing targetId) ✓ Right: {"action": "snapshot", "targetId": "ABC123"}

Workflow

  1. Get tabs: browser(action="tabs", profile="chrome")
  2. Open/navigate: Use targetUrl for the URL
  3. Read content: browser(action="snapshot", targetId="...")
  4. Interact: browser(action="act", targetId="...", request={...})

K2.5 Tips (IMPORTANT)

K2.5 chokes on large snapshots. Always use maxChars:

{"action": "snapshot", "profile": "chrome", "targetId": "ABC123", "maxChars": 10000}

Without this, K2.5 will timeout on content-heavy pages.

Alternative: web_fetch

For simple page reading without interaction, use web_fetch instead:

{"url": "https://example.com"}

This is simpler and doesn't require browser profiles or targetIds. Note: Some sites (nu.nl) block web_fetch with 403 — use browser tool instead.