✓ Verified 🌐 Web Scrapers ✓ Enhanced Data

Cdp Browser

CDP browser control at localhost:9222.

Rating
4.2 (393 reviews)
Downloads
49,277 downloads
Version
1.0.0

Overview

CDP browser control at localhost:9222.

Complete Documentation

View Source →

cdp-browser

CLI for Chrome/Chromium at localhost:9222. Inspect tabs, take screenshots, navigate, scroll, post to X, or run JS in a persistent browser session.

Repo: https://github.com/gostlightai/cdp-browser

Prerequisites: Chromium running with --remote-debugging-port=9222. Docker Compose or a local Chrome with remote debugging enabled.

Commands

Run from the skill dir (bin/ scripts):

CommandDescription
statusList all tabs (JSON from CDP)
tabsSame as status
new Open new tab
goto Navigate tab to URL
snapshot Full-page screenshot (PNG)
close-popup Dismiss dialogs/modals
scroll sel> [down\up]Scroll by pixels or selector
query getUrlReturn current page URL
query getText [selector]Return element text (or body)
query getHtml [selector]Return element HTML (or body)
tweet-draft "text"Fill compose box only; does NOT post
tweet-post --confirm "text"Post tweet (requires --confirm as second arg)
tweet "text"Alias for tweet-draft (fills compose only)

Tweet flow

  • tweet-draft (default): Fills the compose box; user reviews in browser and posts manually.
  • tweet-post: Requires --confirm as second arg (strict). Use when user explicitly approves ("go ahead", "post it", or Telegram confirm button).
  • Optional Telegram confirm: When tweet.confirmButton is enabled in config, the agent can run tweet-draft --save-pending to write pending state, then send a message with an inline "Confirm Post" button. On confirm, the agent runs tweet-post --confirm.

Config (required for Telegram confirm button)

The Telegram "Confirm Post" button only works if config exists. Copy the example and place it in your workspace:

bash
# From the skill dir (e.g. ~/.openclaw/workspace/skills/cdp-browser):
cp .cdp-browser.json.example ~/.openclaw/workspace/.cdp-browser.json

Location: ~/.openclaw/workspace/.cdp-browser.json (or $OPENCLAW_WORKSPACE/.cdp-browser.json)

KeyDefaultDescription
tweet.confirmButtonfalseWhen true, agent sends draft with inline "Confirm Post" button in Telegram. User clicks to approve or says "go ahead".
Without this config, the agent uses plain tweet-draft (no button); user confirms via text only.

Telegram confirm button (agent instructions)

When tweet.confirmButton is true (config present) and you are in a Telegram session:

  • Draft: Run tweet-draft --save-pending "text" from the skill dir. This fills the compose box and writes ~/.openclaw/workspace/.cdp-browser/pending-tweet.json.
  • Send with button: Run from the skill dir:
bash
./scripts/send-tweet-confirm.sh <chat_id> "<tweet_text>"
Or use openclaw message send directly with --buttons '[[{"text":"Confirm Post","callback_data":"cdp:tweet:confirm"}]]'. Use the current session's reply target as .
  • On confirm: When the user clicks the button, OpenClaw delivers callback_data: cdp:tweet:confirm. Or the user says "go ahead"/"post it". Treat either as approval. Then:
  • Read ~/.openclaw/workspace/.cdp-browser/pending-tweet.json for text and tabId
  • Run tweet-post --confirm ""
  • Edit or delete the message with the button (optional)
  • Delete the pending file

Scripts

  • cdp.js — Fetch-only wrapper for CDP HTTP API (/json, /json/list, /json/new); no shell.
  • pw.js — Playwright connect to browser; runs snapshot/goto/scroll/query/tweet-draft/tweet-post. Compose launcher: SideNav_NewTweet_Button, /compose/post, Post only (avoids reply buttons). Post button: tweetButton, tweetButtonInline.

Security

See SECURITY.md for mitigations and operational notes.

Installation

Terminal bash

openclaw install cdp-browser
    
Copied!

💻Code Examples

cp .cdp-browser.json.example ~/.openclaw/workspace/.cdp-browser.json

cp-cdp-browserjsonexample-openclawworkspacecdp-browserjson.txt
**Location:** `~/.openclaw/workspace/.cdp-browser.json` (or `$OPENCLAW_WORKSPACE/.cdp-browser.json`)

| Key | Default | Description |
|-----|---------|-------------|
| `tweet.confirmButton` | `false` | When `true`, agent sends draft with inline "Confirm Post" button in Telegram. User clicks to approve or says "go ahead". |

Without this config, the agent uses plain tweet-draft (no button); user confirms via text only.

### Telegram confirm button (agent instructions)

When `tweet.confirmButton` is true (config present) and you are in a Telegram session:

1. **Draft:** Run `tweet-draft --save-pending <tabId> "text"` from the skill dir. This fills the compose box and writes `~/.openclaw/workspace/.cdp-browser/pending-tweet.json`.
2. **Send with button:** Run from the skill dir:

Tags

#browser_and-automation

Quick Info

Category Web Scrapers
Model Claude 3.5
Complexity One-Click
Author gostlightai
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install cdp-browser