finds.dev← search

// the find

asweigart/pyautogui

★ 12,635 · Python · BSD-3-Clause · updated Aug 2024

A cross-platform GUI automation Python module for human beings. Used to programmatically control the mouse & keyboard.

PyAutoGUI is a Python library for scripting mouse and keyboard input across Windows, macOS, and Linux. It's aimed at automating repetitive GUI tasks — form filling, application testing, desktop workflows — without needing the target app to expose any API.

The API is genuinely simple: moveTo, click, write, hotkey — no ceremony, works in 5 minutes. Image-based locating (locateOnScreen) is a useful trick for automating apps that don't expose accessibility hooks. Cross-platform coverage from a single import is real and not hand-wavy. The tweening support for mouse movement is a nice touch if you need to avoid bot-detection heuristics.

Primary monitor only — multi-monitor support is explicitly documented as unreliable, which rules it out for a lot of real workstation setups. Last push was August 2024 and the issues list has been accumulating for years; maintenance is slow. Linux support is Xlib/X11 only, meaning it breaks entirely on Wayland, which is now the default on most major distros. No concept of waiting for elements — you get raw coordinates and pixel matching, so scripts are full of time.sleep() calls and fragile to any UI resize or theme change.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →