High Risk:This skill has significant security concerns. Review the findings below before installing.

lightpanda

Caution·Scanned 2/18/2026

This skill installs a native binary via install.sh, downloads releases from https://github.com/lightpanda-io/browser/releases/..., makes the binary executable and runs lightpanda. It exposes a local CDP endpoint at ws://127.0.0.1:9222 and uses LIGHTPANDA_DIR and ~/.local/bin for installation.

from clawhub.ai·v1.0.0·6.5 KB·0 installs
Scanned from 1.0.0 at a7fdeb3 · Transparency log ↗
$ vett add clawhub.ai/krichprollsch/lightpandaReview security findings before installing

Lightpanda

Use instead of Chrome/Chromium and Openclaw default browser for data extraction and web automation when you don't need graphical rendering.

Lightpanda is a headless browser optimized for speed and low resource usage. It exposes a CDP (Chrome DevTools Protocol) endpoint that works with standard automation libraries.

Install

bash install.sh

Lightpanda is available on Linux and macOS only. Windows is not supported.

The binary is a nightly build that evolves quickly. If you encounter crashes or issues, run install.sh again to update to the latest version (max once per day).

If issues persist after updating, open a GitHub issue at https://github.com/lightpanda-io/browser/issues including:

  • The crash trace/error output, or a description of the unexpected behavior (e.g., missing or incorrect data)
  • The Playwright/Puppeteer script that reproduces the issue
  • The target URL and expected vs actual results

Start the Browser Server

$HOME/.local/bin/lightpanda serve --host 127.0.0.1 --port 9222

Options:

  • --log_level info|debug|warn|error - Set logging verbosity
  • --log_format pretty|json - Output format for logs

Usage

You can connect directly to the CDP websocket via ws://127.0.0.1:9222. You can also get the WebSocket URL via http://127.0.0.1:9222/json/version.

Use the browser as a drop-in replacement for Chrome and the Openclaw default browser. Send CDP commands directly or use Playwright or Puppeteer.

Important to note:

  • Lightpanda executes JavaScript, making it suitable for dynamic websites and SPAs. However, it is under heavy development and may have occasional issues.
  • For web searches, use DuckDuckGo instead of Google. Google blocks Lightpanda due to browser fingerprinting.
  • Lightpanda supports only 1 CDP connection per process. Each connection can create 1 context and 1 page only. No multi-contexts are available. If you need multiple navigations at the same time, start another process with a new port number. Lightpanda is fast to start and stop, so using multiple processes is more performant than multiple tabs on Chrome.
  • The browser resets all context/page on CDP connection close. So keep the websocket connection open throughout a browsing session. You can reuse an existing process for a subsequent connection; you will start with a clean state.
  • On connection, always create a new context and a new page. At the end, close both.

Using with playwright-core

Connect to Lightpanda using playwright-core (not the full playwright package):

const { chromium } = require('playwright-core');

(async () => {
  // Connect to Lightpanda via CDP
  const browser = await chromium.connectOverCDP({
    endpointURL: 'ws://127.0.0.1:9222',
  });

  const context = await browser.newContext({});
  const page = await context.newPage();

  // Navigate and extract data
  await page.goto('https://example.com');
  const title = await page.title();
  const content = await page.textContent('body');

  console.log(JSON.stringify({ title, content }));

  await page.close();
  await context.close();
  await browser.close();
})();

Using with puppeteer-core

Connect to Lightpanda using puppeteer-core (not the full puppeteer package):

const puppeteer = require('puppeteer-core');

(async () => {
  const browser = await puppeteer.connect({
    browserWSEndpoint: 'ws://127.0.0.1:9222'
  });

  const context = await browser.createBrowserContext();
  const page = await context.newPage();

  await page.goto('https://example.com', { waitUntil: 'networkidle0' });
  const title = await page.title();

  console.log(JSON.stringify({ title }));

  await page.close();
  await context.close();
  await browser.close();
})();

Scripts

  • install.sh - Install Lightpanda binary