Skip to main content

browser-automation

浏览器工作流总路由:为外部网站浏览、登录态流程、浏览器自动化、证据采集选择合适后端。 Use when: 需要操作外部网站、登录页、JS 重页面、没有 webfetch/VL 但需要浏览器、或需要在多种浏览器工具之间路由。 Not for: localhost 页面预览(用 browser-preview)、本地 WebApp 确定性测试(用 webapp-testing)、简单网页抓取/搜索。 Output: 选定浏览器后端 + 执行路径 + 证据/结果。

Source facts

Repository
zts212653/clowder-ai
Last source activity
June 17, 2026 at 07:19
Detected SKILL.md language
Chinese
Stars
3,283
Forks
826

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
5 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
browser-automation
description
浏览器工作流总路由:为外部网站浏览、登录态流程、浏览器自动化、证据采集选择合适后端。 Use when: 需要操作外部网站、登录页、JS 重页面、没有 webfetch/VL 但需要浏览器、或需要在多种浏览器工具之间路由。 Not for: localhost 页面预览(用 browser-preview)、本地 WebApp 确定性测试(用 webapp-testing)、简单网页抓取/搜索。 Output: 选定浏览器后端 + 执行路径 + 证据/结果。
triggers
["浏览器自动化","browser mcp","用浏览器","登录网站","登录态","agent-browser","pinchtab","playwriter","playwright mcp","没有 webfetch","无 webfetch","没有 vl"]
# Browser Automation 这是家里的**上层浏览器路由 skill**。 它只做三件事: - 判断这次任务该不该用浏览器 - 选择合适的浏览器后端 - 把任务转给更具体的 skill / ref,而不是在这里重复厂商文档 ## 执行前四问 在真正打开浏览器前,先回答这四个问题: 1. **真的需要浏览器吗?** 如果只是读文档、抓纯文本、做搜索,不要默认上浏览器。 2. **目标是 localhost 还是外部网站?** `localhost` → `browser-preview`;外部网站才留在本 skill。 3. **这只猫的客户端能力是什么?** MCP 原生、CLI-only、是否有 `webfetch`、是否能跑 shell、是否有 VL。 4. **这次任务的 session 属于谁?** 是匿名访问、猫自己的浏览器会话、还是接手人类已登录会话。 ## 什么时候用 - 目标是**外部网站**,需要真实浏览器执行 JS、登录、点按钮、下载、截图 - 猫没有 `webfetch`,或者 `webfetch` 不足以完成交互 - 需要在 `agent-browser` / `Playwright MCP` / `Playwriter` / `PinchTab` 之间做路由 - 需要明确“这类浏览器任务的默认打法是什么” ## 不要用在这里 - `localhost` 页面预览、HMR、给operator看效果 → 用 `browser-preview` - 本地 WebApp 的确定性测试、Console、截图、回归验证 → 用 `webapp-testing` - 简单网页抓取、官方文档阅读、搜索结果整理 → 优先用更轻量的搜索 / fetch 工具,不要先上浏览器 - 已有领域专用浏览器 skill 的任务 → 专用 skill 优先 ## 默认路由顺序 1. **先问:真的需要浏览器吗?** 如果只是读文档、抓纯文本、做搜索,不要默认上浏览器。 2. **目标是 localhost 吗?** 是 → `browser-preview` 3. **目标是本地 WebApp 验证吗?** 是 → `webapp-testing` 4. **客户端已经有稳定可用的 Playwright MCP 吗?** 是 → `refs/playwright-mcp.md`(MCP ID: `playwright`) 5. **需要接手人类已登录的 Chrome、复杂 iframe、多 tab 调试吗?** 是 → 用 `claude-in-chrome` MCP(工具前缀 `mcp__claude-in-chrome__*`),参考 `refs/playwriter.md` 6. **这是 CLI 型猫,没 webfetch / 没 VL,但能跑命令吗?** 是 → `refs/agent-browser.md`(MCP ID: `agent-browser`,社区 wrapper,使用前先做本机验活) 7. **需要长驻 daemon、持久 session、HTTP-first 服务吗?** 是 → `refs/pinchtab.md`(MCP ID: `pinchtab`,优先 native binary `pinchtab mcp`,不要默认相信 npm wrapper) ## 路由矩阵 | 场景 | 默认 | MCP ID | 状态 | |------|------|--------|------| | 本地前端页面预览 | `browser-preview` | — | 独立 skill | | 本地 WebApp 测试 / 回归 | `webapp-testing` + Playwright | `playwright` | 已接入 | | MCP 原生客户端的常规网页自动化 | `Playwright MCP` | `playwright` | ✅ 已接入 — `npx @playwright/mcp@latest` | | 已登录 Chrome、iframe-heavy、手工接管 | `claude-in-chrome` | `claude-in-chrome` | ✅ 已接入 — Chrome 扩展管理,无需手动启动 | | CLI 型猫、没 webfetch / 没 VL | `agent-browser` | — (CLI 工具) | ✅ 可用 — `npm i -g agent-browser`,通过 Bash tool 调 CLI | | 服务化浏览器、持久化 session、重复批任务 | `PinchTab` | `pinchtab` | ✅ 已接入 — native binary `pinchtab mcp`(外网 URL 用 eval 导航,见 ref) | ## 常用组合打法 | 目标 | 组合 | 说明 | |------|------|------| | 外部网站调研 + 本地页面实现 | `browser-automation` + `browser-preview` | 前者看参考站,后者看我们自己的 localhost | | 本地 WebApp 开发验收 | `browser-preview` + `webapp-testing` | 一个看效果,一个做确定性验证 | | 接手人类已登录会话 | `browser-automation` + `refs/playwriter.md` | 明确是谁的 session,再做操作 | | 重复批量抓取 / 长驻任务 | `browser-automation` + `refs/pinchtab.md` | 不是临时调试,而是服务化执行 | ## 读取哪些 refs | Ref | MCP ID | 场景 | |-----|--------|------| | `refs/playwright-mcp.md` | `playwright` | 常规 MCP 原生网页自动化(默认) | | `refs/playwriter.md` | `claude-in-chrome` | 已登录 Chrome / iframe-heavy / 多 tab(实际用 `mcp__claude-in-chrome__*` 工具) | | `refs/agent-browser.md` | — (CLI 工具) | CLI 型猫 / 无 webfetch / 无 VL | | `refs/pinchtab.md` | `pinchtab` | 服务化、持久 session、HTTP-first | ## 交付要求 每次真正使用浏览器后端,至少说清楚这四件事: - **用了哪个后端**,为什么不是另一个 - **目标站点 / 路径** 是什么 - **是否涉及登录态**;如果涉及,是谁的 session - **留下了什么证据**:截图、提取文本、Console、下载文件、操作结果 如果任务涉及人类账号: - 不要默认代替人类登录敏感站点 - 明确说明是否是“接手现有已登录会话” - 结束时说明是否保留了 session / cookie / tab 状态 ## Common Mistakes | 错误 | 后果 | 修复 | |------|------|------| | 把 `browser-preview` 并进本 skill | localhost 和外部网站边界糊掉 | 保持独立 skill,只在这里路由 | | 默认所有猫都装同一套浏览器后端 | CLI/MCP/登录态需求互相打架 | 先按场景选,再按客户端能力落工具 | | 在主 skill 里复制厂商文档 | 一改后端就大面积漂移 | 厂商细节压到 `refs/` | | 简单抓取先上浏览器 | 成本高、速度慢、失败面更大 | 先判断是否能用更轻量工具 | | 把本地测试和外部网站操作混成一个动作 | 路由混乱,证据链不清楚 | `localhost` 和外部网站分开处理 | | 登录态责任不清楚就开干 | 容易误用人类 session | 先说清 session 属于谁,再动手 | | 做完只说”好了”不留证据 | 后续无法验收或复现 | 至少交付 URL/截图/文本/日志中的一种 | | PinchTab 外网用 `pinchtab_navigate` | Clash TUN 下 403(Go 层 DNS 预检拦截 `198.18.x.x`) | 用 `pinchtab_eval` + `window.location.href` 导航,详见 `refs/pinchtab.md` | ## 和其他 skill 的区别 | Skill | 关注点 | |-------|--------| | `browser-automation` | 外部网站浏览器工具的总路由和选型 | | `browser-preview` | Hub 内预览 localhost 页面 | | `webapp-testing` | 用 Playwright 做本地 WebApp 验证 | | 领域专用浏览器 skill | 某个网站 / 某类提取任务的专用流程 | ## 下一步 - `localhost` 页面 → `browser-preview` - 本地 WebApp 验证 → `webapp-testing` - 其余外部网站任务 → 读取匹配的 `refs/*.md` 后执行
View on GitHub