Wenlan
Wenlan is a source-backed AI knowledge base and LLM wiki for AI work: organize documents and decisions into pages you can find, inspect, and review.
翻訳待ち
A person or an AI agent does a data-entry task once; OpenAdapt runs it as a checked program with no AI model. Real recordings with synthetic patients and claims.
翻訳待ち
生産性Python · HTMLGitHub @OpenAdaptAIオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
For EHRs, payer portals, and any app your team clicks through. A person or an agent shows the task; OpenAdapt turns it into a local program that repeats the steps with no model calls, checks each save, and stops when something doesn't match.
翻訳待ち
Loading the full README.
Read the full README ↗Give your agent a program, not a mouse.
The open-source, verified execution layer for computer-use agents.
What it can do · Documentation · Quickstart · Live demo · Website · Get updates · Discord
A computer-use agent looks at the screen and chooses every click again, on every run. OpenAdapt lets your agent, or a person, do a task once in a web, Windows, macOS, Linux or remote-desktop app. It compiles that run into a program, and your agent calls the program as one tool. The program runs with no model calls and sends no screenshots anywhere. It confirms the right record before each save, reads the save back from the system of record after it, and returns a plain outcome. When anything doesn't match, it stops and tells your agent instead of guessing.
One new-patient referral in a test copy of OpenEMR, the open-source EHR whose 7.0 release is ONC-certified, timed from a fresh browser through sign-in, the entry and the saved record read back (median):
| Who does the entry | Time per referral | Saved correctly | Model cost |
|---|---|---|---|
| Agent alone (Claude Sonnet 5.5 computer use) | ██████████████████ 36.5 s | 62 of 63 | about $0.08 |
| OpenAdapt program, screen steps | ███████████ 22.5 s | 18 of 18 | $0 |
| OpenAdapt program, API step | ██ 3.3 s | 18 of 18 | $0 |
The API step replaces the program's 41 screen steps with the one form submission the app itself sends, then reads the record back. In both program rows a possible-duplicate referral stopped without saving, as it should. Both program rows ran on 19 Oct on one copy of the app, interleaved, with the approval gate off; the benchmark harness admitted the API step. The agent row is the 14 to 15 Oct timing study, on its own copy of the app. SCOREBOARD.md has every run.
On a test copy of openIMIS, the open-source insurance and claims system that runs Nepal's national health insurance scheme, the compiled program entered 149 synthetic claims with no model calls: 148 read back correct and none were saved wrong (SCOREBOARD.md).
A screen can't show a save that went wrong behind it. On a test copy of OpenEMR, with faults injected in its database (a field blanked, a value changed, a duplicate chart, a chart removed, another chart deleted or edited), the agent claimed success on all 30 bad saves. Reading the record back caught 25 of the 30 and confirmed all 5 clean saves, with no false alarms. On MockMed, a test app that shows a save as done before its server answers, the agent also claimed all 30 bad saves, and the read-back caught all 30 (details below).
| Mode | What happens | Model calls |
|---|---|---|
| Explore | Your agent, or a person, does the task once while OpenAdapt records every action. The save is read back before anything compiles. | Your agent's, on your own key |
| Run | The compiled program repeats the task with new inputs. It checks the record before each save and reads it back after. | None |
| Repair | When the app changes, the run stops before saving. An agent shows the fix, the program tries it up to the save without saving, and a person approves it. | Only when something changed, on your own key |
A success screen is not proof of a save. We injected 8 kinds of bad save into a test app (a save that never landed, landed partly, landed twice, went to the wrong record, or changed another record), 9 runs each, alongside clean runs. Each check below was asked whether those 72 bad saves had succeeded:
| How the save was checked | Bad saves reported as saved |
|---|---|
| The app's "Saved" message on screen | 54 of 72 |
| A read of the record over the app's REST API | 9 of 72 (all writes to a table it didn't read) |
| A read of every table in the database | 0 of 72 |
EFFECT_E2E.md has the fault set, the method and the raw results.
This is the beginning of the README. Read the rest at the original. Read the full README ↗