Skip to content
@OpenAdaptAI

OpenAdapt.AI

Compiles a demonstrated GUI task into a program that reports VERIFIED only if an independent check agrees.

OpenAdapt

OpenAdapt enters approved information into the systems your team already uses, and then it checks that the entry saved.

It does this last manual step for your team in EMRs, payer portals, and desktop apps, including apps your staff reach through Citrix or remote desktop. When something doesn't match, it stops and asks a person instead of guessing.

Watch the live demo · Discuss your workflow · Run it yourself · Visit openadapt.ai

The live demo plays recorded runs that use synthetic data.

What changes for your team

Take a faxed referral that staff enter into the EMR.

Today With OpenAdapt
Entering it A staff member keys each referral by hand. Two hospital time studies put one faxed referral at about 10 to 12 minutes of staff time. OpenAdapt enters the approved fields in the same EMR screens your staff use.
Knowing it saved Someone sees "Saved" and moves on. OpenAdapt reads the saved record back and compares it with what it entered.
When something's off It turns up later, at booking or billing. The run stops before it guesses, and a person decides what happens next.
Your staff's part Type every referral. Review the runs that OpenAdapt stops on.

The time studies are from UCSF, JAMIA Open 2020 (its mean includes a call to the patient) and Calderdale and Huddersfield NHS Foundation Trust, HFMA 2024. Nobody has measured an "after" time with OpenAdapt yet, so this table doesn't claim a time saving.

OpenAdapt doesn't need an EMR integration. The record check needs a second way to read the record, such as a report, an API, or a read-only login. To see which EHR tasks have a public API and which still end at a screen, browse the EHR Integration Directory that we publish (source). An EHR listed there isn't an OpenAdapt partner.

How a run ends

Every run ends with one of these results, and every run leaves a report.

Result What it means
Done and checked It saved the entry and read the record back to confirm it.
Stopped before saving Something didn't match, so it stopped before it changed anything and asked a person. Nothing was written.
Check the record A save may have gone through. A person checks the record before anything is retried.
Finished, not checked It did the steps but didn't confirm the saved result, as in a practice run.
Didn't finish It couldn't complete the task. Its report says what's known about whether anything was written.

It runs on a computer you control, or on one we host. A routine run makes no AI model calls.

Two ways to start

Hand the workflow to us, or run the open-source engine yourself.

Hand off a workflow

Tell us about a task your team repeats: discuss your workflow.

  1. You show us the task once, on your own system.
  2. We build the automation and test it with your own cases before it goes live.
  3. We keep it working. When a screen changes, we propose a fix, and a person on your team approves it.

We scope services per workflow. If your own AI product decides what to enter, OpenAdapt can make that final entry and return the result to your product. See OpenAdapt Execute.

Run it yourself

The engine is free and open source under the MIT license. With Python 3.10, 3.11, or 3.12, run:

python -m pip install --upgrade openadapt
openadapt quickstart --break-it

This runs a synthetic clinic task twice on your computer. The first run is done and checked. In the second run, the test server rejects the save after the app shows that it saved. The record check finds no saved record, so the run ends with "Check the record" instead of reporting success. On Python 3.13 or newer, install with uv tool install --python 3.12 openadapt instead.

To record your own task, follow the walkthrough. To have us run the computer for browser workflows, see the hosted plans on the pricing page.

For developers

OpenAdapt compiles demonstrations into governed workflows across browser, native desktop, RDP, and Citrix. The default healthy path executes deterministically and makes no generative-model API calls. Consequential actions are identity-gated, results are checked against the workflow's evidence contract, and uncertainty halts for review instead of being reported as success.

Each result in How a run ends comes from the engine's outcome. Both kinds of stop report HALTED, so read the transaction outcome before you tell anyone whether something was written.

Result Engine outcome
Done and checked VERIFIED
Stopped before saving HALTED with transaction outcome HALTED_BEFORE_EFFECT
Check the record HALTED with transaction outcome RECONCILIATION_REQUIRED, or any uncertain delivery
Finished, not checked COMPLETED_UNVERIFIED
Didn't finish FAILED

A caller must report a halt as a halt, never as success.

Product surfaces

Target Role
openadapt OpenAdapt installs the openadapt command and the engine.
flow openadapt-flow is the compiler and governed runtime. Engine changes go here.
cloud app.openadapt.ai runs hosted browser workflows and manages runs on computers you control. Its source is private.
desktop openadapt-desktop records, tests, runs, and reviews workflows on your own computer, and handles approved fixes.
capture openadapt-capture records screen, input, timing, and window evidence for Desktop and Flow.
agent openadapt-agent gives agents governed Flow workflows as local MCP tools and Agent Skills.
docs docs.openadapt.ai is the documentation site. The Support repository openadapt-ops publishes it.

These targets form one product across browser, Windows, macOS, Linux, RDP, and Citrix or other virtual desktops. Qualification is per workflow. A product release admission doesn't qualify any workflow. Current signed admissions are in the live record.

Evidence

Both studies grade each run with a check that doesn't depend on the thing being tested.

Fault test

We injected faults into saves that our own engine made to a test record system: nine injected faults and one clean control, nine runs each. In 72 of 90 runs, the record ended up wrong: missing, partial, duplicated, on the wrong record, or with other records deleted or added. The table shows how many of those runs each kind of check still passed.

Check Wrong records it passed
Trust the app's success banner 54 of 72 (75.0%)
One separate read of the record 9 of 72 (12.5%)
A read of every table in the test database 0 of 72

