htop is a cross-platform interactive process viewer.
htop allows scrolling the list of processes vertically and horizontally to see their full command lines and related information like memory and CPU consumption.
Also system wide information, like load average or swap usage, is shown.
The information displayed is configurable through a graphical setup and can be sorted and filtered interactively.
Tasks related to processes (e.g. killing and renicing) can be done without entering their PIDs.
Running htop requires ncurses libraries, typically named libncurses(w).
htop requires ncurses 6.0. Be aware the appropriate package is sometimes still called libncurses5 (on Debian/Ubuntu). Also ncurses usually comes in two flavours:
With Unicode support.
Without Unicode support.
This is also something that is reflected in the package name on Debian/Ubuntu (via the additional ‘w’ - ‘w’ide character support).
List of additional build-time dependencies (based on feature flags):
pkg-config
sensors
hwloc
libcap (v2.21 or later)
libnl-3 and libnl-genl-3
pkg-config is optional but recommended. The configure script of htop might utilize pkg-config to obtain the compiler and linker flags required for a library. Some OS distributions provide pkg-config functionalities through an alternative implementation such as pkgconf. Look for both names in your package manager.
Install these and other required packages for C development from your package manager.
To compile from source, download from the Git repository (git clone or downloads from GitHub releases), then run:
./autogen.sh && ./configure && make
Install
To install on the local system run make install. By default make install installs into /usr/local. To change this path use ./configure --prefix=/some/path.
Build Options
htop has several build-time options to enable/disable additional features.
Generic
--enable-unicode:
enable Unicode support
dependency: libncursesw
default: yes
--enable-affinity:
enable sched_setaffinity(2) and sched_getaffinity(2) for affinity support; conflicts with hwloc
default: check
--enable-hwloc:
enable hwloc support for CPU affinity; disables affinity support
dependency: libhwloc
default: no
--enable-static:
build a static htop binary; hwloc and delay accounting are not supported
default: no
--enable-debug:
Enable asserts and internal sanity checks; implies a performance penalty
default: no
Performance Co-Pilot
--enable-pcp:
enable Performance Co-Pilot support via a new pcp-htop utility
dependency: libpcp
default: no
Linux
--enable-sensors:
enable libsensors(3) support for reading temperature data
dependencies: libsensors-dev(build-time), at runtime libsensors is loaded via dlopen(3) if available
default: check
--enable-capabilities:
enable Linux capabilities support
dependency: libcap
default: check
--with-proc:
location of a Linux-compatible proc filesystem
default: /proc
--enable-openvz:
enable OpenVZ support
default: no
--enable-vserver:
enable VServer support
default: no
--enable-ancient-vserver:
enable ancient VServer support (implies --enable-vserver)
default: no
--enable-delayacct:
enable Linux delay accounting support
dependencies: libnl-3-dev(build-time) and libnl-genl-3-dev(build-time), at runtime libnl-3 and libnl-genl-3 are loaded via dlopen(3) if available and requested
default: check
Runtime dependencies:
htop has a set of fixed minimum runtime dependencies, which is kept as minimal as possible:
ncurses libraries for terminal handling (wide character support).
Runtime optional dependencies:
htop has a set of fixed optional dependencies, depending on build/configure option used:
Linux
libdl, if not building a static binary, is always required when support for optional dependencies (i.e. libsensors, libsystemd) is present.
libcap, user-space interfaces to POSIX 1003.1e capabilities, is always required when --enable-capabilities was used to configure htop.
libsensors, readout of temperatures and CPU speeds, is optional even when --enable-sensors was used to configure htop.
libsystemd is optional when --enable-static was not used to configure htop. If building statically and libsystemd is not found by configure, support for the systemd meter is disabled entirely.
libnl-3 and libnl-genl-3, if htop was configured with --enable-delayacct and delay accounting process fields are active.
I/O counters are available when the kernel is compiled with CONFIG_TASK_IO_ACCOUNTING=Y.
htop checks for the availability of the actual runtime libraries as htop runs.
BSD
On most BSD systems kvm is a requirement to read kernel information.
More information on required and optional dependencies can be found in configure.ac.
Usage
See the manual page (man htop) or the help menu (F1 or h inside htop) for a list of supported key commands.
Support
If you have trouble running htop please consult your operating system / Linux distribution documentation for getting support and filing bugs.
Bugs, development feedback
We have a development mailing list. Feel free to subscribe for release announcements or asking questions on the development of htop.
You can also join our IRC channel #htop on Libera.Chat and talk to the developers there.
If you have found an issue within the source of htop, please check whether this has already been reported in our GitHub issue tracker.
If not, please file a new issue describing the problem you have found, the potential location in the source code you are referring to and a possible fix if available.
History
htop was invented, developed and maintained by Hisham Muhammad from 2004 to 2019. His legacy repository has been archived to preserve the history.
In 2020 a team took over the development amicably and continues to maintain htop collaboratively.
License
GNU General Public License, version 2 (GPL-2.0) or, at your option, any later version.
Introduction
htopis a cross-platform interactive process viewer.htopallows scrolling the list of processes vertically and horizontally to see their full command lines and related information like memory and CPU consumption. Also system wide information, like load average or swap usage, is shown.The information displayed is configurable through a graphical setup and can be sorted and filtered interactively.
Tasks related to processes (e.g. killing and renicing) can be done without entering their PIDs.
Running
htoprequiresncurseslibraries, typically named libncurses(w).htopis written in C.For more information and details visit htop.dev.
Build instructions
Prerequisite
List of build-time dependencies:
autoconfautomakeautotoolsncursesNote about
ncurses:List of additional build-time dependencies (based on feature flags):
pkg-configsensorshwloclibcap(v2.21 or later)libnl-3andlibnl-genl-3pkg-configis optional but recommended. The configure script ofhtopmight utilizepkg-configto obtain the compiler and linker flags required for a library. Some OS distributions providepkg-configfunctionalities through an alternative implementation such aspkgconf. Look for both names in your package manager.Install these and other required packages for C development from your package manager.
Debian/Ubuntu
Fedora/RHEL
Archlinux/Manjaro
macOS
Compile from source:
To compile from source, download from the Git repository (
git cloneor downloads from GitHub releases), then run:Install
To install on the local system run
make install. By defaultmake installinstalls into/usr/local. To change this path use./configure --prefix=/some/path.Build Options
htophas several build-time options to enable/disable additional features.Generic
--enable-unicode: enable Unicode support--enable-affinity: enablesched_setaffinity(2)andsched_getaffinity(2)for affinity support; conflicts with hwloc--enable-hwloc: enable hwloc support for CPU affinity; disables affinity support--enable-static: build a static htop binary; hwloc and delay accounting are not supported--enable-debug: Enable asserts and internal sanity checks; implies a performance penaltyPerformance Co-Pilot
--enable-pcp: enable Performance Co-Pilot support via a new pcp-htop utilityLinux
--enable-sensors: enable libsensors(3) support for reading temperature datadlopen(3)if available--enable-capabilities: enable Linux capabilities support--with-proc: location of a Linux-compatible proc filesystem--enable-openvz: enable OpenVZ support--enable-vserver: enable VServer support--enable-ancient-vserver: enable ancient VServer support (implies--enable-vserver)--enable-delayacct: enable Linux delay accounting supportdlopen(3)if available and requestedRuntime dependencies:
htophas a set of fixed minimum runtime dependencies, which is kept as minimal as possible:ncurseslibraries for terminal handling (wide character support).Runtime optional dependencies:
htophas a set of fixed optional dependencies, depending on build/configure option used:Linux
libdl, if not building a static binary, is always required when support for optional dependencies (i.e.libsensors,libsystemd) is present.libcap, user-space interfaces to POSIX 1003.1e capabilities, is always required when--enable-capabilitieswas used to configurehtop.libsensors, readout of temperatures and CPU speeds, is optional even when--enable-sensorswas used to configurehtop.libsystemdis optional when--enable-staticwas not used to configurehtop. If building statically andlibsystemdis not found byconfigure, support for the systemd meter is disabled entirely.libnl-3andlibnl-genl-3, ifhtopwas configured with--enable-delayacctand delay accounting process fields are active.CONFIG_TASK_IO_ACCOUNTING=Y.htopchecks for the availability of the actual runtime libraries ashtopruns.BSD
On most BSD systems
kvmis a requirement to read kernel information.More information on required and optional dependencies can be found in configure.ac.
Usage
See the manual page (
man htop) or the help menu (F1 or h insidehtop) for a list of supported key commands.Support
If you have trouble running
htopplease consult your operating system / Linux distribution documentation for getting support and filing bugs.Bugs, development feedback
We have a development mailing list. Feel free to subscribe for release announcements or asking questions on the development of
htop.You can also join our IRC channel #htop on Libera.Chat and talk to the developers there.
If you have found an issue within the source of
htop, please check whether this has already been reported in our GitHub issue tracker. If not, please file a new issue describing the problem you have found, the potential location in the source code you are referring to and a possible fix if available.History
htopwas invented, developed and maintained by Hisham Muhammad from 2004 to 2019. His legacy repository has been archived to preserve the history.In 2020 a team took over the development amicably and continues to maintain
htopcollaboratively.License
GNU General Public License, version 2 (GPL-2.0) or, at your option, any later version.