A Node.js interface for the Chrome Debugging Protocol to instrument Chrome, Opera, Node.js, and other compatible implementations.
Chrome Remote Interface is a Node.js library that provides a JavaScript API for the Chrome Debugging Protocol, allowing developers to instrument and control Chrome, Opera, Node.js, and other compatible implementations programmatically. It solves the problem of automating browser interactions, debugging, and inspection by exposing a simple abstraction over the protocol's commands and notifications.
Developers and QA engineers who need to automate browser testing, scrape web content, debug applications, or build custom DevTools-like tooling using the Chrome Debugging Protocol.
Developers choose Chrome Remote Interface for its direct, low-level access to the Chrome Debugging Protocol, flexibility across multiple implementations, and the bundled interactive client for exploration, making it ideal for building specialized automation and debugging tools.
Chrome Debugging Protocol interface for Node.js
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Simplifies the raw Chrome Debugging Protocol into an intuitive JavaScript API, making it easier to use than direct WebSocket commands, as shown in the sample API usage for navigating pages and handling events.
Works with Chrome, Opera, Node.js, Safari iOS, Edge, and Firefox Nightly, providing flexibility across different debugging environments, though support varies per implementation as detailed in the README table.
Includes a REPL-like client for target management and protocol inspection with autocompletion, allowing developers to explore commands and events interactively, which is useful for debugging and learning.
Decorates protocol objects with meta-information such as parameters and descriptions in both the REPL and API, helping users understand protocol details without external references.
Requires manual configuration for implementations like Android Chrome or WebView, involving ADB port forwarding and local protocol descriptors, which adds operational overhead and potential for errors.
Not all implementations support the full protocol—Safari iOS and Edge have limited features, leading to inconsistencies and reduced functionality when switching between browsers.
As a low-level binding, it demands deep understanding of the Chrome Debugging Protocol, making it less accessible for developers accustomed to higher-level abstractions like Puppeteer.