chrome-cdp-skill

🌐 原生 CDP 直连,零依赖控浏览器

通过 Chrome DevTools Protocol 直接控制本地浏览器,无需 Puppeteer,支持截图、DOM 操作、网络监控,适合调试已打开的页面。

收藏
4.3k
安装
1.1k
版本
1.0.6
CLS 安全性认证2026-08-04
点击查看完整报告 >

使用说明

核心用法

Chrome CDP 是一个轻量级命令行工具,通过 WebSocket 直接连接本地 Chrome 系浏览器(Chrome、Chromium、Brave、Edge、Vivaldi),无需安装 Puppeteer 或 Python 依赖。用户需先在 chrome://inspect/#remote-debugging 开启远程调试,即可通过 cdp.mjs 脚本执行多种浏览器操作。

主要功能

  • 页面管理list 列出所有标签页,open 新建标签页,stop 停止守护进程
  • 内容获取shot 截图(需注意 DPR 换算)、html 获取页面源码、snap 获取可访问性树
  • 交互操作click/clickxy 点击元素、type 输入文本(支持跨域 iframe)、nav 导航跳转
  • 脚本执行eval 执行 JavaScript、evalraw 发送原始 CDP 命令
  • 批量操作loadall 自动点击"加载更多"直到消失
  • 网络监控net 获取资源加载耗时

显著优点

1. 零依赖部署:仅需 Node.js 22+,无需 npm install、Python 或 pip
2. 大标签页友好:专为高标签页数量场景优化,性能优于 Puppeteer

3. 原生 CDP 直连:直接 WebSocket 通信,无中间抽象层,延迟更低

4. 跨域 iframe 支持type 命令可输入跨域 iframe 内容,解决 Puppeteer 常见痛点

5. 坐标自动换算:截图输出包含 DPR 提示,便于像素级精确点击

潜在缺点与局限性

  • 手动前置配置:必须用户手动开启 Chrome 远程调试,且首次访问需逐标签批准
  • 单浏览器限制:仅支持本地已启动的 Chrome 系浏览器,无法远程或 headless 启动
  • 守护进程超时:20 分钟无操作自动退出,长任务需保持活跃
  • 截图范围受限:仅捕获视口内容,长页面需先滚动
  • 选择器稳定性:DOM 变化会导致索引失效,需用稳定选择器
  • 安全警告触发:杀毒软件可能标记 evalclick 等强控制命令为可疑

适合人群

  • 前端开发者:调试本地已打开的复杂页面,尤其是需要跨域 iframe 交互的场景
  • 自动化测试人员:需要轻量级浏览器控制,不愿引入 Puppeteer 重型依赖
  • 性能分析者:通过 net 命令快速获取资源加载时序
  • 多标签页用户:日常保持数十个标签页开启,需要高效遍历管理

常规风险

  • 敏感数据暴露:可读取用户已登录页面的内容,包括 Cookie、本地存储等
  • 误操作风险evalnavclick 等命令可直接改变页面状态或触发支付
  • 钓鱼利用:若用户被诱导开启远程调试,攻击者可本地连接窃取会话
  • 权限持久化:后台守护进程保持调试会话,期间页面无额外授权提示
  • 跨站脚本eval 执行任意 JavaScript,需确保表达式来源可信

安全解读

核心用法

chrome-cdp 是一款轻量级 Chrome DevTools Protocol 命令行工具,专为需要直接操控本地浏览器会话的场景设计。用户需先在 Chrome 中启用远程调试(chrome://inspect/#remote-debugging),工具即可通过 WebSocket 连接到浏览器的 DevTools 端口,无需安装 Puppeteer 或任何 npm 依赖。

该 Skill 提供完整的浏览器控制能力:通过 list 查看已打开标签页,使用 shot 截取视口截图(自动处理 DPR 缩放),借助 snap 获取可访问性树快照,利用 eval 在页面上下文中执行 JavaScript,以及通过 clicktypenav 等命令实现自动化交互。特别地,type 命令支持跨域 iframe 中的文本输入,这是传统 eval 方案难以处理的场景。对于需要批量操作的场景,loadall 可自动点击"加载更多"直至元素消失。

显著优点

  • 零依赖架构:仅使用 Node.js 22+ 内置模块(fs、net、ws 等),彻底规避供应链攻击风险,安装即用无需 npm install
  • 高性能设计:直接 WebSocket 通信,不受 Puppeteer 内存开销限制,可稳定处理大量标签页场景
  • 原生协议支持:完整暴露 CDP 能力,evalraw 允许透传任意原始协议命令,灵活性远超封装式 API
  • 智能会话管理:后台守护进程自动维持连接,20 分钟无活动后自动退出,兼顾便利性与资源释放
  • 跨域 iframe 兼容type 命令基于 Input.insertText,突破同源策略限制,覆盖更复杂的页面结构

潜在缺点与局限性

  • 手动前置配置:必须用户主动启用 Chrome 远程调试,首次访问每个标签页时需手动批准调试权限,流程打断自动化链条
  • 本地限定范围:仅支持连接本机浏览器实例,无法远程控制或分布式部署
  • 视口截图限制shot 仅捕获可见区域,完整页面截图需预先 eval 滚动,增加操作复杂度
  • DOM 稳定性敏感:文档明确警告避免基于索引的选择器链式操作,动态内容(如无限滚动列表)可能导致选择器漂移
  • 非标准路径依赖:若 Chrome 的 DevToolsActivePort 文件位于非常规位置,需手动配置 CDP_PORT_FILE 环境变量

适合的目标群体

该 Skill 面向以下用户场景:前端开发者进行快速页面调试与自动化测试,爬虫工程师处理需要浏览器渲染的动态内容,QA 人员生成可视化测试报告,以及需要批量截图或页面结构分析的内容运营团队。尤其适合已熟悉 Chrome DevTools 工作流、追求轻量方案且不愿承担 Puppeteer 依赖负担的技术用户。对于需要集成到 CI/CD 的纯自动化场景,由于手动授权步骤的存在,适用性受限。

使用风险与注意事项

安全风险是该 Skill 的核心关注点。其具备完整的浏览器控制能力(eval、click、type、nav),可操作用户已登录的敏感页面。尽管 Skill 文档充分披露风险并要求用户显式授权,但 eval 命令的 JavaScript 执行能力与 evalraw 的原始协议透传能力仍构成潜在攻击面。建议仅在受信任环境中使用,避免处理涉及金融、医疗等敏感数据的页面。

性能风险方面,每个标签页会启动独立守护进程,极端场景下可能耗尽系统资源(建议关注后续版本是否添加进程数量限制)。配置风险上,CDP_HOST 环境变量理论上可指向外部地址,建议用户验证其始终限定于 127.0.0.1 或 localhost。此外,该 Skill 作为个人开发者项目(T3 可信度),虽代码公开可审计,但长期维护承诺弱于企业级项目,建议关注安全更新订阅。

chrome-cdp-skill 内容

scripts文件夹
手动下载zip · 13.4 kB
cdp.mjstext/javascript
请选择文件