browser-clilisted
Install: claude install-skill yangwhale/CloseCrab
# browser-cli — 命令行驱动浏览器
## 为什么不用 chrome-devtools-mcp
慢的根因不是 CDP,是 **LLM 往返次数 × 每次注入的 token 量**。MCP 的
`take_snapshot` 一次回 15-20K token 的完整 a11y 树;`agent-browser snapshot -i`
只回可交互元素,约 350 token。40-50 倍差距,而且 MCP 的工具定义本身还常驻
system prompt。
浏览器操作天然是往复的(看→点→再看),所以**降低每一轮的成本**比"一次编好所有动作"现实。
**仍然用 chrome-devtools-mcp 的场景**:Lighthouse 审计、heap snapshot、
performance trace。这三样 agent-browser 不提供。
## 先确认 Chrome 在哪台机器
`ab` 默认假设 Chrome 在**远程** cloudtop,每条命令都 ssh 过去。但 Chrome 也可能
就跑在**本机** —— 这时 ssh 别名往往早就不通,`doctor.sh` 一路 FAIL,看起来像
"工具坏了",其实只是走错了路。
先判断:
```bash
curl -s http://127.0.0.1:9222/json/version # 有输出 = Chrome 在本机
```
本机就用 `abl`(直连,不走 ssh),远程才用 `ab`:
```bash
abl get url
abl batch "open <url>" "get url" "eval document.title"
```
`abl` = `~/.claude/skills/browser-cli/scripts/ab.local`,已链到 `~/.local/bin/abl`。
## 前置检查
新机器 / 长时间没用,先跑:
```bash
~/.claude/skills/browser-cli/scripts/doctor.sh
```
依赖装在**远端 cloudtop**(不在仓库里):ssh 别名可达、nvm node 24 上装了
`agent-browser`、那个**已登录公司账号**的 Chrome 带 `--remote-debugging-port=9222` 启动。
## 第一层:通用浏览器驱动
```bash
ab --where # 当前目标机
ab --use local # 本机 cc-tw 的 Chrome(不走 ssh)
ab --use bj | hk # 切北京 glinux_bj / 香港 glinux(Chris 人在哪用哪台)
AB_HOST=glinux ab ... # 单次覆盖
ab open <url>
ab snapshot -i # 只列可交互元素(省 token 的关键)
ab diff snapshot # 只回与上次快照的差异
ab click @e5
ab fill @e2 "text"
ab get text @e3
ab get url
ab eval 'document.title' # 注意是 eval,不是 js
ab skills get core --full # 官方用法速查
```
#