The 9 that one separate read passed were all one kind: a write to a billing table that read didn't cover. The zero covers only the audited test database. Every check also stopped 9 of 18 runs that had saved correctly, because the client never got the server's reply. This test covers a fixed list of faults. It doesn't measure a real-world error rate. Method and caveats.

OpenEMR field test

On the shared OpenEMR public demo, with fake patients and an 18-step task that adds a patient note, compiled replay finished 19/20 runs at 39.2s median with no model calls. A computer-use agent finished 10/10 runs at 70.4s median, at about $0.55 a run at the July 2026 list price. The one compiled run that didn't finish stopped at step 17, before saving, instead of reporting success. We measured this on 2026-07-08 with a development build of Flow 0.1.0. It's a small sample on a demo that resets daily, so CI can't reproduce it. OpenAdapt isn't affiliated with the OpenEMR project. Method and caveats.

Neither study is a production reliability or clinical safety claim. The model charge leaves out authoring, review, maintenance, and infrastructure. Read the limits before you extrapolate. Runnable references are in openadapt-flow/docs/showcase, and each method is under benchmark.

Research and labs

Model training, retrieval, grounding, and general computer-use work are Research: openadapt-ml, openadapt-retrieval, openadapt-grounding, and openadapt-evals, which scores agents and OpenAdapt programs on public benchmarks. You don't need any of them to record, build, or run an automation.

OmniMCP, SoM, and PydanticPrompt are Labs projects. The product doesn't depend on them. The public lifecycle registry classifies every other repository as Support, Experimental, Historical, Superseded, Deprecated, Archived, or Internal.

Contribute

Engine changes belong in openadapt-flow. Packaging and launcher changes belong in OpenAdapt. Use each repository's issues for scoped work. Unless a repository says otherwise, OpenAdapt code is MIT licensed.

Pinned Loading

  1. OpenAdapt OpenAdapt Public

    Compiles a demonstrated GUI task into a program that reports VERIFIED only if an independent check agrees. pip install openadapt; openadapt flow tutorial. Compiler lives in openadapt-flow.

    Python 1.8k 266

  2. openadapt-retrieval openadapt-retrieval Public

    Multimodal demo retrieval for GUI automation

    Python 1 3

  3. openadapt-evals openadapt-evals Public

    Windows Agent Arena and GUI-agent evaluation for OpenAdapt. Live support surface. Install the product with pip install openadapt; this repo is the eval harness, including WAA.

    Python 4 4

  4. openadapt-grounding openadapt-grounding Public

    Temporal smoothing for UI element detection with OmniParser integration

    Python 1 3

  5. openadapt-capture openadapt-capture Public

    Native desktop recorder that keeps screen, input, timing, and window-scoped evidence synchronized.

    Python 19 8

  6. openadapt-privacy openadapt-privacy Public

    PII/PHI detection and redaction for GUI automation data (text, images, dicts)

    Python 4 5

Repositories

Showing 10 of 54 repositories
  • openadapt-flow Public

    Compiler and governed runtime for demonstrated GUI workflows, with explicit identity, policy, and result checks.

    OpenAdaptAI/openadapt-flow's past year of commit activity
    Python 9 MIT 4 3 2 Updated Oct 14, 2026
  • OpenAdapt Public

    Compiles a demonstrated GUI task into a program that reports VERIFIED only if an independent check agrees. pip install openadapt; openadapt flow tutorial. Compiler lives in openadapt-flow.

    OpenAdaptAI/OpenAdapt's past year of commit activity
    Python 1,776 MIT 266 4 6 Updated Oct 14, 2026
  • openadapt-ops Public

    Source for docs.openadapt.ai, with checks and runbooks that keep the documentation current.

    OpenAdaptAI/openadapt-ops's past year of commit activity
    Python 1 MIT 1 7 5 Updated Oct 14, 2026
  • openadapt-agent Public

    Local bridge that exposes governed OpenAdapt workflows to MCP clients and Agent Skills.

    OpenAdaptAI/openadapt-agent's past year of commit activity
    Python 3 MIT 3 0 6 Updated Oct 14, 2026
  • openadapt-desktop Public

    Desktop application for local workflow authoring, operation, evidence review, and governed repair.

    OpenAdaptAI/openadapt-desktop's past year of commit activity
    Python 6 MIT 5 1 6 Updated Oct 14, 2026
  • openadapt-tray Public

    System tray application for OpenAdapt

    OpenAdaptAI/openadapt-tray's past year of commit activity
    Python 0 MIT 1 1 (1 issue needs help) 6 Updated Oct 14, 2026
  • openadapt-evals Public

    Windows Agent Arena and GUI-agent evaluation for OpenAdapt. Live support surface. Install the product with pip install openadapt; this repo is the eval harness, including WAA.

    OpenAdaptAI/openadapt-evals's past year of commit activity
    Python 4 MIT 4 6 1 Updated Oct 14, 2026
  • ehr-integration-directory Public

    Evidence-backed directory of EHR integration paths, access requirements, and write-back gaps.

    OpenAdaptAI/ehr-integration-directory's past year of commit activity
    TypeScript 0 MIT 0 0 7 Updated Oct 14, 2026
  • openadapt-capture Public

    Native desktop recorder that keeps screen, input, timing, and window-scoped evidence synchronized.

    OpenAdaptAI/openadapt-capture's past year of commit activity
    Python 19 MIT 8 1 5 Updated Oct 14, 2026
  • openadapt-herald Public

    LLM-powered social media announcements from your git history

    OpenAdaptAI/openadapt-herald's past year of commit activity
    Python 1 MIT 1 0 0 Updated Oct 14, 2026