Browser Run adds structured handoff for Human in the Loop
Browser Run now supports structured handoff for Human in the Loop workflows. Using Cloudflare-specific CDP commands, your agent can signal that it needs help, a human steps in through Live View to handle the task, and the agent resumes once the work is done.
For agents running multi-step browser workflows, a single login wall or unexpected prompt can fail the entire run. Previously, scripts had to manage human intervention manually by sharing a Live View URL and polling for completion. Structured handoff replaces this with a formal pause-and-resume flow.
The following example requests human intervention for a login page and waits for the human to finish before continuing:
const cdp = await page.createCDPSession();
// Get Live View URL for the human operator
const { devtoolsFrontendUrl } = await cdp.send("Cloudflare.getLiveView", {
mode: "tab",
});
console.log(`Human input needed: ${devtoolsFrontendUrl}`);
// Request human intervention and wait for completion
const handoffComplete = new Promise((resolve) => {
cdp.once("Cloudflare.handoffComplete", resolve);
});
await cdp.send("Cloudflare.handoff", {
instructions: "Please log in with your credentials",
timeout: 600000,
});
const result = await handoffComplete;
console.log(result.success ? "Handoff complete" : `Failed: ${result.reason}`);Refer to the Human in the Loop documentation for the full API reference, examples, and best practices.