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.54

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.54
File Size Uploaded
pyautogui_zzy-0.9.54.tar.gz 254.6 kB Details

Built distribution (wheel)

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

Total release size: 563.4 kB

Release files / pyautogui_zzy-0.9.54.tar.gz

Download URL pyautogui_zzy-0.9.54.tar.gz
Size 254.6 kB
Tags Source
SHA-256 checksum
How to use checksums
7981ccec30a70201820335ff4f718ba958d4096caa938d531fa5f01bf6deaac4
BLAKE2b-256 checksum
How to use checksums
3c080199c60c8eb512dda72c94e6169fe9e3c348e97feb5ea8e2b6f279b2f65f
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.54-cp37-abi3-win_amd64.whl

Download URL pyautogui_zzy-0.9.54-cp37-abi3-win_amd64.whl
Size 308.8 kB
Tags CPython 3.7 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
90bc90b2f7cb54ae6b084a08eaa6ce03ab3a001d18e1f1b24b0d10fb248e2193
BLAKE2b-256 checksum
How to use checksums
89524bf1620b2d059bd34811beaa605230f719ce440e7f3355c31769ea02f65a
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

0.9.55

2 release files

This release

0.9.54 This release

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