chrome-agent-bridgelisted
Install: claude install-skill Zuhair-01/chrome-agent-bridge
# chrome-agent-bridge (cab)
You control a real Chrome through shell verbs. Every verb prints compact text made
for you — refs stay stable per page, every command is hard-bounded by `CAB_TIMEOUT`
(default 45s) so nothing hangs your turn.
## Startup reflex
1. `cab tabs` → if ERROR no-session: `cab launch` (add `--headless` for CI/quiet work,
`--profile <name>` to keep logins).
2. `cab goto <url>` then `cab tree`.
## Verb playbook
| Goal | Do |
|---|---|
| See what's clickable | `cab tree` (returns `ref_N: tag "text" [x,y w×h]`) |
| Find something specific | `cab find "sign in"` (text/aria/placeholder search) |
| Read page content | `cab read` |
| Click | `cab click ref_7` (real mouse events; output = post-click tree) |
| Fill a field | `cab type ref_12 "text"` (clicks ref first) |
| Submit / keys | `cab press Enter`, `Escape`, `Tab`, `ArrowDown`… |
| Wait for UI | `cab waitfor "Dashboard" --timeout 20` |
| Visual check | `cab see` → returns PNG path; READ the file to actually look |
| Debug network | `cab net [filter]` · console: `cab console` |
| Arbitrary JS | `cab js "document.title"` |
## Discipline (non-negotiable)
1. **Refs go stale after navigation** — re-run `tree`/`find` after any `goto` or a
click that navigates; never reuse old refs blindly.
2. **Two strikes rule**: if a verb errors twice, change approach (different selector
text, `js` fallback, or report the blocker) — never retry-loop.
3. **Verify before claiming success**: after flows (login, submi