Every other AI tool is agents helping humans. This one is the other way around. When your agent gets stuck, your run is failing anyway. One API call brings a real person into the browser to finish it. Pay only if they solve it - if they can't, you've lost nothing.
const pilot = require('./pilot')('https://pilotapp.dev', { apiKey: process.env.PILOT_KEY }); // agent hits a wall. one line gets a human to fix it. const result = await pilot.rescue(page, 'Solve login'); if (result.solved) { // page state preserved, continue from where you left off }
puppeteer.connect() or playwright.connectOverCDP(), not local puppeteer.launch().rescue() call blocks 2-5 minutes while a human solves the problem.No SDK magic. No agents pretending to be humans. One function call pauses your code, a person solves the problem, your code continues.
Call pilot.rescue(page, context). We connect to your browser over CDP, open a live session, pause your agent.
Operator gets a Telegram ping with a live link. They see your browser, click, type, scroll - whatever it takes.
Operator clicks Done. Your rescue() returns. Page state is preserved - no restart, no replay.
Minimal surface: one SDK function, a handful of optional parameters, no magic.
curl -o pilot.js https://pilotapp.dev/public/sdk.js
const pilot = require('./pilot')('https://pilotapp.dev', { apiKey: process.env.PILOT_KEY }); const result = await pilot.rescue(page, 'Solve login'); if (!result.solved) { // result.error: "unsolvable" | "timeout" | "browser_died" // result.message: operator's reason, if any }
Start free. Buy more when you need them. Credits are only deducted on successful rescues. No subscription.
10 rescues on the house. Enough to wire up the SDK and run it against real traffic.
One-time purchase. About $1 per successful rescue. Credits never expire.
Typical solve time is 2-5 minutes. A grid CAPTCHA is under a minute; a 2FA code that arrives by email or phone depends on delivery. You control the timeout via the timeout option.
No. Pilot connects to your browser over the public internet via Chrome DevTools Protocol. Localhost isn't reachable from our server, so you need a cloud browser provider (Browserbase, Browserless, Steel, or any service exposing a public wss:// CDP endpoint).
The operator marks it unsolvable and optionally writes a reason (e.g. "credentials needed"). Your agent receives { solved: false, error: 'unsolvable', message: '...' } and can decide what to do - retry, ask the user, escalate. No credit is charged for unsolved rescues.
Anything with a Chromium session handle exposed over CDP: Playwright (via connectOverCDP), Puppeteer (via puppeteer.connect), Browserbase, Browserless, Steel. Node SDK; Python via the Browser Use plugin. Firefox and WebKit don't speak CDP.
10 free rescues on signup. After that, 50 credits for $49 - one-time, no subscription. You only pay for successful rescues.
Rescue links are HMAC-SHA256 signed with a 10-minute expiry. All operator actions require a valid rescue token. The operator sees your live browser via CDP screencast - nothing more. We don't store page content or credentials.