# Web Access

Routes searches, page reads and logins through a real browser.

- Repository: https://github.com/eze-is/web-access (9316 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-14
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add eze-is/web-access --skill web-access -g -a claude-code -y`
Codex: `npx skills add eze-is/web-access --skill web-access -g -a codex -y`
Cursor: `npx skills add eze-is/web-access --skill web-access -g -a cursor -y`
Gemini CLI: `npx skills add eze-is/web-access --skill web-access -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add eze-is/web-access`

## Description

所有联网操作必须通过此 skill 处理，包括：搜索、网页抓取、登录后操作、网络交互等。 触发场景：用户要求搜索信息、查看网页内容、访问需要登录的网站、操作网页界面、抓取社交媒体内容（小红书、微博、推特等）、读取动态渲染页面、以及任何需要真实浏览器环境的网络任务。

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

# web-access Skill

## 前置检查

在开始联网操作前，先检查 CDP 模式可用性；已有连接优先复用：

```bash
node "${CLAUDE_SKILL_DIR}/scripts/check-deps.mjs"
```

**Node.js 22+** 必需（使用原生 WebSocket）。

脚本先读取 `/health`：已有服务且 `connected === true` 时，校验浏览器偏好后直接使用，不重新探测浏览器、不启动第二个 Proxy；已有服务但连接断开时，由原服务重新连接。只有没有可用服务时，才发现浏览器并启动后台 Proxy。

按脚本输出处理：
- `exit 0` → 直接调用 Proxy API，不再手动启动或重启 Proxy
- `exit 2` → 尚未设置浏览器、也没有可复用的共享服务，进入首次配置（见下）
- `exit 1` → 按 stdout 错误信息处理。若提示包含「Agent 处理顺序」，按其步骤执行（如先用系统命令打开浏览器后重跑），自动可解则不打扰用户；仍失败再向用户求助。「配置错误」只需改正配置，不要为此停止或重启共享服务

**浏览器 = 它的用户数据目录。** `~/.web-access/config.env` 的 `WEB_ACCESS_BROWSER` 存数据目录路径，即含 `Local State` 的那一层（如 `~/Library/Application Support/Dia/User Data`），任何 Chromium 内核浏览器都可以；旧值 `chrome` / `chrome-canary` / `chromium` / `edge` 仍有效，按平台对应到标准目录。日常运行只读该目录里的 `DevToolsActivePort`，连不上就报错，不换浏览器、不猜端口。`--browser <数据目录路径>` 表达本次临时覆盖（不写 config.env）。

**首次配置**：按 `exit 2` 的输出逐步做，步骤以脚本输出为准。要点：脚本只列出应用数据根目录的最外层文件夹名；由你从名字认出浏览器，再用 `browser-probe.mjs` 探测（它只接受根目录下的相对路径）；无论找到几个都要问用户，再把选定的数据目录写入配置。已有健康的共享服务时，前置检查优先复用它，不会进入首次配置。

若调试端口文件不可读，脚本会报告 `EPERM/EACCES`，不要当成浏览器未开启调试。可在 `config.env` 用 `WEB_ACCESS_CDP_PORT` 为日常浏览器显式指定已核对的端口；端口归属由配置提供，不自动猜测，另一浏览器的 `--browser` 不借用此端口。

用户数据（`config.env` 与站点经验）位于用户目录下的 `~/.web-access/`（Windows 为 `%USERPROFILE%\.web-access\`），不在 skill 目录内，升级 skill 不受影响。旧版本存放在 skill 目录内的数据，由前置检查首次运行时自动复制过来，并输出一行 `user-data:` 说明。

Proxy 是全体 Agent 共用的长驻服务。普通任务不因修改代码、连接等待或任务结束重启服务。维护和切换浏览器使用跨平台的 Node 命令（将路径替换为实际 skill 路径）：

```bash
node "${CLAUDE_SKILL_DIR}/scripts/proxy-maintenance.mjs" status
node "${CLAUDE_SKILL_DIR}/scripts/proxy-maintenance.mjs" restart
```

维护命令按实例身份停止服务；有执行中的请求、未完成的 CDP 命令、Agent 标签页或连接正在建立时会拒绝停止，等任务清理完再运行。切换浏览器时先执行 `proxy-maintenance.mjs stop`，成功后再运行 `check-deps.mjs --browser <数据目录路径>`（或改写 config.env 后运行）。旧版本没有维护接口时，命令会提示一次性迁移，不自动强杀。退出码与状态字段见 [API 参考](references/cdp-api.md)。

检查通过后并必须在回复中向用户直接展示以下须知，再执行站点操作：

```
温馨提示：部分站点对浏览器自动化操作检测严格，存在账号封禁风险。已内置防护措施但无法完全避免，Agent 继续操作即视为接受。
```

## 浏览哲学与工作流

**像人一样思考，兼顾高效与适应性的完成任务。**

The rest: https://github.com/eze-is/web-access/blob/HEAD//SKILL.md
