OpenAdaptAI/OpenAdapt

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.

What it solves

OpenAdapt provides a way for AI agents to interact with graphical user interfaces (GUIs) that lack APIs. It solves the problem of "last-mile execution" by allowing a human to demonstrate a task, which is then compiled into a deterministic program that can be executed by an agent with verified results, ensuring that the agent doesn't just "click and hope" but actually achieves the intended business effect.

How it works

Users record a demonstration of a task on a specific surface (web browser, native desktop, or remote display like RDP/Citrix). This recording is compiled into a bundle that defines the action sequence and the expected "effect contract" (the change in the system of record).

When an agent invokes this bundle, the runtime executes the steps and then verifies the outcome using an independent check (e.g., a read-only API or OCR) to confirm the transaction actually committed. If the verification fails or the system state is ambiguous, the run is halted rather than reporting a false success.

Who it’s for

It is designed for developers and solutions engineers building computer-use agents that need to perform reliable, verified transactions in legacy or closed software environments.

Highlights

  • Verified Execution: Uses independent evidence tiers to confirm business effects, preventing agents from lying about success based on on-screen banners.
  • Multi-Surface Support: Works across web browsers, native OS (Windows, macOS, Linux), and remote displays (RDP, Citrix).
  • Deterministic Control: Compiles demonstrations into programs that run without needing a generative-model API in the active control loop.
  • Composition: Allows multiple compiled bundles to be sequenced together with data handoffs between them.

Related

  • Project
  • Dispatch
  • Project
  • Project
  • Project