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).
|
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
|
## Files
|
||||||
|
|
||||||
- bin/netvm-verify.sh — prerequisite checks (ip, wg, netns, tailscale…).
|
- bin/netvm-verify.sh — prerequisite checks (ip, wg, netns, tailscale…).
|
||||||
|
|||||||
Reference in New Issue
Block a user