# Browser Visible

当用户需要控制 browser 的浏览器启动方式时，使用本 skill。browser 默认由 Playwright 直接管理、不开放调试端口（需让其他本地工具附加时显式传...

- Repository: https://github.com/agentscope-ai/QwenPaw (37135 stars)
- Category: Testing
- License: Apache-2.0
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add agentscope-ai/QwenPaw --skill browser_visible -g -a claude-code -y`
Codex: `npx skills add agentscope-ai/QwenPaw --skill browser_visible -g -a codex -y`
Cursor: `npx skills add agentscope-ai/QwenPaw --skill browser_visible -g -a cursor -y`
Gemini CLI: `npx skills add agentscope-ai/QwenPaw --skill browser_visible -g -a gemini-cli -y`

## Description

当用户需要控制 browser 的浏览器启动方式时，使用本 skill。browser 默认由 Playwright 直接管理、不开放调试端口（需让其他本地工具附加时显式传 `cdp_port`）；`headed` 控制是否显示窗口，`private_mode` 保留用于兼容、不再改变默认行为，`browser_args` 传入额外的 Chromium 启动参数，`executable_path` 指定自定义浏览器可执行文件路径。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

> **已弃用：** 此参考服务于稳定的 `browser` 实现。启用实验模式时，请优先使用统一的 `browser` 工具。

# 浏览器启动模式

`browser.start` 的启动方式：

- 默认：Playwright 直接管理，不开放调试端口
- `cdp_port=N`：managed CDP，开放本地调试端口供其他本地工具附加（详见 browser_cdp skill）
- `private_mode=true`：与默认相同，保留用于兼容

参数含义：

- `headed`：是否显示浏览器窗口
- `private_mode`：保留用于兼容，不再改变启动方式
- `browser_args`：额外的 Chromium 启动参数（字符串），多个参数用空格分隔。适用于所有启动路径（headless、headed、managed CDP）。例如 `"--incognito"` 启用隐身模式，`"--proxy-server=http://127.0.0.1:7890"` 设置代理。默认空字符串（无额外参数）。
- `executable_path`：自定义浏览器可执行文件路径（字符串）。设置后覆盖系统默认浏览器检测，可指定任意基于 Chromium 的浏览器。例如 `"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"`。仅允许包含已知浏览器关键词（chrome、chromium、edge、firefox、brave 等）的可执行文件，且文件必须存在。默认空字符串（使用系统默认）。

以上参数互不影响，可自由组合。

## 常见用法

默认启动：
```json
{"action": "start"}
```

打开可见窗口：
```json
{"action": "start", "headed": true}
```

隐身模式：
```json
{"action": "start", "headed": true, "browser_args": "--incognito"}
```

指定浏览器路径 + 设置代理：
```json
{"action": "start", "headed": true, "browser_args": "--proxy-server=http://127.0.0.1:7890", "executable_path": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"}
```

## `private_mode`

已是默认行为，无需设置。该参数仅为兼容旧调用而保留，与 `cdp_port` 同时传入会被拒绝。

## 什么时候用 `browser_args`

当用户需要传入 Chromium 原生启动参数时使用，常见场景：

- 隐身/无痕模式（`--incognito`、`--inprivate`）
- 设置代理（`--proxy-server`）
- 指定窗口大小（`--window-size=1920,1080`）
- 禁用 GPU（`--disable-gpu`）
- 加载扩展（`--load-extension=/path/to/ext`）

参数使用 shell 风格的空格分隔，在 Windows 上会自动处理路径中的反斜杠。

## 什么时候用 `executable_path`

当用户需要使用非系统默认的浏览器时使用，常见场景：

- 系统默认是 Chrome，但用户想用 Edge
- 安装了多个浏览器，想指定某一个
- 使用便携版浏览器

注意：`executable_path` 只接受包含已知浏览器关键词（chrome、chromium、edge、firefox、brave、vivaldi、opera、360se、yandex、tor）的可执行文件，且路径必须指向一个真实存在的文件。

## 注意

- 默认由 Playwright 直接管理，不开放调试端口
- 启动方式完全由调用参数决定
- managed CDP 依赖本机存在 Chrome / Chromium / Edge
- 用户手动操作可见浏览器时，不一定会刷新 idle 计时
- `private_mode`、`browser_args`、`executable_path` 都是每次 `start` 的显式参数，不会持久保存
- 若当前已有浏览器在运行，需要先 `stop` 再重新 `start`，才能切换启动方式、窗口可见性或启动参数。
- 可见模式会占用桌面并需要图形环境，服务器或无图形环境可能无法使用。

