# What Kaabist does

Everything Kaabist does: build a program in the visual builder, with a coding agent or as JSON; run it on a schedule, a call or a batch; and keep it working when the site changes.

- [Resumes where it stopped](https://kaab.ist/product/resume): Some steps only you can finish: a one-time code, a captcha, an approval. Kaabist pauses the run right there and emails a link to you, or to the teammate or customer you choose. Once they answer, the program continues from its last checkpoint. Nothing starts over.
- [Visual builder and recorder](https://kaab.ist/product/builder): Record the task in a live Kaabist browser, pick the data you want, and edit the steps and the JSON side by side. Test any step against the real site before you publish. No agent and no code needed, and nothing hidden when you want them.
- [Built by your coding agent](https://kaab.ist/product/mcp): Connect Claude Code, Codex or Cursor to mcp.kaab.ist. Your agent opens a real Kaabist browser, works through the site with you, and what it does becomes a program: versioned, linted, and tested with a dry run before it ever submits anything.
- [Never submits twice](https://kaab.ist/product/side-effects): Mark the steps that change something (a submit, a payment, an order) as side effects. Kaabist writes each one down just before it runs and again once it has worked. If a server crashes in between, Kaabist never presses the button again on its own: it pauses and asks you to check.
- [Self-healing locators](https://kaab.ist/product/self-healing): Every target is recorded with several ranked locators and a fingerprint of the element it found. When the site changes and they stop matching, Kaabist finds the element again, writes the fix down as a proposal, and lets you promote it to a new version.
- [API discovery](https://kaab.ist/product/api-discovery): On a browser run, Kaabist watches the network for the JSON response that carries the values you extract. Once it has verified that endpoint, later runs read it directly on the HTTP tier: faster, and cheaper in credits.
- [Sessions and schedules](https://kaab.ist/product/sessions-and-schedules): A session keeps a site's login between jobs, so later runs skip straight past it. A schedule runs a program on a cron, compares each result with the last, and sends an event only when the data actually changed.


## Build

- **Visual builder** A step list and the JSON side by side, in sync, linted as you type.
- **Recorder** Click through the site in a live Kaabist browser; each action becomes a step.
- **Picker** Pick a value, select similar for a list, across frames and shadow DOM.
- **Coding agents** Claude Code, Codex or Cursor over MCP, signed in with OAuth, in test mode first.
- **Programs as files** Pull, diff, lint and push program JSON with the CLI, from your repository.
- **Versions and aliases** Every publish is a version with a diff; an alias such as production picks one.

## Run

- **API and SDKs** REST, TypeScript, Python and Go, with idempotency keys.
- **Schedules** Cron with a time zone, overlap and catch-up rules, and change detection.
- **Batches** Up to 1,000 inputs in one call, followed as one batch.
- **Tiers learned per site** Plain HTTP where it works, a real browser where it must, picked per site.
- **Estimates and dry runs** The cost before a run; a dry run stops before the first submit.
- **Test keys** Real runs on their own small daily quota, kept for a day.

## Keep working

- **Self-healing** A moved element is found again; the fix is a proposal you approve.
- **Drift warnings** Canary runs and fill rates warn you before your own runs fail.
- **Popups cleared** Cookie banners, modals and product tours closed before they block a click.
- **Captcha policy** Per program: pause for a person, solve, or fail.
- **API discovery** The JSON behind a page is found, and later runs skip the browser.

## People in the loop

- **Resumes where it stopped** A 2FA code or a question pauses the run; it continues from its checkpoint.
- **Hosted answer page** You, a teammate or your own customer answers from a link Kaabist sends.
- **Take over live** Watch a run in its browser and step in; what you do becomes a proposed fix.
- **Never submits twice** A step that submits runs once, even after a crash; then it asks you.

## Data

- **Typed fields** Money, dates, numbers and links parsed by locale, checked, with warnings.
- **Every kind of locator** CSS, XPath, text, role, test id, regex, embedded JSON, network responses.
- **Downloads and screenshots** Files up to 20 MB named from your inputs; screenshots never, on failure or always.
- **Sessions** Logins saved encrypted, checked before use, renewed by a program of their own.

## Deliver and operate

- **Signed webhooks** About 25 events, retried for up to 12 hours, with Slack and Discord formats.
- **Bring your own** Your proxies, LLM or captcha solver; that line leaves your bill.
- **Teams** Roles from owner to viewer, two-factor sign-in for owners and admins, an audit log.
- **Keys** Live and test keys with scopes, rotated with a grace period.
- **Your data** Secrets kept out of logs, snapshots and screenshots; export or delete everything.
