NetVM: document CDP agent automation
This commit is contained in:
@@ -90,6 +90,25 @@ Identity creation is the human's job; lifecycle is scriptable:
|
||||
|
||||
Tear down: `bin/netvm-node-down.sh <node>` (sudo).
|
||||
|
||||
## Agent automation via CDP
|
||||
|
||||
Every profile launch exposes Chrome DevTools Protocol (deterministic port
|
||||
per profile, see `bin/netvm-names.sh`). Chromium binds DevTools to loopback
|
||||
only, so node-up runs a tiny TCP relay (`bin/netvm-cdp-relay.py`,
|
||||
pidfile-supervised) from the veth IP to loopback.
|
||||
|
||||
- Local (on the node host): `curl http://<veth-ip>:<cdp-port>/json/list`
|
||||
- Remote operator: `ssh -L <port>:<veth-ip>:<port> <user>@<tail-ip>` then
|
||||
point Playwright (`connect_over_cdp`) or Puppeteer (`puppeteer.connect`)
|
||||
at `http://127.0.0.1:<port>`.
|
||||
- `bin/netvm-cdp.sh <profile>` prints the endpoint and the SSH command.
|
||||
- `bin/netvm-chrome.sh --headless <profile>` runs without a display.
|
||||
- CDP `Page.startScreencast` streams the live page — the human handoff path
|
||||
(e.g. CAPTCHA): agent screencasts, human completes, agent resumes.
|
||||
|
||||
CDP is full browser control (cookies included). Exposure is host-local:
|
||||
veth IPs aren't routable off the host and Warp forwards no inbound traffic.
|
||||
|
||||
## Files
|
||||
|
||||
- bin/netvm-verify.sh — prerequisite checks (ip, wg, netns, tailscale…).
|
||||
|
||||
Reference in New Issue
Block a user