/chrome-cdp — Chrome Browser Automation banner
mixpeek mixpeek

/chrome-cdp — Chrome Browser Automation

Development community intermediate

Description

Control the user's **live Chrome browser** via Chrome DevTools Protocol. Connects to real tabs with existing cookies/logins — no fresh browser needed.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

Repository README

This is the README for mixpeek/amux, shared by 4 entries in this directory. It describes the repository, not this entry specifically.


description: Interact with the user's live Chrome browser — screenshots, click, type, eval JS, read accessibility tree, navigate. Connects to real Chrome tabs with existing logins. allowed-tools: Bash, Read argument-hint: [args...]

/chrome-cdp — Chrome Browser Automation

Control the user's **live Chrome browser** via Chrome DevTools Protocol. Connects to real tabs with existing cookies/logins — no fresh browser needed.

Prerequisites

  • Chrome must have remote debugging enabled: chrome://inspect/#remote-debugging → toggle the switch
  • Node.js 22+ (uses built-in WebSocket)

Commands

The CLI is at `skills/chrome-cdp/scripts/cdp.mjs` (relative to the amux repo root). Always run from the amux project directory.

List open tabs

node skills/chrome-cdp/scripts/cdp.mjs list

Returns tab IDs, titles, and URLs. Use the **target ID prefix** (e.g. `6BE827FA`) in all subsequent commands.

Screenshot

node skills/chrome-cdp/scripts/cdp.mjs shot  [file]

Captures the viewport as PNG. Prints DPR and coordinate mapping info. Default save path: `~/.cache/cdp/screenshot-.png`

**Always read the screenshot file after capturing** to see what's on screen.

Accessibility tree (preferred for reading page content)

node skills/chrome-cdp/scripts/cdp.mjs snap 

Returns a compact semantic tree — much better than raw HTML for understanding page structure.

Evaluate JavaScript

node skills/chrome-cdp/scripts/cdp.mjs eval  

Runs JS in the page context. Avoid index-based DOM selection across multiple eval calls when the DOM can change between them.

Navigate

node skills/chrome-cdp/scripts/cdp.mjs nav  

Navigates and waits for load completion.

Click

node skills/chrome-cdp/scripts/cdp.mjs click  
node skills/chrome-cdp/scripts/cdp.mjs clickxy        # CSS pixel coords

`click` scrolls the element into view first. `clickxy` takes CSS pixels (screenshot pixels / DPR).

Type text

node skills/chrome-cdp/scripts/cdp.mjs type  

Uses `Input.insertText` — works in cross-origin iframes unlike eval-based approaches. Click/focus the input first.

Other commands

node skills/chrome-cdp/scripts/cdp.mjs html  [selector]       # full page or element HTML
node skills/chrome-cdp/scripts/cdp.mjs net                     # network resource timing
node skills/chrome-cdp/scripts/cdp.mjs loadall   [ms] # click "load more" until gone
node skills/chrome-cdp/scripts/cdp.mjs evalraw   [json] # raw CDP command
node skills/chrome-cdp/scripts/cdp.mjs open [url]                       # open new tab
node skills/chrome-cdp/scripts/cdp.mjs stop [target]                    # stop daemon(s)

Typical workflow

# 1. List tabs
node skills/chrome-cdp/scripts/cdp.mjs list

# 2. Screenshot a