Skip to main content

OpenAdapt Desktop

Tests Python 3.11+ License: MIT

Lifecycle: Experimental supporting surface. The canonical OpenAdapt workflow engine is openadapt-flow. This repository is not a production desktop application or a supported installer.

OpenAdapt Desktop is the intended authoring and human-teaching companion for OpenAdapt workflows. The checked-out code does not yet deliver that integrated product: it contains a tested Python capture/review CLI plus an unintegrated Tauri shell.

OpenAdapt compiles demonstrated GUI workflows into deterministic, locally executable programs. Healthy runs make no model calls. When an interface drifts, OpenAdapt re-resolves from recorded evidence or proposes a governed repair, and halts when verification fails. Workflow compilation, replay, certification, and repair live in openadapt-flow, not this repository.

Current Status

Area Checked-out implementation Status
Python capture CLI Record, list, inspect, scrub, review, approve, local storage, health, and cleanup commands Experimental; covered by tests
Local review gate Persisted states and egress checks for the legacy capture pipeline Experimental; not the openadapt-flow certification system
Legacy upload adapters S3-compatible storage, Hugging Face Hub, Magic Wormhole, and federated-learning code paths Experimental; not the current hosted workflow/break-report contract
Tauri/WebView UI Static prototype assets packaged for macOS, Windows, and Linux Experimental installer shell; commands remain scaffold-only
Rust commands Command signatures return Not implemented Not integrated
Python sidecar IPC Protocol skeleton with no registered handlers Not integrated
Desktop-to-flow handoff No record -> compile -> replay -> teach connection Not implemented
Build artifacts Wheel/sdist, a PyInstaller sidecar, and Experimental DMG/MSI/NSIS/DEB/AppImage jobs Native jobs structurally install/uninstall and label every platform, architecture, and signing state
Native installers Distinct desktop-v* draft-prerelease workflow with final-byte checksums and GitHub provenance Experimental packaging evidence only; not an integrated product release
Updater Plugin code remains compiled, but the unusable empty-key feed configuration is disabled No updater channel is published

The Python package and experimental Tauri shell are versioned independently. Those implementation versions do not represent separate supported desktop releases.

Use OpenAdapt Today

Use openadapt-flow for the runnable product loop:

pip install openadapt-flow

openadapt-flow demo-record --out rec
openadapt-flow compile rec --out bundle --name my-task
openadapt-flow lint bundle                                # expected to find demo gaps
openadapt-flow certify bundle --policy permissive        # smoke-policy pass
openadapt-flow certify bundle --policy clinical-write    # expected strict refusal
openadapt-flow replay bundle
openadapt-flow replay bundle --drift theme --save-healed-to healed

The bundled tutorial is runnable but intentionally not certified for clinical writes. A nonzero strict-certification result is the expected refusal boundary, not a setup failure.

Inspect This Repository

The current CLI is useful to contributors evaluating the earlier local capture and review components. It is not the canonical OpenAdapt quickstart and does not compile or replay workflows.

git clone https://github.com/OpenAdaptAI/openadapt-desktop.git
cd openadapt-desktop
uv sync --extra dev

uv run openadapt-desktop doctor
uv run openadapt-desktop list
uv run openadapt-desktop storage

uv run pytest tests -q
uv run ruff check engine tests

Recording requires the operating-system permissions and runtime support used by openadapt-capture:

uv run openadapt-desktop record --task "Inspect capture path"

Do not treat the upload command or optional upload extras as the supported OpenAdapt hosted path. They belong to an earlier capture-data architecture and have not been integrated with current workflow bundles, break reports, or regulated deployment policy.

Intended Architecture

The target boundary is deliberately narrow:

Desktop authoring/teaching UI
        |
        | local authenticated IPC (not implemented here)
        v
openadapt-flow
  record -> compile -> lint/certify -> replay -> halt/repair/teach
        |
        +-> optional hosted control-plane metadata and break reporting

The desktop application should own consent, operating-system permissions, recording controls, inspection, and human teaching. It should not duplicate the workflow compiler or runtime. Those remain in openadapt-flow.

