Skip to main content

Open-source recognition and action for anything on a display.

Project description

Open Frame

Open-source recognition and action for anything on a display.

Open Frame is a platform for seeing what's on screen, locating targets, interacting with them, and verifying the result — without brittle selectors or vendor lock-in. Built under the Off-Camber identity.

Open Frame is an independent project and is not affiliated with or endorsed by any third-party automation vendor.

Status

Planning and early scaffolding.

MVP goalpost: a declarative flow that automates Outlook → Microsoft 365 → create document → email, repeatably across desktop apps. See docs/MVP_GOALPOST.md.

Documentation

Doc Purpose
Vision What we're building and for whom
Architecture System layers, modules, and interfaces
Action plan Phased tasks and checklists
Decisions Record of key design choices
Capture manual test Live macOS validation checklist for Phase 1 capture
OCR setup Install and run the Tesseract recognizer
Accessibility setup Configure macOS Accessibility permission for AX recognition
Act setup Install and safely run click/type actions
Act manual test End-to-end capture → find → click validation steps
Verify setup Configure and use click verification with run artifacts
Flow setup Define and run YAML flows
Acceptance runs Record three consecutive MVP flow runs
API Programmatic Session SDK usage and extension points
Contributing Development workflow and macOS permission setup
Publish to PyPI Trusted publishing setup and release checklist

Quick start (capture)

# Lower-level primitive available now
open-frame capture --out screen.png
open-frame capture --out crop.png --x 100 --y 200 --width 800 --height 500

# Capture active or named windows
open-frame capture --out active.png --window-title "Outlook"
open-frame capture --out active.png --window-id 123

# Inspect visible windows (and displays)
open-frame list-windows
open-frame list-windows --json --displays

# OCR find on a frame
open-frame find "Submit" --frame screen.png --json
open-frame find "Submit" --frame screen.png --overlay-out overlay.png --json

# Find and click
open-frame click "Submit" --dry-run --json
open-frame click "Save" --verify 'text-gone:"Save"' --json

# Run a flow file
open-frame run flow.yaml --dry-run --json

# Phase 5 smoke flow
open-frame run examples/flows/outlook-new-email/flow.yaml --dry-run --json
open-frame run examples/flows/outlook-browser-outlook/flow.yaml --dry-run --json
open-frame run examples/flows/outlook-m365-email/flow.yaml --dry-run --json

Planned next commands

# Run the MVP reference flow (prepared desktop: Outlook + browser signed in)
open-frame run examples/flows/outlook-m365-email/flow.yaml

open-frame find "New Email" --click

License

Apache License 2.0 — free to use, modify, and self-host. See LICENSE.

Project details


Download files

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

Source Distribution

off_camber_open_frame-0.1.0.tar.gz (32.5 kB view details)

Uploaded Source

Built Distribution

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

off_camber_open_frame-0.1.0-py3-none-any.whl (31.6 kB view details)

Uploaded Python 3

File details

Details for the file off_camber_open_frame-0.1.0.tar.gz.

File metadata

  • Download URL: off_camber_open_frame-0.1.0.tar.gz
  • Upload date:
  • Size: 32.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for off_camber_open_frame-0.1.0.tar.gz
Algorithm Hash digest
SHA256 994f557dd3f6b1230f6fbe159d9bd5db06a2dcad2d36584c85f180e325ca3c2b
MD5 e9e7cbaf446c03a45ac8815c5cdb7e20
BLAKE2b-256 0205e9a67e67a28b820cb4fb225906134de24bac19feca5e76fcdd8dc9859f31

See more details on using hashes here.

Provenance

The following attestation bundles were made for off_camber_open_frame-0.1.0.tar.gz:

Publisher: publish-pypi.yml on Off-Camber/open-frame

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

File details

Details for the file off_camber_open_frame-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for off_camber_open_frame-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e24c3377874cb7d7f4ce8c28f9d019b62a7a886de9eb82c60d6443db2b09ff14
MD5 943f8943af81632dd860f4c10b77c38c
BLAKE2b-256 e55a7397b5cebacce36e7c366b68c759bc4fa0e81c73a462a80c1f83b82a39c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for off_camber_open_frame-0.1.0-py3-none-any.whl:

Publisher: publish-pypi.yml on Off-Camber/open-frame

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 Pingdom Monitoring Sentry Error logging StatusPage Status page