Skip to main content

pyautogui-zzy — Rust-accelerated PyAutoGUI 0.9.54

This fork preserves the established PyAutoGUI 0.9.54 API while adding an optional user-mode Rust fast path on Windows.

import pyautogui_zzy

pyautogui_zzy.moveTo(500, 300, duration=0.2)
pyautogui_zzy.click()
pyautogui_zzy.write("hello", interval=0.03)
image = pyautogui_zzy.screenshot(region=(0, 0, 800, 600))
box = pyautogui_zzy.locateOnScreen("button.png", confidence=0.9)

No Rust-specific import or new calling convention is required. If the extension is absent or one native operation fails, that operation silently returns to the original Win32 ctypes or PyScreeze implementation.

Windows fast paths

  • Batched SendInput keyboard and mouse events
  • Virtual-desktop coordinates and negative monitor origins
  • Per-monitor V2 DPI awareness
  • Reusable CreateDIBSection GDI capture contexts
  • Parallel hierarchical grayscale SAD template matching
  • Deadline-based smooth movement with scoped 1 ms timer resolution
  • Low-level failsafe monitoring
  • GIL release around native capture, matching, input, and movement

The project contains no kernel driver, service, test-signing workflow, or special boot requirement.

Universal visual location

Still images, GIF representative frames, DPI/zoom variants, and moving targets share an adaptive locate pipeline. Large or highly changed references can use the external 359k-parameter TinyLocate network. Its framework-free CUDA runtime is compiled into the Rust extension; the 721 KiB model remains a separate file. High-confidence neural hits contribute a small, bounded in-memory appearance bank, so a moving or animated target can adapt without writing captures to disk.

python tools/install_tinylocate_model.py path\to\tinylocate-v1.tln
python tools/smoke_tinylocate_runtime.py path\to\tinylocate-v1.tln

Existing calls stay unchanged:

box = pyautogui_zzy.locateOnScreen("target.png", confidence=0.8)
boxes = list(pyautogui_zzy.locateAllOnScreen("target.gif", confidence=0.8))

Model training uses PyTorch only in the development environment and exports the custom TLN1 FP16 container. Runtime loads neither PyTorch nor an ONNX engine. See PRODUCT_VISION.md for routing, accuracy, and latency gates.

Requirements

  • Python 3.9+
  • Windows wheels use CPython ABI3
  • Building from source on Windows requires stable Rust, MSVC Build Tools, and a Windows SDK

Optional vision dependencies are available with:

python -m pip install -e ".[vision]"

Build and test

python -m pip install -e ".[dev,benchmark]"
python tools/check.py --build

The default test suite is hermetic and does not emit operating-system input. See DEVELOPING.md for architecture, benchmarks, CI, and release checks.

Upstream PyAutoGUI documentation remains applicable to the public API: https://pyautogui.readthedocs.io/

Release files for pyautogui-zzy 0.9.55

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

Source distribution (sdist)

Source distribution for pyautogui-zzy 0.9.55
File Size Uploaded
pyautogui_zzy-0.9.55.tar.gz 256.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyautogui-zzy 0.9.55
File Interpreter ABI Platform
pyautogui_zzy-0.9.55-cp37-abi3-win_amd64.whl CPython 3.7 abi3 Windows x86-64 Details

Total release size: 570.7 kB

Release files / pyautogui_zzy-0.9.55.tar.gz

Download URL pyautogui_zzy-0.9.55.tar.gz
Size 256.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a3d8a07c2f729af9ac076022adfac9ee1d5f3a3c95e803d6bb8987eac317ab75
BLAKE2b-256 checksum
How to use checksums
c80732f6e9bcbb5a9422ff3ada0543843a5268c3ff91a2a54c960aace4e93ffc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / pyautogui_zzy-0.9.55-cp37-abi3-win_amd64.whl

Download URL pyautogui_zzy-0.9.55-cp37-abi3-win_amd64.whl
Size 313.8 kB
Tags CPython 3.7 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
4754b979b4f17493dc7fd5a608e6ca3a86b43694d20935f79a0269a3e2d27c9a
BLAKE2b-256 checksum
How to use checksums
670d605d5a42ff9fd5d40ed51aac5d630424c8cb6a6cf39c845eb86bdc2cff38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release history Release notifications | RSS feed

0.9.57

2 release files

0.9.56

2 release files

This release

0.9.55 This release

2 release files

0.9.54

2 release files

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