Show it a repeated workflow. OpenAdapt compiles it into governed, deterministic replay.¶
OpenAdapt is a demonstration compiler for repeated GUI work across browser, Windows, macOS, Linux, RDP, Citrix, and other virtual desktops. Demonstrate a task once. OpenAdapt compiles it into a deterministic, locally executable program that replays with no model calls on a healthy run. When interfaces drift, it re-resolves targets deterministically or uses an explicitly configured model tier, records the repair, and halts instead of guessing when verification fails.
Try it locally Read the concepts Evaluate a workflow
Who it is for¶
OpenAdapt is built for regulated, repetitive work in web, desktop, and virtual-desktop interfaces: the 500th patient referral this month, the daily claims batch, the mortgage file that moves through six screens the same way every time. A person has already figured out the task, it runs many times, and a wrong action has real cost.
A computer-use agent re-reasons through the whole task with a large model on every run. That fits a task nobody has automated before, not a workflow you run a thousand times. OpenAdapt compiles the demonstration instead, so the model is consulted only to repair the script, not to drive it.
One compiled workflow and one governance model run across browser, Windows, native macOS, native Linux, RDP, Citrix, and other VDI surfaces. Each substrate supplies the strongest observations and actions available; the compiler, identity checks, effect verification, policy, repair, and audit trail stay consistent. Teams qualify each workflow against its real application and success oracle before production use.
Three things that make it different¶
-
Deterministic, model-free replay
A compiled workflow replays with zero model calls on the healthy path. Structural selectors or accessibility evidence lead where the surface provides them; visual anchors, OCR, and geometry cover opaque interfaces. Self-hosted healthy replay has no model-API charge; hosted infrastructure and service pricing are separate.
-
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 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 instead of guessing.
A halt is not a dead end. Demonstrate the fix once and openadapt flow teach
compiles the correction back into the workflow, through the same identity,
effect, and policy checks that gate everything else, so it will not halt on that
situation again. The correction becomes 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.
One runner, any surface, any deployment¶
The execution contract carries the same compiled bundle across surfaces and deployment boundaries. A substrate-agnostic runner routes each job to the right driver while governance stays above that boundary. Two orthogonal axes, one contract:
| Deployment ↓ / Substrate → | Web (browser) | Windows UIA | Native macOS | Native Linux | RDP | Citrix / VDI |
|---|---|---|---|---|---|---|
| OpenAdapt Cloud | Managed runner, schedules, reports, usage, and billing | Customer-controlled runtime connected to Cloud | Customer-controlled runtime connected to Cloud | Customer-controlled runtime connected to Cloud | Customer-controlled runtime connected to Cloud | Customer-controlled runtime connected to Cloud |
| Customer cloud / BYOC | Customer runner and storage with managed governance | Customer runner and storage | Customer runner and storage | Customer runner and storage | Customer runner and storage | Customer runner and storage |
| Self-hosted / on-prem | Local runner and audit trail | Local runner and audit trail | Local runner and audit trail | Local runner and audit trail | Local runner and audit trail | Local runner and audit trail |
You choose where execution and data live. For regulated data the
run verb is fail-closed by default:
it gates certification, identity and effect coverage, approval fallback,
encryption, and manifest integrity before execution.
The public subscription covers approved browser workflows on the managed runner. Windows, macOS, Linux, RDP, and Citrix/VDI execute in a local, self-hosted, or customer-controlled boundary and can connect to the same Cloud control plane for governed operation. They are not silently moved into OpenAdapt's shared managed-browser boundary or included as managed-runner entitlements. The hosted guide, qualification evidence, and commercial terms define the accepted scope. Artifacts cross boundaries only as approved sanitized derivatives; PHI/PII-bearing runtime observations stay inside their declared trusted execution boundary.
Measured, not claimed¶
The OpenAdapt website and public Cloud demo share one viewer contract for real OpenEMR, Frappe Lending, and openIMIS footage:
- Recorded demonstration is source capture and carries no execution outcome.
- Verified replay appears only for exact replay media bound to a complete passing outcome contract.
- Fail-safe halt appears only when exact retained halt media exists. The current openIMIS reference includes it; the viewer never invents a halt mode for another application.
Guided view adds the presentation layer to a derivative; Raw footage shows the immutable media. Guided target tracking appears only when the media digest, exact decoded frame, viewport mapping, and runtime target binding all agree. The status capsule uses a bottom corner that does not cover the target or another protected region, and disappears if neither corner is safe. Neither the target outline nor the capsule is verification evidence.
Cloud uses the same application, mode, and view choices, then adds an openIMIS deep dive with the compiled graph, contracts, six retained Standard-profile results, and byte-inventoried evidence links. VERIFIED means the complete declared contract passed; HALTED means the run stopped rather than claim an outcome it could not prove.
Watch the shared real-application demo Inspect the Cloud evidence deep dive
We publish the numbers and the failure modes. This result runs both arms, compiled replay against a computer-use agent, under the same arm-independent success check. OpenEMR is the flagship real-EMR head-to-head:
| 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 |
The compiled arm made no model calls and recorded no model-API cost in these measured runs. This excludes authoring, review, infrastructure, exception, and service costs. Full methodology and caveats live in the openadapt-flow benchmark docs.
Governed replay across verticals¶
On 2026-07-21, the paid computer-use agent arm was run on all three pinned,
synthetic reference environments. Each trial began from a reset baseline,
drove the same task contract as the compiled reference, and was classified by
an arm-independent system-of-record oracle rather than pixels or the agent's
self-report. The agent used claude-sonnet-5 with explicit action and cost
caps.
| Vertical (pinned, synthetic) | Earlier compiled / API reference | Paid computer-use agent |
|---|---|---|
| Insurance (openIMIS claim intake) | 3/3 compiled replays SQL-verified, $0, 0 model calls | 3/3 correct, 0/3 over-halt, 0/3 silent incorrect, $0.4793/run |
| Lending (Frappe Lending loan application) | compiled + API 12/12 correct, $0, 0 model calls | 6/6 correct writes (5/6 clean), 1/6 post-write cost-cap over-halt, 0/6 silent incorrect, $0.4240/run |
| Healthcare (OpenEMR patient registration) | compiled + API 12/12 correct, $0, 0 model calls | 0/6 correct; 6/6 missing write, 0/6 over-halt, 0/6 silent incorrect, $0.8901/run |
These are not matched head-to-head rows. The paid-agent trials used newly provisioned baselines separate from the earlier compiled/API subsets, and the sample is small (3-6 trials per environment). They are local engineering evidence, not a publication matrix, certification result, or broad claim about computer-use agents. The OpenEMR row is an honest negative result: all six bounded runs ended after exhausting their action budget without writing a patient.
All three environments used synthetic data on one local host and ran through the Browser (Playwright) substrate, whose reference path is Beta. The healthcare row is distinct from the shared-public-demo OpenEMR field result above. Frappe Lending and openIMIS are API-rich references, and neither is evidence for a legacy Windows/Citrix system.
The public aggregate report retains the method, run counts, outcomes, failure taxonomy, and caveats. Raw per-run rows, environment fingerprints, detailed spend records, and application-specific driver/oracle recipes are retained privately and are not part of the public repository or package.
Start here¶
-
Install, compile, lint, certify, drift, inspect, teach, and deploy.
-
Accepted substrate results, exact environments, and deployment boundaries.
-
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.