$npx skillfedfor your agent

PyMonCtl

Cross-Platform toolkit to get info on and control monitors connected

With conditionsPyPI MonitoringReleased Apr 2024200.3K downloads / moBSD 3Pure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — PyMonCtl-0.92-py3-none-any.whl
v0.92 · released 2024-04-22 · 5 runtime deps: typing-extensions, pyobjc, python-xlib, ewmhlib, pywin32

Yes, if you need cross-platform monitor control. The package is actively maintained, has no known vulnerabilities, and offers a unified API across Windows, Linux, and macOS. Install friction is low. Be aware that some methods depend on OS-specific hardware support (e.g., VCP MCCS on Windows) and may return None if unavailable; test on your target platforms before relying on brightness or contrast control.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Platform-specific system libraries required: Xlib/xrandr on Linux, VCP MCCS support on Windows for some features, pmset on macOS.
  • Some methods return None if the underlying OS capability is unavailable.
  • Low install friction with a pure-Python wheel.

License · maintenance · safety

BSD 3 (permissive) — BSD 3 is permissive and poses no significant restriction on use, modification, or distribution in most contexts.

last release 2024-04-22 (844 days) · last repo commit 2026-06-30 · 5 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 200,258 downloads/mo, #9,696 on PyPI

Verify before relying

pip install pymonctl

import pymonctl as pmc

monitors = pmc.getAllMonitors()
for mon in monitors:
    print(mon.name, mon.size, mon.position)
  • Whether all advertised monitor control methods work reliably on all three platforms without additional system configuration.
  • Real-world stability of the watchdog thread for long-running monitor change detection.
  • Performance impact of the 0.5-second default watchdog interval on systems with many monitors or frequent changes.
Same gist for agents: .md · .json

What it is and what it does

PyMonCtl is a cross-platform Python library for querying and controlling connected monitors. It abstracts over Windows VCP MCCS, Linux Xlib/xrandr, and macOS pmset to provide a unified interface for reading monitor properties (size, position, frequency, color depth, DPI, scale, orientation, brightness, contrast) and changing them (repositioning, resizing, rotating, adjusting brightness). It also includes a watchdog thread that can track monitor plug/unplug events and property changes, notifying registered listeners.

The library is designed for developers building multi-monitor-aware applications—window managers, display configuration tools, or any software that needs to detect or control the display layout. Most methods work across all three platforms, though some features (like brightness control on Windows) require specific hardware support (VCP MCCS), and some behaviors differ by OS (e.g., Linux allows overlapping monitors while Windows does not).

Use it for

  • Detect which monitor a window is on and query its properties for responsive UI layout.
  • Automatically arrange multiple monitors into a known configuration on startup or when monitors are plugged in.
  • Build a display settings utility that lets users change resolution, orientation, or brightness without OS dialogs.
  • Monitor for hot-plug events in a multi-monitor setup and trigger reconfiguration callbacks.
  • Query DPI and scale to adapt rendering or font sizes to the actual display.
  • Set a monitor as primary or reposition displays programmatically in a headless or automated environment.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, if you need cross-platform monitor control.

The package is actively maintained, has no known vulnerabilities, and offers a unified API across Windows, Linux, and macOS. Install friction is low. Be aware that some methods depend on OS-specific hardware support (e.g., VCP MCCS on Windows) and may return None if unavailable; test on your target platforms before relying on brightness or contrast control.

Install

pymonctl on PyPI

Before you install

Low install friction with a pure-Python wheel. Maintenance is active with a recent commit in June 2026. Runtime dependencies are platform-specific (pyobjc for macOS, pywin32 for Windows, python-xlib and ewmhlib for Linux), so actual install weight depends on your OS.

Platform-specific system libraries required: Xlib/xrandr on Linux, VCP MCCS support on Windows for some features, pmset on macOS. Some methods return None if the underlying OS capability is unavailable.

