Open-source recognition and action for anything on a display.
Project description
Open Frame
Open-source desktop automation engine for AI agents and scripts.
Open Frame sees what is on screen, finds targets, interacts with UI, and verifies outcomes. It is built to be deterministic, scriptable, and auditable.
Open Frame is an independent project and is not affiliated with or endorsed by any third-party automation vendor.
Open Frame is the deterministic execution layer behind AI agents, not the agent itself.
How this differs from assistant UX tools
- Open Frame executes deterministic capture/recognize/act/verify primitives.
- External LLM agents (or scripts) decide what tool call to make next.
- The engine returns compact structured outputs and artifact paths for debugging.
Status
Active development. v0.1.1 is live on PyPI as off-camber-open-frame.
Who this is for
- Developers automating desktop workflows.
- Teams who want agent-callable UI execution without bloating context windows.
- Contributors building recognizers, flows, or integrations.
60-second start
pip install off-camber-open-frame
open-frame capture --out screen.png
open-frame find "Submit" --frame screen.png --json
open-frame mcp list-tools --json
If open-frame is not on your PATH yet, run through Python directly:
python -m openframe.cli mcp list-tools --json
Local development (repo clone)
Use this when developing or testing from source. No extra env variable is required.
python3 -m venv .venv311
source .venv311/bin/activate
pip install -e .[dev,ocr,act,flow]
python -m openframe.cli mcp list-tools --json
Next steps
- Flow setup — define and run YAML flows.
- API — use
Sessionand MCP-oriented integration guidance. - Act setup and Verify setup — run safely with evidence.
- Full docs index — contributor and planning docs.
License
Apache License 2.0 — free to use, modify, and self-host. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file off_camber_open_frame-0.1.2.tar.gz.
File metadata
- Download URL: off_camber_open_frame-0.1.2.tar.gz
- Upload date:
- Size: 45.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d92b87fccf9291259671cb43afdf7b07522d38b4f9bc1d629b0d2d0ee318220c
|
|
| MD5 |
2d38fe150a60e15c5f295c3d7cef5798
|
|
| BLAKE2b-256 |
de218d954190b243483b3e01efc053a841545ca4f825d8484279124c36cef609
|
Provenance
The following attestation bundles were made for off_camber_open_frame-0.1.2.tar.gz:
Publisher:
publish-pypi.yml on Off-Camber/open-frame
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
off_camber_open_frame-0.1.2.tar.gz -
Subject digest:
d92b87fccf9291259671cb43afdf7b07522d38b4f9bc1d629b0d2d0ee318220c - Sigstore transparency entry: 1918922056
- Sigstore integration time:
-
Permalink:
Off-Camber/open-frame@b44c54e28f4c31213a6622cb94afc2b659b42da6 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/Off-Camber
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@b44c54e28f4c31213a6622cb94afc2b659b42da6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file off_camber_open_frame-0.1.2-py3-none-any.whl.
File metadata
- Download URL: off_camber_open_frame-0.1.2-py3-none-any.whl
- Upload date:
- Size: 42.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e4bbc01c2a3c0b3a5d17f69adb77d9f26e1c76ea4e6c770231a01feacbf5865
|
|
| MD5 |
bb6b6573149ab15274a2a6d135895ce2
|
|
| BLAKE2b-256 |
b39ceb7be6ea2ac4599a98b0bb44aa41fd00d7d4282428fa8f787b48d9149b27
|
Provenance
The following attestation bundles were made for off_camber_open_frame-0.1.2-py3-none-any.whl:
Publisher:
publish-pypi.yml on Off-Camber/open-frame
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
off_camber_open_frame-0.1.2-py3-none-any.whl -
Subject digest:
7e4bbc01c2a3c0b3a5d17f69adb77d9f26e1c76ea4e6c770231a01feacbf5865 - Sigstore transparency entry: 1918922158
- Sigstore integration time:
-
Permalink:
Off-Camber/open-frame@b44c54e28f4c31213a6622cb94afc2b659b42da6 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/Off-Camber
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@b44c54e28f4c31213a6622cb94afc2b659b42da6 -
Trigger Event:
release
-
Statement type: