
Web Access
Route every agent-driven network task—search, fetch, login, and dynamic pages—through a CDP-backed browser workflow with explicit dependency checks.
Overview
web-access is a journey-wide agent skill that handles search, scraping, and login-backed browser work through CDP whenever a solo builder needs live web data before committing to a build or ops action.
Install
npx skills add https://github.com/eze-is/web-access --skill web-accessWhat is this skill?
- Mandatory path for search, scraping, post-login flows, and dynamic sites (e.g. Xiaohongshu, Weibo, X) via real browser C
- Pre-flight check-deps script with Node.js 22+ and configurable WEB_ACCESS_BROWSER (Chrome/Edge)
- Human-like browsing philosophy: define success criteria, adapt paths, avoid blind retries on blocked goals
- User-visible account-risk notice before automation on strict anti-bot platforms
- CDP proxy lifecycle notes including pkill when switching browsers
- Requires Node.js 22+ for native WebSocket in the dependency check flow
- Skill metadata version 2.5.3 with MIT license
Adoption & trust: 9.9k installs on skills.sh; 7.3k GitHub stars; 1/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your agent cannot reliably search, read, or interact with real websites—including logins and dynamic SPAs—without a unified browser automation path.
Who is it for?
Builders who want one governed browser channel for research, competitor checks, and authenticated web tasks across the product lifecycle.
Skip if: Static API-only backends with no browser need, or users unwilling to accept platform ToS and account-risk on automated social logins.
When should I use this skill?
User requests search, webpage content, login-required sites, UI operations, social feeds, or any task needing a real browser per the skill description.
What do I get? / Deliverables
Network tasks run through checked CDP tooling with stated success criteria, adaptive navigation, and explicit user risk acknowledgement on strict platforms.
- Browser-mediated search and page extraction results
- Completed login or interaction flows when targets are reachable
- Documented stop conditions when goals are unreachable
Recommended Skills
Journey fit
Useful at every journey phase - explore requirements and options before committing to a direction.
Where it fits
Search and open result pages to compare positioning before choosing a product niche.
Verify a third-party OAuth or dashboard flow behind a login wall during integration work.
Collect publicly visible social posts for content repurposing with explicit ban-risk consent.
Re-check a production marketing page after deploy to confirm dynamic sections render correctly.
How it compares
Browser-CDP integration skill for agents, not a read-only docs skill or a hosted SaaS scraper with managed compliance.
Common Questions / FAQ
Who is web-access for?
Solo and indie builders whose agents must search the live web, scrape dynamic pages, or operate logged-in sessions with Chrome or Edge under local control.
When should I use web-access?
At Idea research for market discovery, Validate for competitor and pricing pages, Build when verifying integration UIs, Grow for social content reads, and Operate when checking production pages—anytime the task needs a real browser per the skill triggers.
Is web-access safe to install?
It runs local scripts, opens browsers, and warns about account ban risk on some sites; review the Security Audits panel on this Prism page and only automate accounts you accept may be restricted.
SKILL.md
READMESKILL.md - Web Access
# web-access Skill ## 前置检查 在开始联网操作前,先检查 CDP 模式可用性: ```bash node "${CLAUDE_SKILL_DIR}/scripts/check-deps.mjs" ``` **Node.js 22+** 必需(使用原生 WebSocket)。 按脚本输出处理: - `exit 0` → 继续 - `exit 2` → 需询问用户偏好,写入 `${CLAUDE_SKILL_DIR}/config.env` 的 `WEB_ACCESS_BROWSER` - `exit 1` → 按 stdout 错误信息处理。若提示包含「Agent 处理顺序」,按其步骤执行(如先用系统命令打开浏览器后重跑),自动可解则不打扰用户;仍失败再向用户求助 支持参数 `--browser <chrome|edge>` 表达本次临时覆盖(不写 config.env)。 切换浏览器时,proxy 是长驻进程,需先 `pkill -f cdp-proxy.mjs` 再重跑 check-deps。 检查通过后并必须在回复中向用户直接展示以下须知,再启动 CDP Proxy 执行操作: ``` 温馨提示:部分站点对浏览器自动化操作检测严格,存在账号封禁风险。已内置防护措施但无法完全避免,Agent 继续操作即视为接受。 ``` ## 浏览哲学 **像人一样思考,兼顾高效与适应性的完成任务。** 执行任务时不会过度依赖固有印象所规划的步骤,而是带着目标进入,边看边判断,遇到阻碍就解决,发现内容不够就深入——全程围绕「我要达成什么」做决策。这个 skill 的所有行为都应遵循这个逻辑。 **① 拿到请求** — 先明确用户要做什么,定义成功标准:什么算完成了?需要获取什么信息、执行什么操作、达到什么结果?这是后续所有判断的锚点。 **② 选择起点** — 根据任务性质、平台特征、达成条件,选一个最可能直达的方式作为第一步去验证。一次成功当然最好;不成功则在③中调整。比如,需要操作页面、需要登录态、已知静态方式不可达的平台(小红书、微信公众号等)→ 直接 CDP **③ 过程校验** — 每一步的结果都是证据,不只是成功或失败的二元信号。用结果对照①的成功标准,更新你对目标的判断:路径在推进吗?结果的整体面貌(质量、相关度、量级)是否指向目标可达?发现方向错了立即调整,不在同一个方式上反复重试——搜索没命中不等于"还没找对方法",也可能是"目标不存在";API 报错、页面缺少预期元素、重试无改善,都是在告诉你该重新评估方向。遇到弹窗、登录墙等障碍,判断它是否真的挡住了目标:挡住了就处理,没挡住就绕过——内容可能已在页面 DOM 中,交互只是展示手段。 **④ 完成判断** — 对照定义的任务成功标准,确认任务完成后才停止,但也不要过度操作,不为了"完整"而浪费代价。 ## 联网工具选择 - **确保信息的真实性,一手信息优于二手信息**:搜索引擎和聚合平台是信息发现入口。当多次搜索尝试后没有质的改进时,升级到更根本的获取方式:定位一手来源(官网、官方平台、原始页面)。 | 场景 | 工具 | |------|------| | 搜索摘要或关键词结果,发现信息来源 | **WebSearch** | | URL 已知,需要从页面定向提取特定信息 | **WebFetch**(拉取网页内容,由小模型根据 prompt 提取,返回处理后结果) | | URL 已知,需要原始 HTML 源码(meta、JSON-LD 等结构化字段) | **curl** | | 非公开内容,或已知静态层无效的平台(小红书、微信公众号等公开内容也被反爬限制) | **浏览器 CDP**(直接,跳过静态层) | | 需要登录态、交互操作,或需要像人一样在浏览器内自由导航探索 | **浏览器 CDP** | 浏览器 CDP 不要求 URL 已知——可从任意入口出发,通过页面内搜索、点击、跳转等方式找到目标内容。WebSearch、WebFetch、curl 均不处理登录态。 **Jina**(可选预处理层,可与 WebFetch/curl 组合使用,由于其特性可节省 tokens 消耗,请积极在任务合适时组合使用):第三方网络服务,可将网页转为 Markdown,大幅节省 token 但可能有信息损耗。调用方式为 `r.jina.ai/example.com`(URL 前加前缀,不保留原网址 http 前缀),限 20 RPM。适合文章、博客、文档、PDF 等以正文为核心的页面;对数据面板、商品页等非文章结构页面可能提取到错误区块。 进入浏览器层后,`/eval` 就是你的眼睛和手: - **看**:用 `/eval` 查询 DOM,发现页面上的链接、按钮、表单、文本内容——相当于「看看这个页面有什么」 - **做**:用 `/click` 点击元素、`/scroll` 滚动加载、`/eval` 填表提交——像人一样在页面内自然导航 - **读**:用 `/eval` 提取文字内容,判断图片/视频是否承载核心信息——是则提取媒体 URL 定向读取或 `/screenshot` 视觉识别 浏览网页时,**先了解页面结构,再决定下一步动作**。不需要提前规划所有步骤。 ### 补充:本地浏览器资源 用户指向**本人访问过的页面**("我之前看的那个讲 X 的文章"、"上次打开过的 XX 面板")或**组织内部系统**("我们的 XX 平台"、"公司那个 YY 系统"等公网搜不到的目标)时,检索本地浏览器(Chrome / Edge)书签/历史: ```bash node "${CLAUDE_SKILL_DIR}/scripts/find-url.mjs" [关键词...] [--only bookmarks|history] [--browser chrome|edge] [--limit N] [--since 1d|7h|YYYY-MM-DD] [--sort recent|visits] ``` 关键词空格分词、多词 AND,匹配 title + url(可省略);默认遍历所有已安装的 Chromium 系浏览器(Chrome、Edge),`--browser` 限定单一来源;`--since` / `--sort` 仅作用于历史;默认按最近访问倒序,`--sort visits` 按访问次数排序(适合"高频访问的网站"这类场景)。 ### 程序化操作与 GUI 交互 浏览器内操作页面有两种方式: - **程序化方式**(构造 URL 直接导航、eval 操作 DOM):成功时速度快、精确,但对网站来说不是正常用户行为,可能触发反爬机制。 - **GUI 交互**(点击按钮、填写输入框、滚动浏览):GUI 是为人设计的,网站不会限制正常的 UI 操作,确定性最高,但步骤多、速度慢。 根据对目标平台的了解来灵活选择方式。GUI 交互也是程序化方式的有效探测——通过一次真实交互观察站点的实际行为(URL 模式、必需参数、页面跳转逻辑),为后续程序化操作提供依据;同时当程序化方式受阻时,GUI 交互是可靠的兜底。 **站点内交互产生的链接是可靠的**:通过用户视角中的可交互单元(卡片、条目、按钮)进行的站点内交互,自然到达的 URL 天然携带平台所需的完整上下文。而手动构造的 URL 可能缺失隐式必要参数,导致被拦截、返回错误页面、甚至触发反爬。 ## 浏览器 CDP 模式 通过 CDP Proxy 直连用户日常浏览器(Chrome / Edge / Chromium 等 Chromium 系),天然携带登录态,无需启动独立浏览器。 若无用户明确要求,不主动操作用户已有 tab,所有操作都在自己创建的后台 tab 中进行,保持对用户环境的最小侵入。不关闭用户 tab 的前提下,完成任务后关闭自己创建的 tab,保持环境整洁。 ### 启动 ```bash node "${CLAUDE_SKILL_DIR}/scripts/check-deps.mjs" ``` 脚本会依次检查 Node.js、浏览器调试端口,并确保 Proxy 已连接(未运行则自动启动并等待)。Proxy 启动后持续运行。 ### Proxy API 所有操作通过 curl 调用 HTTP API: ```bash # 列出用户已打开的 tab curl -s http://localhost:3456/targets # 创建新后台 tab(自动等待加载)— URL 走 POST body,避免目标 URL 含 query 时被切分 curl -s -X POST --data-raw 'https://example.com' http://localhost:3456/