Skip to content

Optics Framework

Welcome to the official documentation for the Optics Framework, an open-source test automation framework designed to simplify and streamline the creation and execution of automated tests across various platforms. Whether you're testing mobile apps (including DRM-enabled ones), Optics Framework provides a flexible, extensible, and user-friendly solution to meet your testing needs.

Quality Gate Status License Python OpenSSF Best Practices

Key Features

  • Vision Powered

    UI object detections powered by computer vision, not just XPath elements

  • No Code Automation

    Build automation scripts without programming knowledge or IDE access

  • Non-Intrusive Drivers

    Support for BLE mouse and keyboard for production monitoring

  • Data-Driven Testing

    Execute test cases dynamically with multiple datasets

  • Extensible & Scalable

    Easily add new keywords and modules without hassle

  • AI Integration

    Choose which AI models to use for object recognition and OCR

  • Self-Healing

    Automatic fallback to alternative detection methods when primary fails

  • Live Sessions

    Drive a live target interactively and record sessions straight into modules. See Live Usage.

  • MCP & Agents

    Expose every keyword as an MCP tool so AI clients drive a real target. See MCP Usage.

Quick Start

From zero to a runnable test project with one guided command:

Requires Python 3.12 or newer

Check first with python3 --version. On an older Python, install 3.12 — see Installation — then continue.

pip install optics-framework
optics quickstart

The wizard asks what you want to automate (Android, iOS, web…), installs the matching engine, scaffolds the project, writes a platform-correct config.yaml, and runs an environment check before printing your next steps.

Prefer to drive each step yourself?
pip install optics-framework
optics setup --install appium easyocr        # install the engines you need
optics init my_test_project --template contact
# edit my_test_project/config.yaml for your device, start Appium + emulator, then:
optics dry_run my_test_project               # validate without a device
optics execute my_test_project               # run it

The Getting Started Guide explains every step.

Getting Started Guide   Installation

Explore Documentation

  • Introduction

    Learn about the framework's architecture and capabilities

    Introduction →

  • Getting Started

    Set up Optics and run your first test in minutes — guided or step by step

    Getting Started →

  • Architecture

    Deep dive into the framework's architecture, components, and design patterns

    Architecture →

  • User Workflow

    Understand the typical workflow for creating and running tests

    User Workflow →

  • Usage

    Comprehensive guides for CLI and keyword usage

    Usage →

  • API Reference

    Python API documentation and REST API usage guides

    API Reference →

  • Developer Guide

    Learn how to extend and contribute to the framework

    Developer Guide →

  • Contributing

    Guidelines for contributing to the project

    Contributing →

  • Help Wanted

    Areas where we need your help to improve the framework

    Help Wanted →

  • Code of Conduct

    Our community standards and expectations

    Code of Conduct →

Need Help?