giampaolo/psutil
giampaolo/psutil has 11,317 GitHub stars and 1,541 forks. GitHot measured -1 stars in 24 hours. Last checked 2026-11-06 13:54 UTC. Last push 2026-11-04.
Cross-platform lib for process and system monitoring in Python
Measured star growth
- in 24h
- -1
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original..
.. raw:: html
<div align="center">
<a href="https://github.com/giampaolo/psutil"><img src="https://github.com/giampaolo/psutil/raw/master/docs/_static/images/logo-psutil-readme.svg" alt="psutil" /></a>
<p align="center">Process and System Utilities for Python</p>
<a href="https://psutil.io/"><b>Documentation</b></a>
<a href="https://psutil.io/blog/"><b>Blog</b></a>
<a href="https://psutil.io/adoption/"><b>Who uses psutil</b></a>
</div>
<br/>
<div align="center">
<a href="https://clickpy.clickhouse.com/dashboard/psutil"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fsql-clickhouse.clickhouse.com%2F%3Fuser%3Dplay%26query%3DWITH%2B%2528SELECT%2Bmax%2528date%2529%2BFROM%2Bpypi.pypi_downloads_per_day%2BWHERE%2Bproject%253D%2527psutil%2527%2529%2BAS%2Bm%2BSELECT%2Bconcat%2528toString%2528round%2528sum%2528count%2529%2B%252F%2B1e6%2529%2529%252C%2B%2527M%2527%2529%2BAS%2Bn%2BFROM%2Bpypi.pypi_downloads_per_day%2BWHERE%2Bproject%253D%2527psutil%2527%2BAND%2Bdate%2B%253E%2Bm%2B-%2BtoIntervalMonth%25281%2529%2BAND%2Bdate%2B%253C%253D%2Bm%2BFORMAT%2BJSONEachRow&query=%24.n&label=downloads%2Fmonth&color=blue&cacheSeconds=86400" alt="Downloads"></a>
<a href="https://repology.org/metapackage/python:psutil/versions"><img src="https://repology.org/badge/tiny-repos/python:psutil.svg" alt="Binary packages"></a>
<a href="https://pypi.org/project/psutil"><img src="https://img.shields.io/pypi/v/psutil.svg?label=pypi&color=yellowgreen" alt="Latest version"></a>
</div>
<div align="center">
<a href="https://github.com/giampaolo/psutil/actions?query=workflow%3Atests"><img src="https://img.shields.io/github/actions/workflow/status/giampaolo/psutil/.github/workflows/tests.yml.svg?label=Linux%2C%20Windows%2C%20macOS" alt="Linux, Windows, macOS"></a>
<a href="https://github.com/giampaolo/psutil/actions?query=workflow%3Absd"><img src="https://img.shields.io/github/actions/workflow/status/giampaolo/psutil/.github/workflows/bsd.yml.svg?label=BSD" alt="FreeBSD, NetBSD, OpenBSD"></a>
<a href="https://github.com/giampaolo/psutil/actions?query=workflow%3Adocs"><img src="https://img.shields.io/github/actions/workflow/status/giampaolo/psutil/.github/workflows/docs.yml.svg?label=docs" alt="Documentation"></a>
</div>
..
About
psutil is a cross-platform library for retrieving information about running
processes and system utilization (CPU, memory, disks, network, sensors)
in Python. It is useful mainly for system monitoring, profiling,
limiting process resources, and managing running processes. It
implements many functionalities offered by UNIX command line tool such as
ps, top, free, iotop, netstat, ifconfig, lsof and others (see
shell equivalents_). Psutil supports the following platforms:
- Linux
- Windows
- macOS
- FreeBSD, OpenBSD, NetBSD
- Sun Solaris
- AIX
Adoption
psutil is among the
top 100 <https://clickpy.clickhouse.com/dashboard/psutil>__ most-downloaded
packages on PyPI, with 320+ million downloads per month and 790,000+
GitHub repositories <https://github.com/giampaolo/psutil/network/dependents>__
using it. See also adoptions <https://psutil.io/adoption/>__ and
alternatives <https://psutil.io/alternatives/>__.
Install
.. code-block::
pip install psutil
For platform-specific details see installation <https://psutil.io/install/>_.
Documentation
psutil documentation is available at https://psutil.io.
..
Sponsors
.. raw:: html
<table border="0" cellpadding="10" cellspacing="0" class="sponsor-table">
<tr>
<td align="center" style="vertical-align: middle;">
<a href="https://tidelift.com/subscription/pkg/pypi-psutil?utm_source=pypi-psutil&utm_medium=referral&utm_campaign=readme"><img width="160" src="https://raw.githubusercontent.com/giampaolo/psutil/refs/heads/master/docs/_static/images/logo-tidelift.svg" class="sponsor-logo"></a>
</td>
<td align="center" style="vertical-align: middle;">
<a href="https://sansec.io/"><img width="145" src="https://raw.githubusercontent.com/giampaolo/psutil/refs/heads/master/docs/_static/images/logo-sansec.svg" class="sponsor-logo"></a>
</td>
<td align="center" style="vertical-align: middle;">
<a href="https://www.apivoid.com/"><img width="130" src="https://raw.githubusercontent.com/giampaolo/psutil/refs/heads/master/docs/_static/images/logo-apivoid.svg" class="sponsor-logo"></a>
</td>
</tr>
</table>
<div style="text-align: center;"><sup><a href="https://psutil.io/funding/">add your logo</a></sup></div>
..
Example usages
For the full API with more examples, see the
API overview <https://psutil.io/api-overview/>_ and
API reference <https://psutil.io/api/>_.
CPU
.. code-block:: python
>>> import psutil
>>> psutil.cpu_percent(interval=1, percpu=True)
[4.0, 6.9, 3.7, 9.2]
>>> psutil.cpu_count(logical=False)
2
>>> psutil.cpu_freq()
scpufreq(current=931.42, min=800.0, max=3500.0)
Memory
.. code-block:: python
>>> psutil.virtual_memory()
svmem(total=10367352832, available=6472179712, percent=37.6, used=8186245120, free=2181107712, ...)
>>> psutil.swap_memory()
sswap(total=2097147904, used=296128512, free=1801019392, percent=14.1, sin=304193536, sout=677842944)
Disks
.. code-block:: python
>>> psutil.disk_partitions()
[sdiskpart(device='/dev/sda1', mountpoint='/', fstype='ext4', opts='rw,nosuid'),
sdiskpart(device='/dev/sda2', mountpoint='/home', fstype='ext', opts='rw')]
>>> psutil.disk_usage('/')
sdiskusage(total=21378641920, used=4809781248, free=15482871808, percent=22.5)
Network
.. code-block:: python
>>> psutil.net_io_counters(pernic=True)
{'eth0': snetio(bytes_sent=485291293, bytes_recv=6004858642, ...),
'lo': snetio(bytes_sent=2838627, bytes_recv=2838627, ...)}
>>> psutil.net_connections(kind='tcp')
[sconn(fd=115, family=2, type=1, laddr=addr(ip='10.0.0.1', port=48776), raddr=addr(ip='93.186.135.91', port=80), status='ESTABLISHED', pid=1254),
...]
Sensors
.. code-block:: python
>>> psutil.sensors_temperatures()
{'coretemp': [shwtemp(label='Physical id 0', current=52.0, high=100.0, critical=100.0),
shwtemp(label='Core 0', current=45.0, high=100.0, critical=100.0)]}
>>> psutil.sensors_battery()
sbattery(percent=93, secsleft=16628, power_plugged=False)
Processes
.. code-block:: python
>>> p = psutil.Process(7055)
>>> p.name()
'python3'
>>> p.exe()
'/usr/bin/python3'
>>> p.cpu_percent(interval=1.0)
12.1
>>> p.memory_info()
pmem(rss=3164160, vms=4410163, shared=897433, text=302694, data=2422374)
>>> p.net_connections(kind='tcp')
[pconn(fd=115, family=2, type=1, laddr=addr(ip='10.0.0.1', port=48776), raddr=addr(ip='93.186.135.91', port=80), status='ESTABLISHED')]
>>> p.open_files()
[popenfile(path='/home/giampaolo/monit.py', fd=3, position=0, mode='r', flags=32768)]
>>>
>>> for p in psutil.process_iter(['pid', 'name']):
... print(p.snapshot.pid, p.snapshot.name)
...
1 systemd
2 kthreadd
3 ksoftirqd/0
...
.. _shell equivalents: https://psutil.io/shell-equivalents/
..
License
BSD-3
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,355 starspublic-apis/public-apis
A collective list of free APIs
496,644 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
437,116 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,048 stars