pyscreenshot
python screenshot
What it is and what it does
pyscreenshot is a screenshot capture library that copies screen contents into Pillow images. It was originally created to fill a gap when PIL's ImageGrab only worked on Windows, but now serves as an alternative with additional features: flexible backend selection, Wayland support, and optional subprocessing. The package supports Python 3.9, 3.10, and 3.11, and works across Windows, Linux, and macOS.
The library depends on EasyProcess, entrypoint2, mss, and jeepney to handle subprocess management, backend discovery, and platform-specific capture methods. It is marked obsolete for most use cases since Pillow now supports all major platforms, but remains useful when you need specific backend control, Wayland compatibility, or performance optimization through subprocessing.
Use it for:
- Automated testing that requires visual verification of UI state across different display servers.
- Building screenshot tools that need to support both X11 and Wayland on Linux.
- Capturing screenshots in subprocesses to isolate display server interactions.
- Cross-platform applications that need consistent screenshot behavior on Windows, macOS, and Linux.
- Benchmarking or comparing performance of different screenshot backends.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Captures screenshots to Pillow images using multiple backend methods, with support for Wayland, flexible backend selection, and optional subprocessing.
Yes, if you need Wayland support or flexible backend selection; otherwise no. For most projects, Pillow's ImageGrab is sufficient and actively maintained. Install pyscreenshot only if you have a specific requirement the description mentions—Wayland compatibility, backend switching, or subprocessing—that Pillow does not meet. Dormant maintenance is acceptable for a stable utility, but verify your backend needs first.
Install
pyscreenshot on PyPI
pip
pip install pyscreenshotuv
uv add pyscreenshotpoetry
poetry add pyscreenshotInstalling pyscreenshot
Before you install
Low install friction with a pure-Python wheel and four runtime dependencies. Maintenance is dormant—last commit was 2023-11-04—but the repository remains active and the package is stable for its use case.
License in practice
BSD license is permissive, allowing commercial and private use with minimal restrictions; attribution is required but no copyleft obligations apply.
Quickstart
pip install pyscreenshot
import pyscreenshot
img = pyscreenshot.grab()
img.save('screenshot.png')
Requires a display server or Wayland session; headless environments without X11 or Wayland may not work.
Verify before relying
- Whether the package's Wayland support is production-ready or experimental.
- Performance characteristics compared to Pillow's ImageGrab on modern systems.
- Which backend methods are recommended for different operating systems and display servers.
Package facts
| License | BSD (permissive) |
| Python support | supports the current Python release (>=3.4) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — EasyProcess, entrypoint2, mss, jeepney |
| Maintenance | dormant — 1,251 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 235,553/month — #8,999 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyscreenshot-3.1-py3-none-any.whl
Keywords: screenshot
Tags
More Graphics packages
Pillow adds image processing capabilities to…
permissive · top 100 on PyPI
fonttoolsfonttools manipulates font files in multiple…
permissive · top 1,000 on PyPI
matplotlib-inlineEnables matplotlib figures to display inline…
permissive · top 1,000 on PyPI
pymupdfPyMuPDF extracts, renders, converts, and…
agpl · top 1,000 on PyPI
pypdfium2pypdfium2 is a Python binding to PDFium that…
permissive · top 1,000 on PyPI
altairAltair is a declarative Python library for…
permissive · top 1,000 on PyPI
mssCaptures screenshots from one or all monitors…
permissive · top 5,000 on PyPI
PyScreezePyScreeze captures screenshots and locates…
permissive · top 5,000 on PyPI
dxcamDXcam captures screen frames on Windows at high…
permissive · top 15,000 on PyPI
screenshotoneA Python SDK for the ScreenshotOne.com API that…
permissive · top 15,000 on PyPI
Selenium-ScreenshotCaptures full-page or element-level screenshots…
permissive · top 15,000 on PyPI
pygrabberCapture photos and video from Windows cameras…
permissive · top 15,000 on PyPI
pyobjc-framework-ScreenCaptureKitProvides Python bindings to macOS's…
permissive · top 15,000 on PyPI
nokapnokap captures screenshots and PDFs from web…
permissive · top 15,000 on PyPI
pilkitPILKit provides a collection of image…
permissive · top 15,000 on PyPI