browser
browserbase/skills
通过命令行接口(CLI)命令,使用自然语言自动化网页浏览器交互。支持本地和远程 Browserbase 会话,具备验证码解决、住宅代理和会话持久化功能。
...展开全部浏览器自动化
使用 Claude 通过 browse CLI 自动化浏览器交互。
环境检查
在运行任何浏览器命令之前,请验证 CLI 是否可用:
which browse || npm install -g browse
环境选择(本地与远程)
CLI 支持每个命令显式的环境标志。如果您不进行任何操作,当设置了 BROWSERBASE_API_KEY 时,下一个会话默认使用 Browserbase,否则使用本地环境。
本地模式
browse open <url> --local</url>启动一个干净的隔离本地浏览器browse open <url> --auto-connect</url>附加到已运行的可调试 Chrome;当没有可调试的 Chrome 时使用--localbrowse open <url> --cdp <port></port></url>附加到特定的 CDP 目标- 最佳适用场景:开发、本地主机、受信任的网站以及可复现的运行环境
远程模式(Browserbase)
browse open <url> --remote</url>启动 Browserbase 会话- 如果没有本地标志,当设置了
BROWSERBASE_API_KEY时,Browserbase 也是默认选项 - 提供:Browserbase 身份、经过验证的浏览器、自动验证码解决、住宅代理、会话持久化
- 当以下情况时使用远程模式: 目标网站有机器人检测、验证码、IP 速率限制、Cloudflare 保护或需要特定地理位置的访问
- 在 https://browserbase.com/settings 获取凭据
何时选择哪种模式
- 可重复的本地测试 / 干净状态:
browse open <url> --local</url> - 复用本地登录/Cookie:
browse open <url> --auto-connect</url> - 简单浏览(文档、维基、公共 API):本地模式即可
- 受保护的网站(登录墙、验证码、反爬取):使用远程模式
- 如果本地模式因机器人检测或访问被拒而失败:切换到远程模式
命令
守护进程启动后,大多数驱动程序命令在本地、远程和 CDP 会话中均有效。
导航
browse open <url> # 前往 URL
browse open <url> --local # 在干净的本地浏览器中前往 URL
browse open <url> --remote # 在 Browserbase 会话中前往 URL
browse reload # 重新加载当前页面
browse back # 在历史记录中后退
browse forward # 在历史记录中前进
</url></url></url>页面状态(优先使用快照而非截图)
browse snapshot # 获取带有元素引用的可访问性树(快速、结构化)
browse screenshot --path <path> # 截取视觉截图(较慢,使用视觉令牌)
browse get url # 获取当前 URL
browse get title # 获取页面标题
browse get text # 获取文本内容(使用 "body" 获取所有文本)
browse get html # 获取元素的 HTML 内容
browse get value # 获取表单字段值
</path>将 browse snapshot 作为了解页面状态的默认方式——它返回带有元素引用的可访问性树,您可以使用这些引用来进行交互。仅在需要视觉上下文(布局、图像、调试)时使用 browse screenshot。
交互
browse click <ref> # 通过快照中的引用点击元素(例如,@0-5)
browse type <text> # 在聚焦的元素中输入文本
browse fill <value> # 填充输入框;如果需要按回车键,请添加 --press-enter
browse select <values...> # 选择下拉选项
browse press <key> # 按键(Enter、Tab、Escape、Cmd+A 等)
browse mouse drag <fromx><fromy><tox><toy> # 从一点拖动到另一点
browse mouse scroll <x><y><deltax><deltay> # 在坐标处滚动
browse highlight # 高亮显示页面上的元素
browse is visible # 检查元素是否可见
browse is checked # 检查元素是否被选中
browse wait <type> [arg] # 等待:加载、选择器、超时
</type></deltay></deltax></y></x></toy></tox></fromy></fromx></key></values...></value></text></ref>会话管理
browse stop # 停止浏览器守护进程
browse status # 检查守护进程状态和已解析的模式
browse tab list # 列出所有打开的标签页
browse tab switch <index-or-target-id> # 按索引或目标 ID 切换到标签页
browse tab close [index-or-target-id] # 关闭标签页
</index-or-target-id>典型工作流
如果环境很重要,请在第一个浏览器命令上放置 --local、--remote、--auto-connect 或 --cdp <port></port>。
browse open <url> --local</url>或browse open <url> --remote</url>— 导航到页面browse snapshot— 读取可访问性树以了解页面结构并获取元素引用browse click <ref></ref>/browse type <text></text>/browse fill <value></value>— 使用快照中的引用进行交互browse snapshot— 确认操作是否成功- 根据需要重复步骤 3-4
browse stop— 完成后关闭浏览器
快速示例
browse open https://example.com
browse snapshot # 查看页面结构 + 元素引用
browse click @0-5 # 点击引用为 0-5 的元素
browse get title
browse stop
模式对比
| 功能 | 本地 | Browserbase |
|---|---|---|
| 速度 | 更快 | 稍慢 |
| 设置 | 需要 Chrome | 需要 API 密钥 |
| 复用现有本地 Cookie | 使用 `browse open | 不适用 |
| 经过验证的浏览器 | 否 | 是(通过身份实现的 Browserbase 经过验证的浏览器) |
| 验证码解决 | 否 | 是(自动 reCAPTCHA/hCaptcha) |
| 住宅代理 | 否 | 是(201 个国家/地区,地理定位) |
| 会话持久化 | 否 | 是(通过上下文持久化 Cookie/认证) |
| 最佳适用场景 | 开发/简单页面 | 受保护的网站、Browserbase 身份 + 经过验证的访问、生产环境爬取 |
最佳实践
- 有意识地选择本地策略:使用
browse open <url> --local</url>获取干净状态,使用browse open <url> --auto-connect</url>获取现有本地凭据,使用browse open <url> --remote</url>处理受保护的网站 - 交互前始终先执行
browse open - 使用
browse snapshot检查页面状态——它速度快且提供元素引用 - 仅在需要视觉上下文时截图(布局检查、图像、调试)
- 使用快照中的引用 进行点击/交互——例如,
browse click @0-5 - 完成后使用
browse stop以清理浏览器会话并清除环境覆盖
故障排除
- “没有活动页面”:运行
browse stop,然后检查browse status。如果仍显示正在运行,请使用pkill -f "browse.*daemon"杀死僵尸守护进程,然后重试browse open - 未找到 Chrome:安装 Chrome,如果您已经运行了可调试的 Chrome,请使用
browse open <url> --auto-connect</url>,或者切换到browse open <url> --remote</url> - 操作失败:运行
browse snapshot以查看可用元素及其引用 - Browserbase 失败:验证是否设置了 API 密钥
切换到远程模式
当检测到以下情况时切换到远程模式:验证码(reCAPTCHA、hCaptcha、Turnstile)、机器人检测页面(“正在检查您的浏览器...”)、HTTP 403/429、应该有内容的网站出现空页面,或者用户要求切换。
不要对简单网站(文档、维基、公共 API、本地主机)进行切换。
browse open <url> --local # 干净的隔离本地浏览器
browse open <url> --auto-connect # 附加到现有的可调试 Chrome
browse open <url> --remote # Browserbase 会话
</url></url></url>模式标志在会话启动时应用。browse stop 之后,下一次启动将回退到基于环境变量的自动检测。在守护进程运行时,使用 browse status 检查已解析的模式和目标。
有关详细示例,请参阅 EXAMPLES.md。有关 API 参考,请参阅 REFERENCE.md。
---
name: browser
description: Automate web browser interactions using natural language via CLI commands. Supports local and remote Browserbase sessions with CAPTCHA solving, residential proxies, and session persistence.
license: MIT
---
# Browser Automation
Automate browser interactions using the browse CLI with Claude.
## Setup check
Before running any browser commands, verify the CLI is available:
```bash
which browse || npm install -g browse
```
## Environment Selection (Local vs Remote)
The CLI supports explicit per-command environment flags. If you do nothing, the next session defaults to Browserbase when `BROWSERBASE_API_KEY` is set and to local otherwise.
### Local mode
- `browse open <url> --local` starts a clean isolated local browser
- `browse open <url> --auto-connect` attaches to an already-running debuggable Chrome; use `--local` when no debuggable Chrome is available
- `browse open <url> --cdp <port|url>` attaches to a specific CDP target
- Best for: development, localhost, trusted sites, and reproducible runs
### Remote mode (Browserbase)
- `browse open <url> --remote` starts a Browserbase session
- Without a local flag, Browserbase is also the default when `BROWSERBASE_API_KEY` is set
- Provides: Browserbase Identity, Verified browsers, automatic CAPTCHA solving, residential proxies, session persistence
- **Use remote mode when:** the target site has bot detection, CAPTCHAs, IP rate limiting, Cloudflare protection, or requires geo-specific access
- Get credentials at https://browserbase.com/settings
### When to choose which
- **Repeatable local testing / clean state**: `browse open <url> --local`
- **Reuse your local login/cookies**: `browse open <url> --auto-connect`
- **Simple browsing** (docs, wikis, public APIs): local mode is fine
- **Protected sites** (login walls, CAPTCHAs, anti-scraping): use remote mode
- **If local mode fails** with bot detection or access denied: switch to remote mode
## Commands
Most driver commands work across local, remote, and CDP sessions after the daemon starts.
### Navigation
```bash
browse open <url> # Go to URL
browse open <url> --local # Go to URL in a clean local browser
browse open <url> --remote # Go to URL in a Browserbase session
browse reload # Reload current page
browse back # Go back in history
browse forward # Go forward in history
```
### Page state (prefer snapshot over screenshot)
```bash
browse snapshot # Get accessibility tree with element refs (fast, structured)
browse screenshot --path <path> # Take visual screenshot (slow, uses vision tokens)
browse get url # Get current URL
browse get title # Get page title
browse get text <selector> # Get text content (use "body" for all text)
browse get html <selector> # Get HTML content of element
browse get value <selector> # Get form field value
```
Use `browse snapshot` as your default for understanding page state — it returns the accessibility tree with element refs you can use to interact. Only use `browse screenshot` when you need visual context (layout, images, debugging).
### Interaction
```bash
browse click <ref> # Click element by ref from snapshot (e.g., @0-5)
browse type <text> # Type text into focused element
browse fill <selector> <value> # Fill input; add --press-enter if Enter is needed
browse select <selector> <values...> # Select dropdown option(s)
browse press <key> # Press key (Enter, Tab, Escape, Cmd+A, etc.)
browse mouse drag <fromX> <fromY> <toX> <toY> # Drag from one point to another
browse mouse scroll <x> <y> <deltaX> <deltaY> # Scroll at coordinates
browse highlight <selector> # Highlight element on page
browse is visible <selector> # Check if element is visible
browse is checked <selector> # Check if element is checked
browse wait <type> [arg] # Wait for: load, selector, timeout
```
### Session management
```bash
browse stop # Stop the browser daemon
browse status # Check daemon status and resolved mode
browse tab list # List all open tabs
browse tab switch <index-or-target-id> # Switch to tab by index or target ID
browse tab close [index-or-target-id] # Close tab
```
### Typical workflow
If the environment matters, put `--local`, `--remote`, `--auto-connect`, or `--cdp <port|url>` on the first browser command.
1. `browse open <url> --local` or `browse open <url> --remote` — navigate to the page
2. `browse snapshot` — read the accessibility tree to understand page structure and get element refs
3. `browse click <ref>` / `browse type <text>` / `browse fill <selector> <value>` — interact using refs from snapshot
4. `browse snapshot` — confirm the action worked
5. Repeat 3-4 as needed
6. `browse stop` — close the browser when done
## Quick Example
```bash
browse open https://example.com
browse snapshot # see page structure + element refs
browse click @0-5 # click element with ref 0-5
browse get title
browse stop
```
## Mode Comparison
| Feature | Local | Browserbase |
|---------|-------|-------------|
| Speed | Faster | Slightly slower |
| Setup | Chrome required | API key required |
| Reuse existing local cookies | With `browse open <url> --auto-connect` | N/A |
| Verified browser | No | Yes (Browserbase Verified browser via Identity) |
| CAPTCHA solving | No | Yes (automatic reCAPTCHA/hCaptcha) |
| Residential proxies | No | Yes (201 countries, geo-targeting) |
| Session persistence | No | Yes (cookies/auth persist via contexts) |
| Best for | Development/simple pages | Protected sites, Browserbase Identity + Verified access, production scraping |
## Best Practices
1. **Choose the local strategy deliberately**: use `browse open <url> --local` for clean state, `browse open <url> --auto-connect` for existing local credentials, and `browse open <url> --remote` for protected sites
2. **Always `browse open` first** before interacting
3. **Use `browse snapshot`** to check page state — it's fast and gives you element refs
4. **Only screenshot when visual context is needed** (layout checks, images, debugging)
5. **Use refs from snapshot** to click/interact — e.g., `browse click @0-5`
6. **`browse stop`** when done to clean up the browser session and clear the env override
## Troubleshooting
- **"No active page"**: Run `browse stop`, then check `browse status`. If it still says running, kill the zombie daemon with `pkill -f "browse.*daemon"`, then retry `browse open`
- **Chrome not found**: Install Chrome, use `browse open <url> --auto-connect` if you already have a debuggable Chrome running, or switch to `browse open <url> --remote`
- **Action fails**: Run `browse snapshot` to see available elements and their refs
- **Browserbase fails**: Verify API key is set
## Switching to Remote Mode
Switch to remote when you detect: CAPTCHAs (reCAPTCHA, hCaptcha, Turnstile), bot detection pages ("Checking your browser..."), HTTP 403/429, empty pages on sites that should have content, or the user asks for it.
Don't switch for simple sites (docs, wikis, public APIs, localhost).
```bash
browse open <url> --local # clean isolated local browser
browse open <url> --auto-connect # attach to existing debuggable Chrome
browse open <url> --remote # Browserbase session
```
Mode flags are applied when a session starts. After `browse stop`, the next start falls back to env-var-based auto detection. Use `browse status` to inspect the resolved mode and target while the daemon is running.
For detailed examples, see [EXAMPLES.md](EXAMPLES.md).
For API reference, see [REFERENCE.md](REFERENCE.md).





首页
