Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Chrome DevTools
  3. chrome-remote-interface

chrome-remote-interface

MITJavaScript

A Node.js interface for the Chrome Debugging Protocol to instrument Chrome, Opera, Node.js, and other compatible implementations.

GitHubGitHub
4.5k stars324 forks0 contributors

What is chrome-remote-interface?

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.

Target Audience

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.

Value Proposition

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.

Overview

Chrome Debugging Protocol interface for Node.js

Use Cases

Best For

  • Automating browser interactions and testing with headless Chrome
  • Building custom debugging or inspection tools for web applications
  • Scraping dynamic web content that requires JavaScript execution
  • Instrumenting Node.js applications for debugging and profiling
  • Controlling multiple browser tabs or targets programmatically
  • Integrating browser automation into CI/CD pipelines

Not Ideal For

  • Teams wanting a high-level, batteries-included browser automation framework like Puppeteer
  • Projects requiring seamless, full-protocol support across all browsers without manual configuration
  • Developers seeking a quick, drop-in solution for simple UI testing without deep protocol knowledge
  • Environments where JavaScript execution is restricted or server-side languages are preferred

Pros & Cons

Pros

Protocol Abstraction

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.

Multi-Implementation Support

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.

Bundled Interactive Client

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.

Embedded Documentation

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.

Cons

Complex Setup for Some Targets

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.

Partial Protocol Support

Not all implementations support the full protocol—Safari iOS and Edge have limited features, leading to inconsistencies and reduced functionality when switching between browsers.

Steep Learning Curve

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.

Frequently Asked Questions

Quick Stats

Stars4,547
Forks324
Contributors0
Open Issues8
Last commit5 months ago
CreatedSince 2013

Tags

#opera#chrome-debugging-protocol#headless-browsers#mobile-safari#firefox#nodejs#testing#instrumentation#protocol-client#javascript#microsoft-edge#google-chrome#headless#node-js#browser#devtools#debugging#browser-automation

Built With

N
Node.js

Included in

Chrome DevTools6.9k
Auto-fetched 16 hours ago

Related Projects

chromedpchromedp

A faster, simpler way to drive browsers supporting the Chrome DevTools Protocol.

Stars13,205
Forks882
Last commit9 days ago
RodRod

A Chrome DevTools Protocol driver for web automation and scraping.

Stars7,036
Forks476
Last commit9 days ago
pyppeteerpyppeteer

Headless chrome/chromium automation library (unofficial port of puppeteer)

Stars3,944
Forks346
Last commit2 years ago
Puppeteer SharpPuppeteer Sharp

Headless Chrome .NET API

Stars3,904
Forks486
Last commit2 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub