moli-cdp-server
GitHub用于启动 Moli CDP 服务端并连接 Playwright、Puppeteer 等客户端,提供无头浏览器控制能力,支持截图、布局分析及远程调试,替代直接启动 Chromium 进程。
Trigger Scenarios
Install
npx skills add lexmount/moli --skill moli-cdp-server -g -y
SKILL.md
Frontmatter
{
"name": "moli-cdp-server",
"description": "Start Moli's CDP server and connect Playwright, Puppeteer, or raw CDP clients. Use to run a headless-browser CDP endpoint, replace a Chromium process, attach over CDP, enable real layout and screenshot surfaces, or diagnose CDP discovery, connection, and target startup—even when Moli is not named."
}
Run 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:
powershell -ExecutionPolicy ByPass -c "irm https://github.com/lexmount/moli/releases/latest/download/moli-installer.ps1 | iex"Resolve 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.
Version History
- 62b1600 Current 2026-09-08 17:40


