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

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.56
File Size Uploaded
pyautogui_zzy-0.9.56.tar.gz 257.1 kB Details

Built distribution (wheel)

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

Total release size: 570.9 kB

Release files / pyautogui_zzy-0.9.56.tar.gz

Download URL pyautogui_zzy-0.9.56.tar.gz
Size 257.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c49dead016d628eb7240cc2978081c6b24d547bdfe547a49714c18c5b28e616e
BLAKE2b-256 checksum
How to use checksums
911c05b1edd06561c6634f98992976d5213845dbba752c526d1c7e7433642abd
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.56-cp37-abi3-win_amd64.whl

Download URL pyautogui_zzy-0.9.56-cp37-abi3-win_amd64.whl
Size 313.9 kB
Tags CPython 3.7 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
dd65524dcdaaea889d8289a2b4a5ee4567a0c6a5b3d4b5994b0713a08ac85f34
BLAKE2b-256 checksum
How to use checksums
3c1b85f3e0f4f41ab9d5f23b60c065c227bc6b861808d71b5b023c3253b3c7e5
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

This release

0.9.56 This release

2 release files

0.9.55

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