选项

通过命令行接口(CLI)命令,使用自然语言自动化网页浏览器交互。支持本地和远程 Browserbase 会话,具备验证码解决、住宅代理和会话持久化功能。

...展开全部
0
更新时间 2026-09-30

浏览器自动化

使用 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 时使用 --local
  • browse 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>。

  1. browse open <url> --local</url> 或 browse open <url> --remote</url> — 导航到页面
  2. browse snapshot — 读取可访问性树以了解页面结构并获取元素引用
  3. browse click <ref></ref> / browse type <text></text> / browse fill <value></value> — 使用快照中的引用进行交互
  4. browse snapshot — 确认操作是否成功
  5. 根据需要重复步骤 3-4
  6. 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 --auto-connect`不适用
经过验证的浏览器否是(通过身份实现的 Browserbase 经过验证的浏览器)
验证码解决否是(自动 reCAPTCHA/hCaptcha)
住宅代理否是(201 个国家/地区,地理定位)
会话持久化否是(通过上下文持久化 Cookie/认证)
最佳适用场景开发/简单页面受保护的网站、Browserbase 身份 + 经过验证的访问、生产环境爬取

最佳实践

  1. 有意识地选择本地策略:使用 browse open <url> --local</url> 获取干净状态,使用 browse open <url> --auto-connect</url> 获取现有本地凭据,使用 browse open <url> --remote</url> 处理受保护的网站
  2. 交互前始终先执行 browse open
  3. 使用 browse snapshot 检查页面状态——它速度快且提供元素引用
  4. 仅在需要视觉上下文时截图(布局检查、图像、调试)
  5. 使用快照中的引用 进行点击/交互——例如,browse click @0-5
  6. 完成后使用 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。

在 GitHub 上查看
---
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).

所有文件

4 个文件

安装 browser

将技能文件下载并解压至你的 .claude/skills/ 目录。

下载ZIP

克隆仓库并复制技能文件到您的项目中。

git clone https://github.com/browserbase/skills/tree/main/skills/browser # Copy SKILL.md to your .claude/skills/ directory

复制 复制
快速设置: 将技能文件夹复制到 .claude/skills/ 目录。Claude 将自动检测并使用该技能。

相关技能

github-code-search
更新时间 2026-06-29
drizzle-orm
更新时间 2026-06-29
prisma-client-api
更新时间 2026-06-29
clickhouse-io
更新时间 2026-06-29
OR