Known Gaps

  • The Tauri frontend is not wired to the Python engine.
  • The Rust command implementations and sidecar lifecycle are placeholders.
  • The Python IPC handler registry is empty.
  • No checked-in adapter hands a capture to openadapt-flow for compilation.
  • No teaching UI writes a governed repair back to a workflow bundle.
  • Native packages are scaffold-shell Experimental artifacts; structural install/uninstall success is not evidence of an integrated workflow.
  • Apple Developer ID/notarization and Windows Authenticode are credential-gated and fail closed on partial configuration. The updater and rollback remain disabled pending an independent signing-key lifecycle.
  • The separately developed tray client expects a desktop IPC service that this branch does not provide.

Legacy CLI Surface

The Python engine currently exposes these experimental commands:

Command Purpose
openadapt-desktop record Capture a local session
openadapt-desktop list / info Inspect capture metadata
openadapt-desktop scrub Run configured PII scrubbing
openadapt-desktop review / approve / dismiss Operate the legacy review state machine
openadapt-desktop storage / health / cleanup Inspect and maintain local storage
openadapt-desktop backends / upload Inspect or invoke legacy upload adapters
openadapt-desktop config / doctor Inspect local configuration and dependencies

Raw recordings are local by default. Any egress path still requires careful review of the selected adapter, configuration, logs, and data-classification policy. This repository does not establish a HIPAA-compliant or production-safe deployment by itself.

Development

Prerequisites are Python 3.11+ and uv. Rust, Node.js, and the Tauri CLI are needed only when working on the unfinished shell.

Native packaging details, verification scope, artifact names, and external signing requirements are documented in Experimental Native Installers.

The main implementation areas are:

engine/       Python capture, review, storage, and legacy adapter code
src-tauri/    Experimental Rust/Tauri shell and placeholder sidecar wiring
src/          Experimental WebView frontend
tests/        Python unit and end-to-end tests, largely with mocked boundaries

See DESIGN.md as a historical design reference. Where it conflicts with this status section or with openadapt-flow, this README describes the current public product boundary.

Related Projects

Project Lifecycle and role
openadapt-flow Canonical workflow compiler, runtime, certification, and governed repair engine
OpenAdapt Flagship launcher/meta-repository
openadapt-capture Experimental capture component used by this Python engine
openadapt-privacy Experimental PII detection and redaction component
openadapt-tray Experimental status and launcher companion; not integrated end to end with this branch

License

MIT. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openadapt_desktop-0.4.0.tar.gz (340.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openadapt_desktop-0.4.0-py3-none-any.whl (76.5 kB view details)

Uploaded Python 3

File details

Details for the file openadapt_desktop-0.4.0.tar.gz.

File metadata

  • Download URL: openadapt_desktop-0.4.0.tar.gz
  • Upload date:
  • Size: 340.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for openadapt_desktop-0.4.0.tar.gz
Algorithm Hash digest
SHA256 72e88540ad9fb358e39710bea59241d273348120b63d76c6cd3f655d372eb1da
MD5 62f350f99b8bb9a75253981a184327e8
BLAKE2b-256 f437707be9dfb0702f9dde8fcf35b148f9c00875c527b1098f1131280a57604b

See more details on using hashes here.

Provenance

The following attestation bundles were made for openadapt_desktop-0.4.0.tar.gz:

Publisher: release.yml on OpenAdaptAI/openadapt-desktop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openadapt_desktop-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for openadapt_desktop-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 36fc07fecf0e3be96da8ef38e18676229ced7b99f376092eb83c5c73baacc386
MD5 8b7e11db8ad801580ff5785ce11d826f
BLAKE2b-256 44b85a282ba9a0073fb3573ae066faef3abbc68136882bbd77b00871e140ab27

See more details on using hashes here.

Provenance

The following attestation bundles were made for openadapt_desktop-0.4.0-py3-none-any.whl:

Publisher: release.yml on OpenAdaptAI/openadapt-desktop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page