web-access-openclaw
所有联网操作必须通过此 skill 处理,包括:搜索、网页抓取、登录后操作、网络交互等。 触发场景:用户要求搜索信息、查看网页内容、访问需要登录的网站、操作网页界面、抓取社交媒体内容(小红书、微博、推特等)、读取动态渲染页面、以及任何需要真实浏览器环境的网络任务。 Skill: web-access-openclaw Owner: ysyyrps777 Summary: 所有联网操作必须通过此 skill 处理,包括:搜索、网页抓取、登录后操作、网络交互等。 触发场景:用户要求搜索信息、查看网页内容、访问需要登录的网站、操作网页界面、抓取社交媒体内容(小红书、微博、推特等)、读取动态渲染页面、以及任何需要真实浏览器环境的网络任务。 Tags: browser:1.0.0, cdp:1.0.0, latest:1.0.0, openclaw:1.0.0, web:1.0.0 Version history: v1.0.0 | 2026-03-31T07:55:46.607Z | user Adapted web-access for OpenClaw custom skills, cleaned the published skill layout, validated Chrome CDP
Rank
62
Safety
84
Downloads
1.8k
Updated
Oct 10, 2026
Version
1.0.0
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.8K downloads reported by the source. Last updated 10/10/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 10, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 10, 2026
- Adoption signal
- 1.8K downloadsadoption · observed Oct 10, 2026
- Latest release
- 1.0.0release · observed Mar 31, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17c2bk516mv82a744f6mj6v1h83z1x9:web-access-openclaw- Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-ysyyrps777-web-access-openclaw/snapshot"
Documentation
CLAWHUB
18,096 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
--- name: web-access license: MIT github: https://github.com/eze-is/web-access description: 所有联网操作必须通过此 skill 处理,包括:搜索、网页抓取、登录后操作、网络交互等。 触发场景:用户要求搜索信息、查看网页内容、访问需要登录的网站、操作网页界面、抓取社交媒体内容(小红书、微博、推特等)、读取动态渲染页面、以及任何需要真实浏览器环境的网络任务。 metadata: author: 一泽Eze version: "2.4.1" --- # web-access Skill ## 前置检查 在开始联网操作前,先检查 CDP 模式可用性: ```bash node "$CLAUDE_SKILL_DIR/scripts/check-deps.mjs" ``` - **Node.js 22+**:必需(使用原生 WebSocket)。版本低于 22 可用但需安装 `ws` 模块。 - **Chrome remote-debugging**:在 Chrome 地址栏打开 `chrome://inspect/#remote-debugging`,勾选 **"Allow remote debugging for this browser instance"** 即可,可能需要重启浏览器。 检查通过后再启动 CDP Proxy 执行操作,未通过则引导用户完成设置。 ## 浏览哲学 **像人一样思考,兼顾高效与适应性的完成任务。** 执行任务时不会过度依赖固有印象所规划的步骤,而是带着目标进入,边看边判断,遇到阻碍就解决,发现内容不够就深入——全程围绕「我要达成什么」做决策。这个 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` 视觉识别 浏览网页时,**先了解页面结构,再决定下一步动作**。不需要提前规划所有步骤。 ### 程序化操作与 GUI 交互 浏览器内操作页面有两种方式: - **程序化方式**(构造 URL 直接导航、eval 操作 DOM):成功时速度快、精确,但对网站来说不是正常用户行为,更容易触发反爬机制。 - **GUI 交互**(点击按钮、填写输入框、滚动浏览):GUI 是为人设计的,网站不会限制正常的 UI 操作,确定性最高,但步骤多、速度慢。 根据对目标平台的了解来判断。当程序化方式受阻时,GUI 交互是可靠的兜底。 **站点内 URL 的可靠性**:站点自己生成的链接(DOM 中的 href)天然携带平台所需的完整上下文,而手动构造的 URL 可能缺失隐式必要参数,导致被拦截、返回错误页面、甚至触发反爬。当构造的 URL 出现这类异常时,应考虑是否是缺失参数所致。 ## 浏览器 CDP 模式 通过 CDP Proxy 直连用户日常 Chrome,天然携带登录态,无需启动独立浏览器。 若无用户明确要求,不主动操作用户已有 tab,所有操作都在自己创建的后台 tab 中进行,保持对用户环境的最小侵入。不关闭用户 tab 的前提下,完成任务后关闭自己创建的 tab,保持环境整洁。 ### 启动 ```bash node "$CLAUDE_SKILL_DIR/scripts/check-deps.mjs" ``` 脚本会依次检查 Node.js、Chrome 端口,并确保 Proxy 已连
README.md
# web-access-openclaw
An OpenClaw-adapted version of [`eze-is/web-access`](https://github.com/eze-is/web-access), packaged as a custom OpenClaw skill for browser-backed web tasks with session reuse.
## What this is
This repository adapts the original `web-access` skill so it can be dropped into OpenClaw's custom skills directory and used for real browser automation through the user's existing Chrome session.
It is intended for tasks such as:
- searching and reading dynamic websites
- using logged-in browser sessions via CDP
- interacting with real web UIs instead of static fetches
- handling sites that require JavaScript, authentication, or human-like flows
## What was adapted for OpenClaw
This repo keeps the skill focused and publishable as an OpenClaw custom skill:
- cleaned skill layout (`SKILL.md`, `scripts/`, `references/`)
- removed Claude plugin packaging artifacts from the published skill folder
- validated on Windows with OpenClaw + Chrome remote debugging
- confirmed CDP proxy startup and browser-session reuse
- tested a real browser-session flow against Xiaohongshu creator publishing
## Install in OpenClaw
Copy this folder into your OpenClaw custom skills directory:
```text
~/.openclaw/workspace/skills/web-access
```
OpenClaw already loads custom skills from the workspace skills directory when configured with:
```json
{
"skills": {
"load": {
"extraDirs": ["~/.openclaw/workspace/skills"]
}
}
}
```
## Requirements
- Node.js 22+
- Google Chrome with remote debugging enabled
- A live Chrome profile/session for sites that need login
- OpenClaw running on the same machine
## Chrome setup
Enable Chrome remote debugging from:
```text
chrome://inspect/#remote-debugging
```
Enable **Allow remote debugging for this browser instance**.
## How it works
The skill uses a local CDP proxy to connect to the user's normal Chrome browser, so it can:
- reuse logged-in sessions
- open background tabs
- read dynamic DOM content
- click, scroll, upload files, and submit forms
- operate on sites that do not work well through static scraping alone
## Tested status
Validated locally on Windows with OpenClaw:
- Node.js detected successfully
- Chrome remote debugging reachable
- CDP proxy reported ready
- browser targets visible through proxy
- logged-in session reuse confirmed
- Xiaohongshu creator flow tested, including text-to-image posting and publish success
## Safety notes
This skill can operate inside real logged-in browser sessions. That is powerful and risky.
Recommended practice:
- require explicit user confirmation before posting, publishing, submitting, deleting, or changing account data
- prefer read-only inspection before write actions
- avoid touching existing user tabs unless necessary
## Upstream source and attribution
This adaptation is based on the original project by **一泽 Eze**:
- Upstream: https://github.com/eze-is/web-access
The original project is MIT licensed. This repository is an OpenClaw-orien_meta.json
{
"ownerId": "kn7398tkrvmyqqv006mhjsq4r183yjn2",
"slug": "web-access-openclaw",
"version": "1.0.0",
"publishedAt": 1774943746607
}references/cdp-api.md
# CDP Proxy API 参考
## 基础信息
- 地址:`http://localhost:3456`
- 启动:`node ~/.claude/skills/web-access/scripts/cdp-proxy.mjs &`
- 启动后持续运行,不建议主动停止(重启需 Chrome 重新授权)
- 强制停止:`pkill -f cdp-proxy.mjs`
## API 端点
### GET /health
健康检查,返回连接状态。
```bash
curl -s http://localhost:3456/health
```
### GET /targets
列出所有已打开的页面 tab。返回数组,每项含 `targetId`、`title`、`url`。
```bash
curl -s http://localhost:3456/targets
```
### GET /new?url=URL
创建新后台 tab,自动等待页面加载完成。返回 `{ targetId }`.
```bash
curl -s "http://localhost:3456/new?url=https://example.com"
```
### GET /close?target=ID
关闭指定 tab。
```bash
curl -s "http://localhost:3456/close?target=TARGET_ID"
```
### GET /navigate?target=ID&url=URL
在已有 tab 中导航到新 URL,自动等待加载。
```bash
curl -s "http://localhost:3456/navigate?target=ID&url=https://example.com"
```
### GET /back?target=ID
后退一页。
```bash
curl -s "http://localhost:3456/back?target=ID"
```
### GET /info?target=ID
获取页面基础信息(title、url、readyState)。
```bash
curl -s "http://localhost:3456/info?target=ID"
```
### POST /eval?target=ID
执行 JavaScript 表达式,POST body 为 JS 代码。
```bash
curl -s -X POST "http://localhost:3456/eval?target=ID" -d 'document.title'
```
### POST /click?target=ID
JS 层面点击(`el.click()`),POST body 为 CSS 选择器。自动 scrollIntoView 后点击。简单快速,覆盖大多数场景。
```bash
curl -s -X POST "http://localhost:3456/click?target=ID" -d 'button.submit'
```
### POST /clickAt?target=ID
CDP 浏览器级真实鼠标点击(`Input.dispatchMouseEvent`),POST body 为 CSS 选择器。先获取元素坐标,再模拟鼠标按下/释放。算真实用户手势,能触发文件对话框、绕过部分反自动化检测。
```bash
curl -s -X POST "http://localhost:3456/clickAt?target=ID" -d 'button.upload'
```
### POST /setFiles?target=ID
给 file input 设置本地文件路径(`DOM.setFileInputFiles`),完全绕过文件对话框。POST body 为 JSON。
```bash
curl -s -X POST "http://localhost:3456/setFiles?target=ID" -d '{"selector":"input[type=file]","files":["/path/to/file1.png","/path/to/file2.png"]}'
```
### GET /scroll?target=ID&y=3000&direction=down
滚动页面。`direction` 可选 `down`(默认)、`up`、`top`、`bottom`。滚动后自动等待 800ms 供懒加载触发。
```bash
curl -s "http://localhost:3456/scroll?target=ID&y=3000"
curl -s "http://localhost:3456/scroll?target=ID&direction=bottom"
```
### GET /screenshot?target=ID&file=/tmp/shot.png
截图。指定 `file` 参数保存到本地文件;不指定则返回图片二进制。可选 `format=jpeg`。
```bash
curl -s "http://localhost:3456/screenshot?target=ID&file=/tmp/shot.png"
```
## /eval 使用提示
- POST body 为任意 JS 表达式,返回 `{ value }` 或 `{ error }`
- 支持 `awaitPromise`:可以写 async 表达式
- 返回值必须是可序列化的(字符串、数字、对象),DOM 节点不能直接返回,需要提取属性
- 提取大量数据时用 `JSON.stringify()` 包裹,确保返回字符串
- 根据页面实际 DOM 结构编写选择器,不要套用固定模板
## 错误处理
| 错误 | 原因 | 解决 |
|------|------|------|
| `Chrome 未开启远程调试端口` | Chrome 未开启远程调试 | 提示用户打开 `chrome://inspect/#remote-debugging` 并勾选 Allow |
| `attach 失败` | targetId 无效或 tab 已关闭 | 用 `/targets` 获取最新列表 |
| `CDP 命令超时` | 页面长时间未响应 | 重试或检查 tab 状态 |
| `端口已被占用` | 另一个 proxy 已在运行 | 已有实例可直接复用 |ATTRIBUTION.md
# Attribution This repository adapts the upstream project below for use as an OpenClaw custom skill: - Original project: `eze-is/web-access` - Upstream URL: https://github.com/eze-is/web-access - Original author: 一泽 Eze - Upstream license: MIT What this adaptation changed: - prepared the repository as an OpenClaw custom skill folder - removed non-skill packaging artifacts from the published skill tree - validated runtime behavior in an OpenClaw environment on Windows - verified browser-session-backed automation through Chrome CDP This adaptation should be understood as a packaging/integration layer for OpenClaw usage, not a replacement for the upstream project's authorship or identity.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/ysyyrps777/skills/web-access-openclaw",
"sourceUrl": "https://clawhub.ai/ysyyrps777/skills/web-access-openclaw",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T02:23:10.357Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-ysyyrps777-web-access-openclaw/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-ysyyrps777-web-access-openclaw/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-10T02:23:10.357Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.8K downloads",
"href": "https://clawhub.ai/ysyyrps777/web-access-openclaw",
"sourceUrl": "https://clawhub.ai/ysyyrps777/web-access-openclaw",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T02:23:10.357Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.0.0",
"href": "https://clawhub.ai/ysyyrps777/web-access-openclaw",
"sourceUrl": "https://clawhub.ai/ysyyrps777/web-access-openclaw",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-03-31T07:55:46.607Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-ysyyrps777-web-access-openclaw/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-ysyyrps777-web-access-openclaw/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.0.0",
"description": "Adapted web-access for OpenClaw custom skills, cleaned the published skill layout, validated Chrome CDP session reuse on Windows, and tested a real Xiaohongshu creator publish flow through the browser-backed skill.",
"href": "https://clawhub.ai/ysyyrps777/web-access-openclaw",
"sourceUrl": "https://clawhub.ai/ysyyrps777/web-access-openclaw",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-03-31T07:55:46.607Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
