Skip to main content

Qontinui

PyPI version Python 3.12+ License: MIT Code style: black

A Python library for model-based GUI automation with intelligent state management and visual recognition.

Research Foundation

Based on Model-based GUI Automation published in Springer's Software and Systems Modeling journal (October 2025).

The research provides:

  • Mathematical proof of complexity reduction (exponential → polynomial)
  • First testable approach to GUI automation (unit tests, integration tests)
  • Formal framework for robust visual APIs for RL agents
  • Enables reliable dataset generation for AI training

Overview

Qontinui enables building robust GUI automation through:

  • Model-based state management using MultiState | Docs
  • Visual recognition with OpenCV template matching
  • JSON configuration for defining automation workflows
  • Cross-platform support (Windows, macOS, Linux)

Qontinui is a Python port of Brobot, a Java library for GUI automation (2018-2024).

Installation

From PyPI (Recommended)

pip install qontinui

From Source (Development)

# Clone the repository
git clone https://github.com/jspinak/qontinui.git
cd qontinui

# Install with Poetry
poetry install

# Or with pip
pip install -e .

Dependencies

Qontinui requires:

  • MultiState - Multi-state state management
  • OpenCV - Image template matching
  • PyAutoGUI/pynput - Input control

Quick Start

JSON Configuration

Create an automation configuration in JSON:

{
  "version": "1.0",
  "states": [
    {
      "name": "LoginScreen",
      "stateImages": [
        {
          "imageId": "login_button",
          "threshold": 0.9
        }
      ]
    }
  ],
  "processes": [
    {
      "name": "Login",
      "actions": [
        {
          "type": "CLICK",
          "target": {"type": "image", "imageId": "login_button"}
        },
        {
          "type": "TYPE",
          "text": "username@example.com"
        }
      ]
    }
  ]
}

Python API

from qontinui.json_executor import JSONRunner

# Initialize runner
runner = JSONRunner()

# Load configuration
runner.load_configuration("automation_config.json")

# Execute automation
success = runner.run(monitor_index=0)

Desktop Application

Use Qontinui Runner for a GUI interface to create and run automations.

Architecture

qontinui/
├── src/qontinui/
│   ├── json_executor/       # JSON configuration execution
│   ├── model/               # State, Transition, Image models
│   ├── hal/                 # Hardware Abstraction Layer
│   └── multistate_adapter/  # MultiState integration

Features

Current

  • ✅ JSON-based automation configuration
  • ✅ Template-based image matching
  • ✅ Multi-state state management
  • ✅ Process and state machine execution modes
  • ✅ Cross-platform input control (PyAutoGUI, pynput)
  • ✅ Hardware abstraction layer for multiple backends

Planned

  • 🔄 AI-enhanced visual recognition (SAM, CLIP)
  • 🔄 Domain-specific language (DSL)
  • 🔄 Advanced Brobot migration tools
  • 🔄 Cloud execution via qontinui-web

Testing

Run the test suite:

# Run all tests
poetry run pytest

# Run with coverage
poetry run pytest --cov=src/qontinui

# Run specific test file
poetry run pytest tests/json_executor/test_json_runner.py

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Please note that this project is released with a Code of Conduct. By participating in this project you agree to abide by its terms.

Qontinui is a faithful port of Brobot. When contributing, please preserve Brobot's architecture and behavior.

Documentation

License

MIT License - See LICENSE file for details.

Acknowledgments

Related Projects

Metadata

Release files for qontinui 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qontinui 0.1.1
File Size Uploaded Provenance
qontinui-0.1.1.tar.gz 1.1 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for qontinui 0.1.1
File Interpreter ABI Platform
qontinui-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 2.6 MB

Release files / qontinui-0.1.1.tar.gz

Download URL qontinui-0.1.1.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
ad5918f1e9fed56c5fb4e8bf779962a2d1d3f26641e20d83a78c905439e8265d
BLAKE2b-256 checksum
How to use checksums
b517a2c479aa447a71e4edb5fec9f5246e760402c71893d6fbb419b32052bab9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.10 Windows/10

Release files / qontinui-0.1.1-py3-none-any.whl

Download URL qontinui-0.1.1-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4e22b9a91ae4a683806c5898185dbd74553cde2b6b71d31aa79f49beb4993649
BLAKE2b-256 checksum
How to use checksums
2bb421c045929f05df6a1dd3c8ce34cb7cd8fa77d262878efa2f1cae99b039e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.10 Windows/10

Security for qontinui 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page