Moli CDP Server
Start Moli and connect CDP automation clients
LexMount
@lexmount
Install
$ openclaw skills install @lexmount/moli-cdp-serverRun Moli's CDP Server
Run one Moli CDP server and connect the requested CDP client to its endpoint. Preserve the client's existing API where Moli supports it.
Workflow
-
Resolve
molifromPATH. If it is unavailable, install the latest prebuilt release for the current platform:Linux or macOS:
curl --proto '=https' --tlsv1.2 -fsSL \ https://github.com/lexmount/moli/releases/latest/download/moli-installer.sh | shOn Windows, use PowerShell:
irm https://github.com/lexmount/moli/releases/latest/download/moli-installer.ps1 | iexResolve the installed binary again and run
moli --version. The default location is~/.local/bin/molion Linux/macOS and%LOCALAPPDATA%\Moli\bin\moli.exeon Windows when it is not yet onPATH. -
Start
moli serveon the default loopback endpointhttp://127.0.0.1:9222. -
Add
--layoutwhen the workflow needs real element geometry, coordinate input, screenshots, PDFs, or screencasts. Add--resourceonly when all optional visual/media resources are required. -
Probe
/json/versionbefore connecting the client. -
Connect with the client's remote/attach API; do not launch a second bundled browser.
-
Close CDP clients cleanly, then stop the Moli server if this workflow owns it.
Playwright over CDP
import { chromium } from "playwright";
const browser = await chromium.connectOverCDP("http://127.0.0.1:9222");
const context = browser.contexts()[0];
const page = context.pages()[0] ?? await context.newPage();
await page.goto("https://example.com");
console.log(await page.locator("body").innerText());
await browser.close();
Integration rules
- Bind to
127.0.0.1by default. Expose another host only when the user explicitly needs remote access and has addressed network access controls. - Treat Moli as a remote endpoint. Avoid Chrome launch flags and assumptions that require a local Chromium executable.
- Expect selected CDP coverage, not complete Chrome protocol parity. Preserve explicit unsupported errors.
- Use a unique port for parallel isolated runs.
- Persist state intentionally with
--profile-dir; otherwise keep runs disposable. - Pass proxy, cookie, resource, user-agent, and private-network policy to the Moli server, not to a nonexistent child browser process.
Read references/protocols.md for CDP discovery URLs, server options, client selection, and connection troubleshooting.
Top skills in this category
Deep Scraper
@opsunPerforms deep scraping of complex sites like YouTube using containerized Crawlee, extracting validated, ad-free transcripts and content as JSON output.
Larry
@olliewazzaAutomate TikTok slideshow marketing for any app or product. Researches competitors, generates AI images, adds text overlays, posts via Postiz, tracks analyti...
ATXP
@emilioaccAccess ATXP paid API tools for web search, AI image generation, music creation, video generation, X/Twitter search, email, and agent account management. Use...
diagram-generator
@matthewyinGenerate and edit diagrams with the mcp-diagram-generator MCP server. Use this skill for new diagrams, existing .drawio/.mmd/.excalidraw edits, network topology, architecture, flowchart, swimlane, sequence, class, ER, and Excalidraw whiteboard work. Always use this skill when the user asks to draw,
Computer Use
@ram-raghav-sFull desktop computer use for headless Linux servers. Xvfb + XFCE virtual desktop with xdotool automation. 17 actions (click, type, scroll, screenshot, drag,...