- 开发工具
- 教程
【免费下载链接】awesome-chrome-devtools
Awesome tooling and resources in the Chrome DevTools & DevTools Protocol ecosystem
本文以 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):
- DevTools 前端本质是一个 Web 应用:它通过 WebSocket 与目标进程通信,所讲的语言就是 Chrome DevTools Protocol。正因为这种"前端可移植"的架构,DevTools 界面才能被嵌入 VS Code、指向 Node.js、Ruby 运行时、移动端 WebView 甚至自定义运行时,
chrome://inspect页面即内置了这些可调试目标。 - 性能数据是纯 JSON:DevTools Performance 面板导出的 trace 文件,以及 V8 的
.cpuprofile日志,底层都是普通的 JSON 文本,因此可以脱离浏览器,由独立查看器进行离线分析。 - 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 给出了明确的门槛,核心规则如下:
- 这是严格策展而非目录:大部分 PR 会被关闭。
- 闭源扩展、商业 SaaS 与托管浏览器/代理服务不收录。
- 不接受刚创建的新仓库:项目需要有活跃维护和真实的社区影响力。
- 避免与 Puppeteer、Playwright、Lighthouse、chrome-devtools-mcp 或现有条目高度重叠,除非在底层提供了独特能力。
- 描述必须技术性、客观:营销词("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
相关推荐
5分钟装好Notepad--:2024 Mac文本编辑器完整实操指南
5分钟装好Notepad :2024 Mac文本编辑器完整实操指南 深夜排查老项目日志,打开一个GBK文件满屏乱码,换个编辑器启动又要等半天。Notepad 是
桌面应用Chrome DevTools 快捷键完全指南:CN-Chrome-DevTools 中文手册速查表
Chrome DevTools 快捷键完全指南:CN Chrome DevTools 中文手册速查表 Chrome DevTools 内置了大量快捷键,覆盖打开
文档教程npm-security-best-practices与现代包管理器:npm、pnpm、yarn和bun的安全配置对比
npm security best practices与现代包管理器:npm、pnpm、yarn和bun的安全配置对比 npm security best pr
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考