☰
awesome-chrome-devtools 全解析:Chrome DevTools 与 DevTools 协议生态工具指南
2026/10/15 15:19:54 网站建设 项目流程
  • 开发工具
  • 教程

【免费下载链接】awesome-chrome-devtools

Awesome tooling and resources in the Chrome DevTools & DevTools Protocol ecosystem

项目地址:https://gitcode.com/gh_mirrors/aw/awesome-chrome-devtools
点击查看免费下载

本文以 readme.md 这份精选清单为主体,系统梳理 Chrome DevTools 生态中的学习资源、性能追踪与剖析工具、Chrome DevTools Protocol(CDP)驱动库、DevTools 前端复用方案、浏览器扩展以及已退役的经典项目。读完本文,你将掌握 CDP 生态的全景图谱、各主流语言的协议客户端选型思路,以及如何借助 Protocol Monitor、trace 查看器、MCP 服务器等工具在实际项目中完成调试、自动化与性能分析。

一、项目定位:一份严格精选的 CDP 生态清单

awesome-chrome-devtools 是一份面向 Chrome DevTools 与 Chrome DevTools Protocol(CDP)生态的精选资源清单,覆盖五类主题:学习资源(Learning)、性能追踪与剖析(Tracing & Profiling)、CDP 协议(Chrome DevTools Protocol)、DevTools 前端在其他平台上的复用(Using DevTools frontend with other platforms),以及 DevTools 扩展(DevTools Extensions),并单独设置 Alumni 板块收录已停止维护但仍有参考价值的项目。

与"索引一切"的普通列表不同,该清单遵循 Awesome Manifesto 将readme.md声明为main入口,测试脚本npm test会运行awesome-lint对清单条目格式进行自动校验;contributing.md 则进一步明确了收录门槛(详见本文最后一节)。

二、背景知识:DevTools、CDP 与 JSON 数据格式

在展开工具清单之前,先理解三个贯穿全文的基础事实(均出自 readme.md):

  1. DevTools 前端本质是一个 Web 应用:它通过 WebSocket 与目标进程通信,所讲的语言就是 Chrome DevTools Protocol。正因为这种"前端可移植"的架构,DevTools 界面才能被嵌入 VS Code、指向 Node.js、Ruby 运行时、移动端 WebView 甚至自定义运行时,chrome://inspect页面即内置了这些可调试目标。
  2. 性能数据是纯 JSON:DevTools Performance 面板导出的 trace 文件,以及 V8 的.cpuprofile日志,底层都是普通的 JSON 文本,因此可以脱离浏览器,由独立查看器进行离线分析。
  3. Protocol Monitor 是调试 CDP 的官方入口:在 DevTools 中通过More tools > Protocol monitor打开,即可实时观察页面与浏览器之间的 CDP 流量,并直接手动发送原始协议命令——这对理解后续列出的各种 CDP 客户端库非常有帮助。

三、Learning:从入门到精通的 DevTools 学习资源

清单在 Learning 分类下收录了六类学习材料,覆盖不同受众与学习形式:

  • Dev Tips:以 GIF 动图形式展示的大量 DevTools 使用技巧,适合快速浏览、按图索骥。
  • DevTools Tips:以图解小教程形式组织的技巧合集,讲解更系统、带分步说明。
  • Web cheatcodes:面向非开发者的浏览器开发者工具入门指南,适合需要理解浏览器调试基本概念的非技术人员。
  • Dear Console:一批可直接粘贴到浏览器控制台运行的代码片段集合,适合练习 Console 面板的常见操作。
  • Chrome Secret Menus:介绍 Chrome 内部chrome://页面与诊断工具的指南。chrome://inspect、chrome://tracing、chrome://flags等隐藏页面是深入调试的重要入口。
  • Front-end Debugging Tools Handbook:覆盖 DevTools、框架扩展与 IDE 的实用前端调试手册,适合系统学习从元素检查到网络、性能的完整调试路径。

四、Tracing & Profiling:trace 与 cpuprofile 的独立查看器

该小节围绕"Performance trace 与 V8.cpuprofile都是纯 JSON"这一事实展开,收录了四款能做大事的独立查看器:

