psutil
Cross-platform lib for process and system monitoring.
Install
psutil on PyPI
pip
pip install psutiluv
uv add psutilpoetry
poetry add psutilPackage facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 197 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl; psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl; psutil-7.2.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl; psutil-7.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; psutil-7.2.2-cp313-cp313t-win_amd64.whl; psutil-7.2.2-cp313-cp313t-win_arm64.whl; psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl; psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl; psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl; psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; psutil-7.2.2-cp314-cp314t-win_amd64.whl; psutil-7.2.2-cp314-cp314t-win_arm64.whl; psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl; psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl; psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl; psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl; psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl; psutil-7.2.2-cp37-abi3-win_amd64.whl; psutil-7.2.2-cp37-abi3-win_arm64.whl
Keywords: ps, top, kill, free, lsof, netstat, nice, tty, ionice, uptime, taskmgr, process, df, iotop, iostat, ifconfig, taskset, who, pidof, pmap, smem, pstree, monitoring, ulimit, prlimit, smem, performance, metrics, agent, observability
About psutil
from the package's own PyPI description — quoted content, verbatim
| |downloads| |stars| |forks| |contributors| |packages| | |version| |license| |stackoverflow| |twitter| |tidelift| | |github-actions-wheels| |github-actions-bsd|
.. |downloads| image:: https://img.shields.io/pypi/dm/psutil.svg :target: https://clickpy.clickhouse.com/dashboard/psutil :alt: Downloads
.. |stars| image:: https://img.shields.io/github/stars/giampaolo/psutil.svg :target: https://github.com/giampaolo/psutil/stargazers :alt: Github stars
.. |forks| image:: https://img.shields.io/github/forks/giampaolo/psutil.svg :target: https://github.com/giampaolo/psutil/network/members :alt: Github forks
.. |contributors| image:: https://img.shields.io/github/contributors/giampaolo/psutil.svg :target: https://github.com/giampaolo/psutil/graphs/contributors :alt: Contributors
.. |stackoverflow| image:: https://img.shields.io/badge/stackoverflow-Ask%20questions-blue.svg :target: https://stackoverflow.com/questions/tagged/psutil :alt: Stackoverflow
.. |github-actions-wheels| image:: https://img.shields.io/github/actions/workflow/status/giampaolo/psutil/.github/workflows/build.yml.svg?label=Linux%2C%20macOS%2C%20Windows :target:...
Read as markdown · JSON record · Source repository · Homepage
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
psutil retrieves information on running processes and system utilization (CPU, memory, disks, network, sensors) across Linux, Windows, macOS, BSD, Solaris, and AIX, enabling system monitoring, process profiling, and resource management.
Medium install friction due to compiled C extensions, but mitigated by extensive pre-built wheels for Python 3.6+ across Windows, macOS (x86_64 and ARM64), Linux (x86_64 and aarch64), and BSD variants. Active maintenance with latest release on 2026-01-28 and 11262 GitHub stars.
BSD-3-Clause permissive license allows commercial use, modification, and distribution with minimal restrictions—only requiring license and copyright notice retention.
Usage
import psutil
# CPU usage
print(psutil.cpu_percent(interval=1))
# Memory info
print(psutil.virtual_memory())
# Process list
for proc in psutil.process_iter(['pid', 'name']):
print(proc.info)
Requires Python 3.6 or later; compiled C extensions may require build tools on source installs, though pre-built wheels are available for most platforms.
Verdict: psutil is a stable, actively maintained, top_1000 PyPI package with no known vulnerabilities and zero runtime dependencies. Its permissive BSD-3-Clause license and broad platform support make it a low-friction choice for system monitoring. Medium install friction is offset by comprehensive pre-built wheels and strong community adoption.
Needs verification
- Whether pre-built wheels cover all target deployment platforms (e.g., musl-based Linux, specific ARM variants).
- Performance characteristics and overhead when monitoring large process counts or high-frequency metric collection.
Similar packages
permissive · top 1,000 on PyPI
coveragepermissive · top 1,000 on PyPI
debugpypermissive · top 1,000 on PyPI
anyiopermissive · top 100 on PyPI
limitspermissive · top 1,000 on PyPI
portalockerpermissive · top 1,000 on PyPI
ua-parserpermissive · top 1,000 on PyPI
nvidia-nccl-cu12unclear · top 1,000 on PyPI
nvidia-nccl-cu13unclear · top 1,000 on PyPI
tqdmcopyleft · top 100 on PyPI