# Browser Controller

> Browser Controller — Tool Router

- Skill: `ralfnick/browser-controller` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add ralfnick/browser-controller`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ralfnick/browser-controller/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: RalfNick (https://skillmd.com/u/ralfnick)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/ralfnick/browser-controller

---


# Browser Controller — Tool Router

Routes browser automation tasks to the right tool based on task requirements.

## Decision Tree

```
Task requires debugging / packet capture / performance profiling?
  → chrome-devtools

Task needs to connect to an already-running Chrome (user is logged in)?
  → browser-use

Task needs semantic element targeting (find by role/label/text)?
  → agent-browser

Everything else (default)
  → playwright-cli
```

## Priority Order

| Priority | Tool | Best For |
|----------|------|---------|
| P1 (default) | `playwright-cli` | General automation, network mocking, tracing, storage |
| P2 | `agent-browser` | AI-optimized, semantic locators, accessibility-first |
| P3 | `browser-use` | CDP direct connect, running Chrome, speed-critical |
| P4 | `chrome-devtools` | Debugging, packet capture, performance profiling ONLY |

## Routing Examples

| Task | Tool |
|------|------|
| "Open example.com and click the login button" | playwright-cli |
| "Fill the form with label 'Email'" | agent-browser |
| "Connect to my running Chrome and scrape" | browser-use |
| "Capture all API calls from this website" | chrome-devtools |
| "Take a screenshot of the page" | playwright-cli |
| "Debug why this JS is failing" | chrome-devtools |
| "Find the submit button by its ARIA role" | agent-browser |
| "Automate login on a site I'm already logged into" | browser-use |

## Fallback Chain

If the selected tool is unavailable, fall back in priority order:
```
agent-browser → playwright-cli
browser-use → playwright-cli
chrome-devtools → playwright-cli (for basic capture via tracing)
```

## Check Tool Availability

```bash
# playwright-cli (always available)
playwright-cli --version

# agent-browser
bash ~/.claude/skills/agent-browser/scripts/check_install.sh

# browser-use
bash ~/.claude/skills/browser-use/scripts/check_install.sh

# chrome-devtools (needs Chrome with remote debugging)
curl -s http://localhost:9222/json/version 2>/dev/null || echo "Chrome not in debug mode"
```

## Integration with api-harvester

For API capture tasks, route to `chrome-devtools` (Mode B) or instruct user to export HAR (Mode A, zero-dependency). See `api-harvester` skill for the full capture → analyze → generate workflow.