工具定位关键能力
trace.cafe在线分享与查看直接在浏览器 DevTools Performance 面板中分享和查看 Web 性能 trace
speedscope交互式火焰图快速、可交互的火焰图查看器,可导入 Chrome.cpuprofile与 timeline trace
cpupro深度剖析器深入分析 V8/Chrome.cpuprofile,提供火焰图、调用树与热点(hot-spot)诊断
Perfetto系统级剖析套件系统性能剖析与 trace 分析套件(含 ui.perfetto.dev 在线 UI),支持 Chromium trace 与 SQL trace 查询

选型建议:如果只是快速分享一次录制结果,trace.cafe 最轻量;需要深入分析 JS 执行热点时用 cpupro;涉及系统级(CPU、调度、GPU)trace 分析时选择 Perfetto;而 speedscope 则是火焰图可视化领域的经典选择,几乎兼容所有 Chromium trace 导出格式。

五、Chrome DevTools Protocol:协议本身与周边工具

5.1 协议的权威来源与文档

CDP 协议本身的权威信息集中在两个地方:

  • devtools-protocol 仓库:协议 JSON 的官方位置,同时提供 TypeScript 类型定义,并承载协议缺陷(bug)的 issue 跟踪。
  • DevTools Protocol API Docs:可浏览的 UI 界面,用于查阅协议的全部 domain(域)、method(方法)与 event(事件)。在写 CDP 客户端之前,先到这里确认目标域的方法签名与事件参数,是避免踩坑的通用做法。

5.2 协议开发辅助工具

  • chrome-remote-interface Wiki:收录了大量原始 CDP 任务的常用配方(recipes),例如获取页面标题、截图、捕获网络请求等常见操作的现成写法。
  • Chrome Protocol Proxy:一个用于检查和调试 CDP 客户端流量的代理。当自己写的 CDP 客户端行为异常时,用代理把客户端与浏览器之间的消息打印出来,是最直接的排障手段。

5.3 两大自动化库:Puppeteer 与 Playwright

清单将 Puppeteer 与 Playwright 单列为 "The big two automation libraries":

  • Puppeteer:面向 Node.js 的高层 API,通过 CDP 和 WebDriver BiDi 双协议控制 Chrome,是 Chrome 自动化的老牌事实标准(配套生态见 awesome-puppeteer)。
  • Playwright:跨浏览器自动化方案,支持 Chromium、Firefox 与 WebKit,且同时提供 Node.js、Python、.NET 和 Java 语言绑定(配套生态见 awesome-playwright)。

两者均构建在 CDP 之上但抽象层级更高:开发者面对的是page.goto()、page.click()这类语义化 API,而不是裸的Runtime.evaluate调用。

5.4 各语言 CDP 客户端与上层库全景

对于需要直接驱动协议、或在其上再做一层封装的场景,清单按语言给出了完整选型表:

  • JavaScript/Node.js:chrome-remote-interface —— 低层 CDP 客户端,协议控制粒度最细,适合自己搭建自动化框架的场景。
  • Rust:chromiumoxide —— 基于 async/tokio 的异步库,类型由协议自动生成;rust-headless-chrome —— 高层无头 Chrome 客户端。
  • Java:chrome-devtools-java-client —— 低层协议客户端;jvppeteer —— Java 版无头 Chrome(Puppeteer 风格 API)。
  • Python:Zendriver —— 异步 CDP 浏览器自动化;PyCDP —— Sans-IO 风格协议包装(另有配套的 Trio driver);ChromeController —— 高层浏览器管理。
  • Go:chromedp —— 高层 actions/tasks 模型;Rod —— 高层自动化与爬取;cdp —— 类型安全的 CDP 绑定。
  • C#/.NET:Puppeteer Sharp —— Puppeteer 的移植版;dotnet-chrome-protocol —— 运行时库 + schema 代码生成。
  • Ruby:Ferrum —— 控制 Chrome 的高层 API;Cuprite —— 基于 Capybara 的驱动(适合 Rails 集成测试)。
  • Kotlin:chrome-devtools-kotlin —— 基于协程的客户端库;kdriver —— 高层协程自动化。
  • Clojure:clj-chrome-devtools —— 自动生成的 CDP 包装;cuic —— 高层 UI 测试自动化。
  • PHP:chrome-devtools-protocol —— 协议客户端库。

