flowpilot_
Explore once. Replay forever. Humans in the loop — programmatically.
Self-hosted, API-first browser automation. An AI agent explores a website once and compiles small cached JavaScript "reflexes" per stage. Warm runs replay those reflexes with zero LLM calls — roughly 10× faster than agent-driven runs — and when something breaks, it degrades gracefully instead of falling over.
Three tiers. Zero stack traces.
Selectors drift. Layouts change. Flowpilot treats failure as a routing decision, not an exception — every miss falls through to a smarter (slower) tier, then repairs itself.
Cached reflex
The compiled JavaScript reflex for this stage replays directly against the page. On a soft failure it attempts auto-repair in place before escalating.
LLM regeneration
The LLM takes a live DOM snapshot and regenerates a fresh script for the stage — targeted, single-shot, and cached back on success.
Full agent
Last resort: the full agent takes over the browser, works the problem end to end, and saves new reflexes so next time it never gets this far.
It fails toward intelligence, not toward a stack trace.
HITL as an API primitive
Auth walls and CAPTCHAs aren't crashes — they're pauses with a handoff protocol.
When a run hits an auth wall or CAPTCHA it pauses and fires an HMAC-signed webhook containing a live browser URL and a resume endpoint. Whoever receives it can take over the actual browser session — not a screenshot, the real thing — clear the obstacle, then hit resume. Cookies are captured and the run continues where it left off.
"Whoever" is deliberately open-ended:
- a human clicking through from a Slack bot message
- an on-call rotation via your paging system
- an external CAPTCHA-solving service, fully automated
- any system that can open a URL and POST to another
webhook · run.paused{ "event": "run.paused", "run_id": "42", "reason": "auth_required", "stage": "checkout/login", "browser_url": "wss://flowpilot.local/runs/42/browser", "resume_url": "https://flowpilot.local/api/runs/42/resume", "expires_at": "2026-07-19T14:32:00Z" }
API-first, self-hosted, sandboxed
REST + webhooks
Every capability is an endpoint. Webhooks are HMAC-signed so downstream systems can verify provenance before acting on a pause or completion event.
Trigger hooks
Kick off runs from Slack, Zapier, or plain cron. Flowpilot is designed to sit inside your existing plumbing, not replace it.
Isolated sandboxes
Each run executes in its own Docker sandbox — clean state, contained blast radius, reproducible environment per execution.
Self-hosted
Your infrastructure, your credentials, your data. Nothing about your sessions or cached reflexes leaves your machines.