htop is an interactive text-mode process viewer for Unix systems. It aims to be a better 'top'.
C Lua C++ M4 Makefile Python Other
Permalink
Failed to load latest commit information.
darwin Issue #502 fix SID colunm header width Feb 4, 2017
freebsd Issue #502 fix SID colunm header width Feb 4, 2017
linux Merge branch 'master' of https://github.com/hishamhm/htop Feb 16, 2017
openbsd Interpret TTY_NR column on Linux, Oct 1, 2016
scripts Sorry about the mega-patch. Jan 22, 2015
unsupported Issue #502 fix SID colunm header width Feb 4, 2017
.editorconfig add editorconfig file to give hints to editors Oct 5, 2015
.gitignore remove autoconf files, generate by autogen.sh Jul 15, 2015
.travis.yml travis-ci should really detect autogen.sh... Nov 19, 2015
AUTHORS Initial import. Mar 4, 2006
Action.c Auto-follow process after a search. May 5, 2016
Action.h Auto-follow process after a search. May 5, 2016
Affinity.c Portable affinity using hwloc Feb 14, 2016
Affinity.h Portable affinity using hwloc Feb 14, 2016
AffinityPanel.c Check for failure in allocations. Feb 2, 2016
AffinityPanel.h Sorry about the mega-patch. Jan 22, 2015
AvailableColumnsPanel.c Do not trust isalpha(c) for values > 255. Mar 23, 2015
AvailableColumnsPanel.h Sorry about the mega-patch. Jan 22, 2015
AvailableMetersPanel.c Assert (Platform_meterTypes[0]==&CPUMeter_class) Mar 19, 2016
AvailableMetersPanel.h Sorry about the mega-patch. Jan 22, 2015
BatteryMeter.c Rename Meter.setValues() functions to updateValues() May 4, 2016
BatteryMeter.h Move platform-dependent parts of Linux battery meter. Nov 27, 2014
COPYING Resolve license incompatibility issues, Feb 24, 2010
CPUMeter.c Replace all uses of sprintf with snprintf Dec 29, 2016
CPUMeter.h Calculate CPU averages on Darwin (See #295). Oct 23, 2015
CRT.c Handle SIGQUIT. Closes #503. May 30, 2016
CRT.h Avoid overlapping key values defined by curses (Real fix). Mar 9, 2016
CategoriesPanel.c Added Ctrl+A and Ctrl+E to go to beginning and end of line. Jun 15, 2016
CategoriesPanel.h Sorry about the mega-patch. Jan 22, 2015
ChangeLog Changelog for htop 2.0.2 Jul 21, 2016
CheckItem.c Avoid future confusions with how default values are set. Aug 12, 2015
CheckItem.h Avoid future confusions with how default values are set. Aug 12, 2015
ClockMeter.c Rename Meter.setValues() functions to updateValues() May 4, 2016
ClockMeter.h Changes in object model: separate class objects to store vtable. Also… Dec 5, 2012
ColorsPanel.c Check for failure in allocations. Feb 2, 2016
ColorsPanel.h Make the implementation of color schemes declarative. Feb 3, 2015
ColumnsPanel.c Check for failure in allocations. Feb 2, 2016
ColumnsPanel.h Sorry about the mega-patch. Jan 22, 2015
DisplayOptionsPanel.c Try to make threads less confusing. Feb 2, 2016
DisplayOptionsPanel.h Changes in object model: separate class objects to store vtable. Also… Dec 5, 2012
EnvScreen.c Silence warnings about seteuid return value. May 26, 2016
EnvScreen.h refactor *Screen classes, add InfoScreen superclass Jan 12, 2016
FunctionBar.c Check for failure in allocations. Feb 2, 2016
FunctionBar.h Simplify constructors. Mar 23, 2015
Hashtable.c Check for failure in allocations. Feb 2, 2016
Hashtable.h major header cleanup Dec 26, 2011
Header.c Fix macro Header_forEachColumn May 7, 2016
Header.h Fix macro Header_forEachColumn May 7, 2016
HostnameMeter.c Rename Meter.setValues() functions to updateValues() May 4, 2016
HostnameMeter.h Changes in object model: separate class objects to store vtable. Also… Dec 5, 2012
INSTALL Update INSTALL text from autoconf-2.69 May 8, 2016
IncSet.c Auto-follow process after a search. May 5, 2016
IncSet.h Auto-follow process after a search. May 5, 2016
InfoScreen.c Refresh whole panel on Ctrl+L in infoscreen. Jun 23, 2016
InfoScreen.h refactor *Screen classes, add InfoScreen superclass Jan 12, 2016
ListItem.c Check for failure in allocations. Feb 2, 2016
ListItem.h Sorry about the mega-patch. Jan 22, 2015
LoadAverageMeter.c Replace all uses of sprintf with snprintf Dec 29, 2016
LoadAverageMeter.h Changes in object model: separate class objects to store vtable. Also… Dec 5, 2012
MainPanel.c 'Follow' only if element is found in search Jul 28, 2016
MainPanel.h Make sure a pointer fits in the argument! May 25, 2016
Makefile.am Force -lgcov harder when running `make coverage`. Feb 19, 2016
MemoryMeter.c Rename Meter.setValues() functions to updateValues() May 4, 2016
MemoryMeter.h Changes in object model: separate class objects to store vtable. Also… Dec 5, 2012
Meter.c Let BarMeterMode_characters[] be const array. Jul 22, 2016
Meter.h Rename Meter.setValues() functions to updateValues() May 4, 2016
MetersPanel.c Fixes #498. May 26, 2016
MetersPanel.h Improve feedback when moving meters. Aug 27, 2015
NEWS cleanup old stuff Nov 21, 2011
Object.c Check for failure in allocations. Feb 2, 2016
Object.h Check for failure in allocations. Feb 2, 2016
OpenFilesScreen.c Interpret TTY_NR column on Linux, Oct 1, 2016
OpenFilesScreen.h refactor *Screen classes, add InfoScreen superclass Jan 12, 2016
Panel.c Fix scrolling behavior change caused by 759caf0 Aug 6, 2016
Panel.h Added Ctrl+A and Ctrl+E to go to beginning and end of line. Jun 15, 2016
Process.c Replace all uses of sprintf with snprintf Dec 29, 2016
Process.h Silence cast warning. May 30, 2016
ProcessList.c Release resource when using hwloc Mar 1, 2016
ProcessList.h Portable affinity using hwloc Feb 14, 2016
README Point users to the official release tarballs. Aug 23, 2016
README.md Add README.md for Github Feb 3, 2014
RichString.c Check for failure in allocations. Feb 2, 2016
RichString.h Introduce CLAMP macro. Unify all MIN(MAX(a,b),c) uses. Jan 15, 2016
ScreenManager.c Added Ctrl+A and Ctrl+E to go to beginning and end of line. Jun 15, 2016
ScreenManager.h Move FunctionBar inside Panel Mar 23, 2015
Settings.c Dynamically adjust the size of line reads Jun 19, 2016
Settings.h Merge pull request #148 from nckx/display-basename Aug 12, 2015
SignalsPanel.c Protect against strange values of SIGRTMIN and SIGRTMAX, Sep 16, 2016
SignalsPanel.h Changes in object model: separate class objects to store vtable. Also… Dec 5, 2012
StringUtils.c free(NULL) is a valid no-op, so let's make String_freeArray(NULL) val… Aug 24, 2016
StringUtils.h Optimize Strings_startWith() Aug 11, 2016
SwapMeter.c Rename Meter.setValues() functions to updateValues() May 4, 2016
SwapMeter.h use dynamic units for text display Aug 27, 2015
TESTPLAN Fix failing stuff. Apr 9, 2015
TasksMeter.c Replace all uses of sprintf with snprintf Dec 29, 2016
TasksMeter.h Changes in object model: separate class objects to store vtable. Also… Dec 5, 2012
TraceScreen.c Replace all uses of sprintf with snprintf Dec 29, 2016
TraceScreen.h refactor *Screen classes, add InfoScreen superclass Jan 12, 2016
UptimeMeter.c Replace all uses of sprintf with snprintf Dec 29, 2016
UptimeMeter.h Move UptimeMeter back into cross-platform code. Nov 27, 2014
UsersTable.c Check for failure in allocations. Feb 2, 2016
UsersTable.h major header cleanup Dec 26, 2011
Vector.c Check for failure in allocations. Feb 2, 2016
Vector.h Changes in object model: separate class objects to store vtable. Also… Dec 5, 2012
XAlloc.c Fix xStrdup debug build failure & allow Clang to use ((nonnull)) Jun 3, 2016
XAlloc.h Fix xStrdup debug build failure & allow Clang to use ((nonnull)) Jun 3, 2016
autogen.sh Simplify autogen.sh Feb 14, 2016
configure.ac Downgrade requirement to Libtool 2.4.0. Sep 12, 2016
htop.1.in Issue #502 update Session ID column Jan 31, 2017
htop.c Remove old commented code. Feb 19, 2016
htop.desktop Add Keywords entry to .desktop file (Debian Lintian warning desktop-e… Apr 19, 2016
htop.h Sorry about the mega-patch. Jan 22, 2015
htop.png Updated icon! Apr 9, 2014
test_spec.lua Fix typos, by @Gelma. Aug 30, 2016

README.md

Build Status PayPal donate

htop

by Hisham Muhammad hisham@gobolinux.org (2004 - 2016)

Introduction

This is htop, an interactive process viewer. It requires ncurses. It is developed primarily on Linux, but we also have code for running under FreeBSD and Mac OS X (help and testing are wanted for these platforms!)

This software has evolved considerably over the years, and is reasonably complete, but there is always room for improvement.

Comparison between htop and classic top

  • In htop you can scroll the list vertically and horizontally to see all processes and full command lines.
  • In top you are subject to a delay for each unassigned key you press (especially annoying when multi-key escape sequences are triggered by accident).
  • htop starts faster (top seems to collect data for a while before displaying anything).
  • In htop you don't need to type the process number to kill a process, in top you do.
  • In htop you don't need to type the process number or the priority value to renice a process, in top you do.
  • In htop you can kill multiple processes at once.
  • top is older, hence, more tested.

Compilation instructions

This program is distributed as a standard autotools-based package. See the INSTALL file for detailed instructions.

When compiling from a release tarball, run:

./configure && make

For compiling sources downloaded from the Git repository, run:

./autogen.sh && ./configure && make

By default make install will install into /usr/local, for changing the path use ./configure --prefix=/some/path.

See the manual page (man htop) or the on-line help ('F1' or 'h' inside htop) for a list of supported key commands.

If not all keys work check your curses configuration.

License

GNU General Public License, version 2 (GPL-2.0)