选型的一般规律:追求协议级控制力选低层客户端(如 chrome-remote-interface、PyCDP、cdp);追求开箱即用的自动化选高层库(如 Rod、Ferrum、jvppeteer);工程上需要类型安全与代码补全时,优先选择带 schema 代码生成的实现(如 chromiumoxide、dotnet-chrome-protocol、chrome-devtools-kotlin)。

5.5 Agentic Browser Automation:面向 AI Agent 的浏览器自动化

这是清单中门槛最高、审查最严的一个分类。清单明确声明:当前人人都在为 Agent 包装浏览器,任何新增的 MCP server 或 agent CLI 的 PR,除非有真实影响力(real traction)且在 CDP 底层做出了新东西,否则都会被关闭。目前仅收录四个项目:

  • chrome-devtools-mcp:Chrome DevTools 官方 MCP 服务器,附带一个 CLI(用法见其 skills 文档)。这是把 DevTools 能力开放给 LLM/Agent 的官方路径。
  • Webcmd:将站点导航编译为确定性的、按站点定制的 CLI 命令,供 AI Agent 调用,避免 Agent 在任意页面上自由发挥。
  • Lumen:视觉优先(vision-first)的浏览器 Agent,基于 CDP 提供自愈式(self-healing)确定性重放。
  • bdg:持久的后台 CDP 会话,把 DOM、网络、控制台与原始协议方法暴露为 shell 命令,适合在终端里以命令方式调试页面。

5.6 Browser Adapters:浏览器适配层

  • devtools-remote-debugger:通过纯客户端 JS 实现的 CDP 代理,可在远程调试网页。
  • Inspect:对 iOS/Android 浏览器与 WebView 使用 DevTools 调试(注意:闭源,且按清单的收录原则,这类项目仅作为信息收录而非策展推荐对象)。

六、Using DevTools frontend with other platforms:在其他平台复用 DevTools 前端

如前所述,DevTools UI 是一个通过 WebSocket 讲 CDP 的 Web 应用,因此可以被嵌入或指向各类运行时。这一节的代表性项目包括:

  • devtools-frontend:Chrome DevTools 界面的官方源码仓库,同时以chrome-devtools-frontend包名发布到 npm,可直接作为依赖引入构建定制化的调试 UI。
  • Chii 与 Eruda:来自同一作者的两个配套项目。Chii 是使用真实devtools-frontendUI 的远程调试服务器,被视为现代版 Weinre;Eruda 则是注入页面内部的移动端 DevTools 控制台。
  • vscode-js-debug:VS Code 官方 JavaScript/Chrome CDP 调试器,遵循 DAP(Debug Adapter Protocol),是当前 VS Code 内置调试能力的实现者。
  • VS Code - Elements for Microsoft Edge:把 DevTools 的 Elements 与 Network 面板嵌入 VS Code 内部。
  • Node.js 调试:node --inspect即可让 Chrome DevTools 直接调试与剖析 Node.js。
  • ruby/debug:Ruby 官方调试器,支持通过 CDP 连接 Chrome DevTools(启动参数为rdbg --open=chrome)。

这一节的实用价值在于:无论你的目标环境是 Node、Ruby、移动 WebView 还是自定义运行时,只要它暴露了 CDP 端点,理论上都可以复用整套 DevTools 前端。

七、DevTools Extensions:框架与场景化调试扩展

清单收录的扩展分为两类——框架调试器与后端语言调试器:

框架级调试扩展(检查组件树、状态与性能):

  • React Developer Tools:检查 React 组件层级、props 与 Profiler 火焰图。
  • Vue.js Developer Tools:检查 Vue 组件、状态与路由。
  • Angular DevTools:Angular 组件树检查与变更检测(change-detection)性能剖析。
  • Redux Devtools:Redux 的时间旅行调试与 action 历史回放。
  • Ember.js Inspector:检查 Ember 对象、路由与数据。
  • Web Component DevTools:检查、修改与观察页面上的自定义元素和 shadow DOM。

后端语言/框架调试扩展:

  • Clockwork:PHP 应用性能剖析与请求检查。
  • RailsPanel:Ruby on Rails 请求与 SQL 性能剖析面板。

八、Alumni:退役但值得研究的经典项目

Alumni 板块收录的是"很可能已不再维护,但依然很酷"的老项目。它们在今天依然有学习价值,尤其适合理解 CDP 生态的演进脉络:

  • ndb:基于 DevTools 前端构建的改进版 Node.js 调试体验,是早期"把 DevTools 用在 Node 上"的代表作。
  • thetool:针对 Node.js 的 CPU、内存、覆盖率与类型剖析工具。
  • Facebook Stetho:让 Chrome DevTools 调试原生 Android 应用的桥接方案。
  • PonyDebugger:通过 Chrome DevTools 对 iOS 应用进行远程网络与 Core Data 调试。
  • betwixt:系统级网络代理,用独立的 DevTools Network 面板检视流量。
  • Dirac:为 ClojureScript 调试而做的定制 DevTools fork。
  • VS Code - Debugger for Chrome:VS Code 最初的 Chrome 调试器,已被内置的 vscode-js-debug(具备更丰富的 CDP/DAP 实现)取代。
  • noice-json-rpc:基于代理的 TypeScript/JS 库,把 CDP 的 domain 直接暴露为 API。
  • PuPHPeteer:PHP 到 Node Puppeteer 的桥接。
  • Insight:面向 Chrome DevTools 的 WebGL 调试工具包。
  • Remote Debug Gateway:让一个调试客户端同时连接多个浏览器;其子项目 DevTools Remote 支持远程调试他人的浏览器。
  • DevTools Backend:Chrome DevTools 后端的独立实现,可用于调试任意 Web 环境。
  • pychrome:Python 低层 CDP 传输处理库。
  • ios-webkit-debug-proxy:通过 CDP 暴露 Mobile Safari 与 UIWebView 实例;配套的 Remote Debug iOS WebKit adapter 在其之上把 WebKit 远程调试协议翻译为 CDP。
  • IE Diagnostics Adapter:把 IE 11 翻译为 CDP 的协议适配器,体现了"向 CDP 收敛"的生态趋势。

九、如何参与贡献:收录标准与 PR 规范

如果你想向这份清单提交新条目,contributing.md 给出了明确的门槛,核心规则如下:

  1. 这是严格策展而非目录:大部分 PR 会被关闭。
  2. 闭源扩展、商业 SaaS 与托管浏览器/代理服务不收录。
  3. 不接受刚创建的新仓库:项目需要有活跃维护和真实的社区影响力。
  4. 避免与 Puppeteer、Playwright、Lighthouse、chrome-devtools-mcp 或现有条目高度重叠,除非在底层提供了独特能力。
  5. 描述必须技术性、客观:营销词("blazing fast""undetectable"等)与 AI 生成的 PR 文案会被直接关闭。

格式方面:每个建议单独发一个 PR;条目格式为name - Description.;描述以大写开头、句号结尾;新链接添加到对应小节的末尾;PR 需包含有用标题、包链接和收录理由。仓库已通过 package.json 中的awesome-lint脚本对清单格式做自动化校验,提交前可先本地运行npm test验证格式合规。

十、总结:如何高效使用这份清单

作为一份严格精选的生态地图,readme.md 的实际用法可以归纳为三条路径:

  • 想系统学习 DevTools:从 Learning 小节的六类资源入手,配合chrome://隐藏页面指南深入浏览器内部机制。
  • 想做性能分析:用 DevTools 录制 trace/.cpuprofile(本质是 JSON),再按场景选择 speedscope、cpupro、Perfetto 或 trace.cafe 进行离线分析。
  • 想基于 CDP 构建自动化或调试工具:先用 Protocol Monitor 观察真实协议流量,再依据语言选型表挑选低层客户端或高层库;面向 Agent 的场景则优先评估 chrome-devtools-mcp 这条官方路径。

完整、带原始链接的条目清单与各分类入口,可随时回到仓库根目录的 readme.md 查阅;贡献规范见 contributing.md。

  • 开发工具
  • 教程

【免费下载链接】awesome-chrome-devtools

Awesome tooling and resources in the Chrome DevTools & DevTools Protocol ecosystem

项目地址:https://gitcode.com/gh_mirrors/aw/awesome-chrome-devtools
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询