License in practice

BSD 3 is permissive and poses no significant restriction on use, modification, or distribution in most contexts.

Quickstart

pip install pymonctl

import pymonctl as pmc

monitors = pmc.getAllMonitors()
for mon in monitors:
    print(mon.name, mon.size, mon.position)

Verify before relying

  • Whether all advertised monitor control methods work reliably on all three platforms without additional system configuration.
  • Real-world stability of the watchdog thread for long-running monitor change detection.
  • Performance impact of the 0.5-second default watchdog interval on systems with many monitors or frequent changes.

Package facts

LicenseBSD 3 permissive
Python supportNot specified
Install frictionLow. Pure-Python wheel
Runtime dependencies
5 packages
typing-extensionspyobjcpython-xlibewmhlibpywin32
MaintenanceActively maintained 844 days since the last release
Last repo commit
First released
Downloads200,258 / month, #9,696 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 4 - BetaEnvironment :: MacOS XEnvironment :: Win32 (MS Windows)Environment :: X11 ApplicationsIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.9

Evidence: PyMonCtl-0.92-py3-none-any.whl

Tags

Capabilities
monitor control pythondisplay resolution detectionscreen geometry managementmulti-monitor setupbrightness control apicross-platform displaymonitor info query
Topics
cross-platformdisplay-controlhardware-interface
PyPI keywords
screendisplaymonitorcontrolgeometrysizepositionfrequencyscaleorientationscreen-sizemouse-position

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 › “monitor control python”

  • PyMonCtlPyMonCtl provides cross-platform Python access to monitor information…
  • pynputPynput lets you programmatically control and monitor mouse and…
  • qemu.qmpA Python asyncio library for sending QMP (QEMU Monitor Protocol)…

Give your agent the search over MCP, or paste the wish link into any chat.

More Monitoring packages

tqdm Worth it
PyPI · Libraries · released Jul 2026

Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.

copyleftpure Python · 3.8+
648.6Mdownloads / mo
opentelemetry-semantic-conventions Worth it
PyPI · Monitoring · released Jul 2026

Provides generated Python code for OpenTelemetry semantic conventions, enabling standardized attribute naming and constant definitions for instrumentation and telemetry collection.

Install it if you are using OpenTelemetry and want to follow semantic conventions correctly.

Apache-2.0pure Python · 3.10+
542.9Mdownloads / mo
opentelemetry-sdk Worth it
PyPI · Monitoring · released Jul 2026

Provides the reference implementation of the OpenTelemetry API for collecting and exporting traces, metrics, and logs from Python applications.

Apache-2.0pure Python · 3.10+
521.8Mdownloads / mo
opentelemetry-api With conditions
PyPI · Monitoring · released Jul 2026

Provides the abstract API and interfaces for OpenTelemetry instrumentation in Python, defining how to emit traces, metrics, and logs without tying code to a specific SDK implementation.

Apache-2.0pure Python · 3.10+
463.8Mdownloads / mo
opentelemetry-exporter-otlp-proto-http Worth it
PyPI · Monitoring · released Jul 2026

Exports OpenTelemetry observability data to an OpenTelemetry Collector using Protobuf-encoded messages over HTTP.

Install it if you are using OpenTelemetry in Python and need to send data to a Collector over HTTP.

Apache-2.0pure Python · 3.10+
409.9Mdownloads / mo
opentelemetry-instrumentation Worth it
PyPI · Monitoring · released Jul 2026

Provides automatic instrumentation commands and programmatic APIs to inject distributed tracing into Python applications without code changes, detecting and instrumenting packages used by your program.

Install it if you need distributed tracing without code changes and have compatible instrumented packages in your environment.

Apache-2.0pure Python · 3.10+
393.5Mdownloads / mo

See also PyWinBox · screeninfo · mss · pyglet · EWMHlib · mozsystemmonitor · pywizlight · xlib · PyMsgBox