Our take
Inactiveno commits in over a year- Activity
- 19
- Community
- 51
- Issues
- 47
- Pull requests
- 21
+20 stars in the last 30 days
PyAutoGUI offers a straightforward cross-platform interface for desktop automation, but its inactive maintenance and concentrated contributions call for caution in long-lived deployments.
Good fit if
- You need Python scripts to control mouse and keyboard input in a GUI, and primary-monitor operation is sufficient.
- The BSD-3-Clause license fits your project, and you can accommodate the platform-specific setup requirements.
- You can validate and maintain your automation locally despite the lack of recent project activity.
Look elsewhere if
- Your workflow depends on reliable automation across multiple monitors, which the project says is not reliable.
- You need an actively maintained dependency: there have been no commits or releases in over a year, and most of the code comes from one person.
- You need prompt issue resolution, given the lack of recent merged pull requests and very limited recent issue closures.
All health signals
| Last commit | 2024-08-20 (2.1 years ago) |
|---|---|
| Commits, last 90 days | 0 |
| Releases, last 12 months | 0 |
| Contributors | 43 (top contributor: 79% of commits) |
| Issues closed, last 90 days | 1 |
| Pull requests merged, last 90 days | 0 |
| Project age | 12 years |
Checked on 2026-10-09 with the GitHub API.
Project history
Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.
Stars
12,752Forks
1,438Change since Nov 9, 2026: -1 stars·0 forks
Overview
PyAutoGUI is a Python library for automating desktop interactions. It hides platform-specific APIs behind a shared interface for mouse movement and clicks, keyboard input, message boxes, and screenshot-based image matching.
It is aimed at people automating tasks in graphical applications rather than interacting through an application-specific API. The project supports Windows, macOS, and Linux, with platform-dependent setup and limitations such as primary-monitor support.
Key Features
- Move the mouse to screen coordinates or relative to its current position, and perform clicks and double-clicks.
- Type text, press keys, and send keyboard shortcuts to the currently focused window.
- Add durations and easing functions to mouse movements.
- Display alert, confirmation, prompt, and password dialogs.
- Capture screenshots and save them as image files.
- Locate an image on screen and return its position for follow-up actions such as clicking.
Use Cases
- Automate repetitive desktop steps in a graphical application when it has no suitable API for the task.
- Create small personal workflows that type text, navigate controls, or use keyboard shortcuts.
- Build image-guided scripts that find a visible button or control before interacting with it.
- Capture screenshots as part of a desktop workflow or a lightweight visual check.
What you need
Detected in the repository
- Python (from setup.py)
- A test suite
License in plain words
BSD-3-Clausepermissive
- Commercial use: yes
- Modify and redistribute: yes
- You must keep: the copyright and license notice; the authors' names cannot endorse your product
- Share your changes: no
A summary, not legal advice: the LICENSE file is what applies.
Getting Started
Install from PyPI:
pip install pyautogui
See the README and documentation for platform setup and API details.
Alternatives
- open-codex-computer-use: It exposes desktop automation through an MCP service and accessibility controls, rather than a direct Python mouse-and-keyboard API.
- Open-Interface: It turns natural-language requests into LLM-guided mouse and keyboard actions, rather than providing a general-purpose Python control library.
- UFO: It focuses on Windows desktop agents and coordinated, multi-device workflows, rather than direct cross-platform desktop control from Python.
- Agent-S: It uses screenshots and an AI agent to perform natural-language desktop tasks, rather than offering direct mouse and keyboard primitives.
| Project | Language | License | Stars | Status |
|---|---|---|---|---|
| pyautogui | Python | BSD-3-Clause | 12.7k | Inactive |
| open-codex-computer-use | Swift | MIT | 2.3k | New |
| Open-Interface | Python | GPL-3.0 | 2.7k | Quiet |
| UFO | Python | MIT | 9.9k | Active |
| Agent-S | Python | Apache-2.0 | 12.6k | Active |
Considerations
The project is marked inactive, with no commits or releases in over a year. Although it has dozens of contributors, contributions are highly concentrated in one person; recent issue handling and pull request activity are also sparse. Teams adopting it should plan to test their workflows on their target operating systems and be prepared to maintain or work around issues themselves.
PyAutoGUI currently works only on the primary monitor, and its README cautions that second-monitor mouse functions may or may not work depending on the operating system and version. Setup differs by platform: macOS requires PyObjC modules, Linux requires Xlib, and image features use Pillow. The README also notes that Linux may need additional libraries for Pillow image support.
Found this useful?
Share it with someone who would like pyautogui.