mss
An ultra fast cross-platform multiple screenshots module in pure python using ctypes.
Decision gist · record as of 2026-08-14
Yes. MSS is production-stable, actively maintained, has zero security vulnerabilities, no runtime dependencies, and installs with minimal friction. It's the right choice if you need fast, simple cross-platform screenshot capture without heavyweight dependencies. Only skip it if you need advanced image manipulation (use PIL/Pillow alongside it) or if your use case requires features beyond basic capture.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later.
- On systems with external monitors and DPI scaling, import mss before other packages like mouseinfo or pyautogui to avoid conflicts with SetProcessDpiAware().
- Low friction: pure Python with no runtime dependencies, distributed as a wheel, and actively maintained with recent releases.
License · maintenance · safety
permissive license (permissive) — MIT License permits unrestricted use, modification, and distribution in both open-source and proprietary projects, with only attribution and license inclusion required.
last release 2026-04-23 (113 days) · last repo commit 2026-08-13 · 1,279 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 3,170,879 downloads/mo, #2,714 on PyPI
Alternatives
Verify before relying
pip install mss
from mss import MSS
with MSS() as sct:
sct.shot()- Performance characteristics compared to other screenshot libraries on specific hardware configurations
- Behavior with multi-GPU setups or virtual displays
- Interaction with DPI-aware applications beyond the documented mouseinfo/pyautogui caveat
What it is and what it does
MSS is a pure-Python screenshot capture library that grabs images from one or multiple monitors and saves them as PNG files or returns pixel data for programmatic use. It uses ctypes to call platform-native APIs (BitBlt on Windows, CGGetActiveDisplayList on macOS, XGetImage on Linux) without requiring compiled dependencies, making it lightweight and fast across operating systems.
The library is designed for scenarios where speed and simplicity matter: embedding screenshot functionality into games, computer vision pipelines, AI applications, or automation tools. It integrates cleanly with PIL for format conversion and with NumPy and OpenCV for image processing, and it's thread-safe for concurrent use.
Use it for
- Capture screenshots in automated testing or monitoring scripts that need to verify UI state or record visual logs
- Grab display frames for computer vision or AI model input without external dependencies
- Build screen recording or streaming applications that need fast, cross-platform pixel access
- Embed screenshot functionality in games or interactive software requiring platform-optimized capture
- Monitor multiple displays in a single operation for multi-screen environments or headless setups
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
MSS is production-stable, actively maintained, has zero security vulnerabilities, no runtime dependencies, and installs with minimal friction. It's the right choice if you need fast, simple cross-platform screenshot capture without heavyweight dependencies. Only skip it if you need advanced image manipulation (use PIL/Pillow alongside it) or if your use case requires features beyond basic capture.
Install
mss on PyPI
Before you install
Low friction: pure Python with no runtime dependencies, distributed as a wheel, and actively maintained with recent releases. Supports Python 3.9+ across CPython and PyPy.
Requires Python 3.9 or later. On systems with external monitors and DPI scaling, import mss before other packages like mouseinfo or pyautogui to avoid conflicts with SetProcessDpiAware().
License in practice
MIT License permits unrestricted use, modification, and distribution in both open-source and proprietary projects, with only attribution and license inclusion required.
Quickstart
pip install mss
from mss import MSS
with MSS() as sct:
sct.shot()
Verify before relying
- Performance characteristics compared to other screenshot libraries on specific hardware configurations
- Behavior with multi-GPU setups or virtual displays
- Interaction with DPI-aware applications beyond the documented mouseinfo/pyautogui caveat
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 113 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,170,879 / month, #2,714 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: MacOS XIntended Audience :: DevelopersIntended Audience :: EducationIntended Audience :: End Users/DesktopIntended Audience :: Information TechnologyIntended Audience :: Science/ResearchLicense :: OSI Approved :: MIT LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: UnixProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Multimedia :: Graphics :: Capture :: Screen CaptureTopic :: Software Development :: Libraries |
Evidence: mss-10.2.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “multi-monitor screen grab”
- mssCaptures screenshots from one or all monitors on Windows, macOS, and…
- dxcamDXcam captures screen frames on Windows at high speed using the…
- screeninfoDetects and reports the location, dimensions, and physical properties…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also dxcam · pyscreenshot · PyScreeze · screeninfo · screenshotone · pyobjc-framework-ScreenCaptureKit · Selenium-Screenshot · PyMonCtl · nokap · wakepy