whatisgithub

What is chrome-remote-interface?

cyrus-and/chrome-remote-interface — explained in plain English

Analysis updated 2026-06-26

4,525JavaScriptAudience · developerComplexity · 3/5Setup · moderate

In one sentence

A Node.js library that lets you control Chrome and other browsers programmatically by connecting to their remote debugging port, enabling you to automate page loads, capture screenshots, monitor network requests, and run JavaScript.

Mindmap

mindmap
  root((chrome-remote-interface))
    What it does
      Browser automation
      Remote debugging
      Event listening
    Tech Stack
      JavaScript
      Node.js
      WebSocket
    Supported Browsers
      Chrome
      Firefox
      Opera
      Edge
    Use Cases
      Web scraping
      Screenshot capture
      Network monitoring
      Interactive REPL
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Automate a browser to scrape websites or test web applications without using Selenium

USE CASE 2

Capture screenshots of web pages programmatically from a Node.js script

USE CASE 3

Monitor all network requests a browser makes while loading a specific page

USE CASE 4

Run JavaScript expressions in a real browser from your Node.js code and get the results back

What is it built with?

JavaScriptNode.jsWebSocket

How does it compare?

cyrus-and/chrome-remote-interfacecomponentjs/componentmiroslavpejic85/mirotalk
Stars4,5254,5254,526
LanguageJavaScriptJavaScriptJavaScript
Setup difficultymoderatehardmoderate
Complexity3/52/53/5
Audiencedeveloperdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires starting the browser with a remote-debugging flag before the library can connect.

No licence information was provided in the explanation.

So what is it?

chrome-remote-interface is a Node.js library that lets you control a browser programmatically from JavaScript code. It works by connecting to a debugging port that Chrome, Firefox, Opera, Edge, and a few other browsers can expose when started with a special flag. Once connected, your code can instruct the browser to load pages, monitor network requests, run JavaScript expressions, take screenshots, and more. The way it works is straightforward: you start the browser with a remote-debugging option, then your Node.js script connects to it using this library. From there you get access to the browser's internal protocol, which is organized into named domains like Network, Page, and Runtime. Each domain has commands you can call and events you can listen to. For example, you can tell the Page domain to navigate to a URL, then wait for a load event to fire before doing anything else. This library was built to wrap that protocol in a cleaner JavaScript interface. Without it, you would need to speak directly to the browser over a WebSocket and handle the raw message format yourself. The library does that low-level work and exposes the commands and events as regular async JavaScript functions. It is not limited to Chrome. The README lists tested compatibility with Opera, Node.js itself in inspect mode, mobile Safari via a proxy tool, Edge, and Firefox Nightly. Support varies: Chrome has the fullest coverage, while mobile Safari only supports a subset of the protocol. The package also ships a command-line client for interactive use. You can open a REPL that connects to a running browser, execute commands by typing them, and watch events stream in. This is useful for exploration or one-off tasks without writing a full script. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
Help me write a Node.js script using chrome-remote-interface to open a URL in Chrome and take a screenshot
Prompt 2
Show me how to use chrome-remote-interface to intercept and log all network requests Chrome makes while loading a page
Prompt 3
How do I use chrome-remote-interface to evaluate JavaScript in a running Chrome tab and return the result to my Node.js script?
Prompt 4
I want to automate form submission in Chrome using chrome-remote-interface - how do I click elements and fill in fields?

Frequently asked questions

What is chrome-remote-interface?

A Node.js library that lets you control Chrome and other browsers programmatically by connecting to their remote debugging port, enabling you to automate page loads, capture screenshots, monitor network requests, and run JavaScript.

What language is chrome-remote-interface written in?

Mainly JavaScript. The stack also includes JavaScript, Node.js, WebSocket.

What license does chrome-remote-interface use?

No licence information was provided in the explanation.

How hard is chrome-remote-interface to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is chrome-remote-interface for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.