TypeScript definitions and JSON schemas for the Chrome DevTools Protocol, enabling programmatic browser automation.
devtools-protocol is a repository that provides TypeScript definitions and JSON schema files for the Chrome DevTools Protocol (CDP). It enables developers to programmatically control and inspect Chromium-based browsers by offering structured, type-safe interfaces to the protocol's commands, events, and types. This project solves the problem of manually maintaining protocol definitions when building browser automation tools, debugging utilities, or testing frameworks.
Developers building browser automation tools (like Puppeteer or Playwright), debugging utilities, performance profiling applications, or any software that needs to interact programmatically with Chrome or Chromium-based browsers.
Developers choose devtools-protocol because it provides authoritative, up-to-date, and machine-readable protocol definitions directly from the Chrome DevTools team. The TypeScript support ensures type safety and better developer experience, while the JSON schemas enable validation and code generation across different programming languages.
Chrome DevTools Protocol
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides complete TypeScript interfaces for all protocol domains, ensuring type safety and reducing errors in automation code, as seen in the types/protocol.d.ts file.
Published as an npm package, making it easy to install, update, and integrate into Node.js and web projects, as highlighted in the README.
JSON schema files enable validation and automated code generation, allowing developers to build tools in various programming languages beyond JavaScript.
Offers both DomainApi-style and simple name-to-type mappings in protocol-proxy-api.d.ts and protocol-mapping.d.ts, giving multiple consumption options.
The README directs users to file issues on Chromium's bug tracker, which can fragment support and make it less convenient for community feedback.
Only provides protocol definitions, so developers must build WebSocket or other communication layers, adding significant development overhead compared to turnkey solutions.
The protocol is specific to Chromium-based browsers, making it unsuitable for cross-browser automation without additional tools or adaptations.