Handoff

When an agent hits a wall, it asks a person.

Handoff is an await human() call. The agent blocks, a phone rings, and whoever picks up gets a live view of the agent's own browser. They clear the wall or type the answer, press one button, and the blocked call returns.

Open the last handoff

What a handoff looks like

Agent
Stopped at a verification checkbox it could not tick, and held its run open.
Phone
Rang a real person and read out what was blocking the run.
Person
Ticked the box inside the agent's own browser and pressed I cleared it.
Agent
Resumed mid-call and finished the run.

The whole SDK

import human

# The agent hits a verification checkbox it cannot solve.
cleared = human.clear_wall(
    reason="A human-verification checkbox is blocking checkout",
    live_view_url=browser.live_url,   # your sandbox's screencast
    resume_url=browser.resume_url,    # told the moment the wall is gone
    timeout_s=600,
)

# Or just ask a question and wait for a typed answer.
shipping = human.ask("Which address should I ship to?")

Text approvals in chat already exist. What they leave out is a phone that actually rings and a browser a person can take the wheel of.

Every handoff so far

StateWhat stopped the runAgent
Handed backA human-verification checkbox is blocking the Northwind partner portaldemo-agentOpen
Handed backA human-verification checkbox is blocking the Northwind partner portaldemo-agentOpen
Handed backA human-verification checkbox is blocking the Northwind partner portaldemo-agentOpen
Handed backA human-verification checkbox is blocking the Northwind partner portaldemo-agentOpen
Handed backA human-verification checkbox is blocking the Northwind partner portaldemo-agentOpen
Handed backA human-verification checkbox is blocking the Northwind partner portaldemo-agentOpen
Handed backA human-verification checkbox is blocking the Northwind partner portaldemo-agentOpen
Handed backA human-verification checkbox is blocking the Northwind partner portaldemo-agentOpen

Built at Night Hack, 2026-07-24. MIT. Requests live in one process on purpose.