Claude Code
Let Claude Code create, check and drive your Nullprint profiles through MCP.
Attach Playwright scripts to any Nullprint profile over CDP, with its fingerprint and proxy intact.
Playwright is Microsoft's open-source browser automation library. Nullprint starts the profile; Playwright attaches to it over the Chrome DevTools Protocol.
~/.nullprint/daemon.json (Windows: %USERPROFILE%\.nullprint\daemon.json). The key is also on the Automation page.POST /profiles/{name}/external-debug-grant with an x-np-stepup ticket, then PATCH /profiles/{name} with {"launch": {"externalDebug": true}}. Without both, cdp_endpoint stays null — profiles don't open a debugging port by default.pip install requests playwrightimport json, os, time, requests
from playwright.sync_api import sync_playwright
cfg = json.load(open(os.path.expanduser("~/.nullprint/daemon.json")))
BASE = f"http://127.0.0.1:{cfg['port']}"
H = {"X-API-Key": cfg["api_key"]}
NAME = "shop-01" # the internal ID from GET /profiles, not the display label
requests.post(f"{BASE}/profiles/{NAME}/launch", json={"headless": False}, headers=H).raise_for_status()
while True: # launch is asynchronous
p = requests.get(f"{BASE}/profiles/{NAME}", headers=H).json()
if p.get("status") == "running" and p.get("cdp_endpoint"):
break
time.sleep(1)
with sync_playwright() as pw:
browser = pw.chromium.connect_over_cdp(p["cdp_endpoint"])
ctx = browser.contexts[0]
page = ctx.pages[0] if ctx.pages else ctx.new_page()
page.goto("https://example.com")
print(page.title())
browser.close() # only disconnects
requests.post(f"{BASE}/profiles/{NAME}/stop", headers=H) # this closes the browserchromium.connectOverCDP(endpoint).Full API reference: Local API docs
launch.debugPort on the profile.No, it only disconnects. Call POST /profiles/{name}/stop.
Yes: PATCH /profiles/{name} with proxy, or add it to the pool with POST /proxies and assign it.
Pass "headless": true to launch.
Let Claude Code create, check and drive your Nullprint profiles through MCP.
Connect Codex to Nullprint with one command and run browser tasks from the terminal.
Double-click one file and Claude Desktop can manage your Nullprint profiles.