
The little red button for AI agents on the web. When a bot gets stuck, it raises its hand — and a human takes over in seconds.
> agent.checkout.run()
[agent] navigating cart...
[agent] captcha detected ⚠
[agent] rhi.request({
reason: "captcha",
screenshot: "…",
timeout: 30s
})
[rhi] pinging human operator...
[human] ✔ solved in 6.4s
[agent] resuming...
[agent] ✔ order #A-19204 placed▊Three steps. One SDK. Every agent gets a raised-hand button.
A CAPTCHA. A 2FA prompt. A weird modal. The bot raises its hand instead of guessing.
One line of code opens a live handoff — screen, DOM, and the exact question the agent needs answered.
You (or an operator) click, type, or approve. The agent resumes exactly where it stopped.




RHI ships as an SDK for the biggest agent frameworks. When your agent hits uncertainty, it calls rhi.request() — we handle routing, screenshots, and the human.
npm i @rhi/sdk
import { rhi } from "@rhi/sdk";
if (agent.stuck) {
const answer = await rhi.request({
reason: "needs 2FA code",
page, // playwright page
timeout: 60_000,
});
agent.resume(answer);
}▶ Read the docs