Record a workflow once. Replay it forever, for free.¶
OpenAdapt is a demonstration compiler. You perform a GUI workflow one time. It compiles that demonstration into a deterministic, self-healing script that runs locally, verifies real effects against the system of record, and halts rather than guessing. An API compiler for the API-less long tail.
Get started in 5 minutes See how it works
Who it is for¶
OpenAdapt is built for regulated, repetitive desktop and web work: the 500th patient referral this month, the daily claims batch, the mortgage file that moves through six screens the same way every time. Work that a person has already figured out, that runs many times, and where a wrong action has a real cost.
A computer-use agent re-reasons through the whole task with a large model on every run. That is the right shape for a task nobody has automated before, and the wrong one for a workflow you run a thousand times. OpenAdapt compiles the demonstration instead, so the model is only consulted to repair the script, not to drive it.
It runs where that work lives: a web app (the reference Playwright backend), a native Windows desktop via UI Automation, or a pixel-only Citrix/RDP session — all behind one backend protocol, with desktop and Citrix the differentiated wedge.
Three things that make it different¶
-
Deterministic $0 replay
A compiled workflow replays with zero model calls on the healthy path. Local template match, OCR, and geometry resolve each step in milliseconds. No per-run API cost, no network round trip, no cloud dependency.
-
Effect verification
The screen is not the system of record. A save banner can paint over an empty database. OpenAdapt can verify each write against the real record (a FHIR or REST API, a document store) and halt on a mismatch.
-
Halt, don't guess
When the screen stops matching expectations, the run stops with a report instead of clicking the wrong thing. An identity gate refuses to act when it cannot tell two records apart.
The shape of it¶
flowchart LR
A([Demonstrate<br/>once]) --> B[[compile]]
B --> C{{Workflow<br/>bundle}}
C --> D[[replay]]
D -->|healthy path| E([Deterministic<br/>$0 run])
D -->|UI drifted| F[[self-heal]]
F -->|repair as diff| E
D -->|cannot verify| G([Halt safely<br/>+ report])
G -->|demonstrate the fix| H[[learn]]
H -->|governed & gated| C
Each compiled step carries a template crop, an OCR label, geometry landmarks, and postconditions derived from what the demonstration actually changed on screen. At replay a resolution ladder tries them in order. Healthy scripts never leave the first rung. When the UI drifts, a lower rung still finds the target and the fix is written back to the bundle as a reviewable diff. When nothing matches, the run halts safely rather than guess.
A halt is not a dead end. Demonstrate the fix once and openadapt flow teach
compiles that correction back into the workflow (through the same identity,
effect, and policy checks that gate everything else), so it does not halt on
that situation again. The correction is induced as a guarded branch, a
regression gate proves it weakens nothing, and only a verified revision is
promoted (an underdetermined or unsafe fix is refused, not guessed at). It is
deterministic and runs at $0 with the reference inducer. See
The halt-learn loop.
Measured, not claimed¶
We publish the numbers and the failure modes. Two representative results, same success check on both arms:
| Task | Compiled replay | Computer-use agent |
|---|---|---|
| OpenEMR (real third-party EMR, add-patient-note, 18 steps) | 20/20, 39.2s p50, $0/run, 0 model calls | 10/10, 70.4s p50, ~$0.55/run |
| MockMed (CI-reproducible triage task) | 100/100, 4.9s p50, $0/run, 0 model calls | 20/20, 37.5s p50, ~$0.27/run |
The compiled arm costs $0 per run, every run, forever. Full methodology and caveats live in the openadapt-flow benchmark docs.
Stated honestly
Compiled replay has real limits, and we test for them by attacking our own system before anyone else does. A 125% browser zoom currently zeroes replayability. Instance-specific screen state means per-tenant re-recording. On pure-pixel substrates a look-alike identifier can force a halt rather than a verify. The full list is in what it does not do yet.
Start here¶
-
Install and compile your first workflow in about five minutes.
-
The compiler model, the capability ladder, effect verification, the identity gate, and how safety is enforced.
-
Record your own app, handle parameters and secrets, write a policy, and deploy on-prem.
-
Every
openadapt flowverb, the bundle format, and configuration.