cdp-browser: 控制 Chrome 并自动化浏览器会话 - Openclaw Skills
作者:互联网
2026-03-30
什么是 cdp-browser?
cdp-browser 技能允许您的 AI 代理通过 Chrome DevTools Protocol (CDP) 与运行中的浏览器实例进行无缝交互。与标准的无头自动化工具不同,此技能连接到 localhost:9222 上的持久会话,允许 Openclaw Skills 在 Gmail、X (T@witter) 或公司内部门户等已登录账户中执行操作,而无需每次处理复杂的身份验证流程。
通过结合直接的 CDP 封装器和 Playwright 脚本,此技能为开发者提供了一个桥梁,以自动化真实的浏览任务。无论是导航到 URL、关闭模态弹出窗口还是执行自定义 JavaScript,cdp-browser 都为 Openclaw Skills 生态系统内的高保真浏览器控制提供了所需的技术深度。
下载入口:https://github.com/openclaw/skills/tree/main/skills/gostlightai/cdp-browser
安装与下载
1. ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install cdp-browser
2. 手动安装
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置
3. 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 cdp-browser。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
cdp-browser 应用场景
- 使用持久的已登录浏览器会话在 X 上自动化社交媒体发布。
- 捕获动态 Web 仪表板的全页面截图以进行自动化报告。
- 从复杂的单页面应用 (SPA) 中抓取特定元素文本或 HTML。
- 在研究任务期间以编程方式管理和检查多个浏览器标签页。
- 关闭干扰自动化 Web 导航的持久弹出窗口和模态框。
- 过程始于用户启动启用了 --remote-debugging-port=9222 标志的 Chrome 或 Chromium 实例。
- cdp-browser 技能使用专用的 CLI 脚本建立与调试端口的连接。
- 代理发布诸如 status、new 或 scroll 等特定命令,这些命令被转换为协议级指令或 Playwright 操作。
- 对于社交媒体自动化,该技能针对特定的 UI 选择器,根据用户当前的登录状态起草或发布内容。
- 反馈(如截图文件或标签页元数据)将返回给代理,以告知自动化工作流中的下一步。
cdp-browser 配置指南
首先,确保 Chromium 运行时启用了远程调试端口:
chromium --remote-debugging-port=9222
要启用 Openclaw Skills 的 T@elegrimm 确认按钮等交互功能,必须在工作区中设置配置文件:
# 在技能目录下执行:
cp .cdp-browser.json.example ~/.openclaw/workspace/.cdp-browser.json
确保配置文件正确位于 ~/.openclaw/workspace/.cdp-browser.json,以便代理识别您的偏好设置。
cdp-browser 数据架构与分类体系
cdp-browser 技能利用特定的文件结构和元数据格式来跟踪 Openclaw Skills 中的会话状态:
| 数据点 | 格式 | 描述 |
|---|---|---|
| .cdp-browser.json | JSON | 用于推文确认设置和全局行为的配置文件。 |
| pending-tweet.json | JSON | 使用 save-pending 工作流时推文草稿的临时存储。 |
| 快照输出 | PNG | 代表浏览器标签页当前视觉状态的二进制图像数据。 |
| 标签页元数据 | JSON | 通过 status 命令检索的活动标签页 ID、标题和 URL 列表。 |
name: cdp-browser
description: CDP browser control at localhost:9222. Use when you need to inspect tabs, take screenshots, navigate, scroll, post to X, or run JS in a persistent browser session (e.g. logged into X, Gmail).
cdp-browser
CLI for Chrome/Chromium at localhost:9222. Inspect tabs, take screenshots, navigate, scroll, post to X, or run JS in a persistent browser session.
Repo: https://github.com/gostlightai/cdp-browser
Prerequisites: Chromium running with --remote-debugging-port=9222. Docker Compose or a local Chrome with remote debugging enabled.
Commands
Run from the skill dir (bin/ scripts):
| Command | Description |
|---|---|
status |
List all tabs (JSON from CDP) |
tabs |
Same as status |
new |
Open new tab |
goto |
Navigate tab to URL |
snapshot |
Full-page screenshot (PNG) |
close-popup |
Dismiss dialogs/modals |
scroll |
Scroll by pixels or selector |
query |
Return current page URL |
query |
Return element text (or body) |
query |
Return element HTML (or body) |
tweet-draft |
Fill compose box only; does NOT post |
tweet-post |
Post tweet (requires --confirm as second arg) |
tweet |
Alias for tweet-draft (fills compose only) |
Tweet flow
- tweet-draft (default): Fills the compose box; user reviews in browser and posts manually.
- tweet-post: Requires
--confirmas second arg (strict). Use when user explicitly approves ("go ahead", "post it", or T@elegrimm confirm button). - Optional T@elegrimm confirm: When
tweet.confirmButtonis enabled in config, the agent can runtweet-draft --save-pendingto write pending state, then send a message with an inline "Confirm Post" button. On confirm, the agent runstweet-post --confirm.
Config (required for T@elegrimm confirm button)
The T@elegrimm "Confirm Post" button only works if config exists. Copy the example and place it in your workspace:
# From the skill dir (e.g. ~/.openclaw/workspace/skills/cdp-browser):
cp .cdp-browser.json.example ~/.openclaw/workspace/.cdp-browser.json
Location: ~/.openclaw/workspace/.cdp-browser.json (or $OPENCLAW_WORKSPACE/.cdp-browser.json)
| Key | Default | Description |
|---|---|---|
tweet.confirmButton |
false |
When true, agent sends draft with inline "Confirm Post" button in T@elegrimm. User clicks to approve or says "go ahead". |
Without this config, the agent uses plain tweet-draft (no button); user confirms via text only.
T@elegrimm confirm button (agent instructions)
When tweet.confirmButton is true (config present) and you are in a T@elegrimm session:
- Draft: Run
tweet-draft --save-pendingfrom the skill dir. This fills the compose box and writes"text" ~/.openclaw/workspace/.cdp-browser/pending-tweet.json. - Send with button: Run from the skill dir:
Or use./scripts/send-tweet-confirm.sh" " openclaw message senddirectly with--buttons '[[{"text":"Confirm Post","callback_data":"cdp:tweet:confirm"}]]'. Use the current session's reply target as. - On confirm: When the user clicks the button, OpenClaw delivers
callback_data: cdp:tweet:confirm. Or the user says "go ahead"/"post it". Treat either as approval. Then:- Read
~/.openclaw/workspace/.cdp-browser/pending-tweet.jsonfortextandtabId - Run
tweet-post--confirm " " - Edit or delete the message with the button (optional)
- Delete the pending file
- Read
Scripts
- cdp.js — Fetch-only wrapper for CDP HTTP API (
/json,/json/list,/json/new); no shell. - pw.js — Playwright connect to browser; runs snapshot/goto/scroll/query/tweet-draft/tweet-post. Compose launcher: SideNav_NewTweet_Button, /compose/post, Post only (avoids reply buttons). Post button: tweetButton, tweetButtonInline.
Security
See SECURITY.md for mitigations and operational notes.
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
信号管道:自动化营销情报工具 - Openclaw Skills
技能收益追踪器:监控 Openclaw 技能并实现变现
AI 合规准备就绪度:评估与治理工具 - Openclaw Skills
FOSMVVM ServerRequest 测试生成器:自动化 API 测试 - Openclaw Skills
酒店搜索器:AI 赋能的住宿与位置情报 - Openclaw Skills
Dub 链接 API:程序化链接管理 - Openclaw Skills
IntercomSwap:P2P BTC 与 USDT 跨链兑换 - Openclaw Skills
spotplay:macOS 原生 Spotify 播放控制 - Openclaw Skills
DeepSeek OCR:AI驱动的图像文本识别 - Openclaw Skills
Web Navigator:自动化网页研究与浏览 - Openclaw Skills
AI精选
