procs is a modern alternative to ps with colored output, additional information (written in Rust)

process Is a modern alternative ps Written in Rust.compared to ps, It comes with colored and human-readable output, additional information such as TCP/UDP port, read/write throughput, more memory information, and Docker container name.

The tool runs on Linux and also provides experimental support for macOS and Windows, although some information about these is not available. In addition, Windows does not support pagers.

procs functions include:

  • Colored, human-readable output format with automatic subject detection based on terminal background
  • Multi-column keyword search
  • Pager support
  • Watch mode such as top (--watch or --watch-interval <seconds>, It has some additional keyboard shortcuts (n Change the sort column to the next one, p Change the sorting to the previous column, a Change the sort order to ascending, d Change the sort to descending order, and q drop out)
  • Tree view (--tree)
  • Can display unsupported information ps, Like:
    • TCP/UDP port
    • Read/write throughput
    • Docker container name
    • More memory information

By default, procs only displays PID, user, TTY, CPU, MEM, CPU time, and command line, but you can add various other types of information.

You can find a list of the types of information that procs can display, as well as ps, And the types of procs information available or unavailable on macOS and Windows, Here.

You might also like: Use kmon (TUI) to easily load, unload and blacklist kernel modules

Installation process

Many Linux distributions have procs packages, including Alpine Linux, Arch Linux and Fedora, as well as general Snap packages. You can also use the cargo to install the tool. On macOS, procs can be installed from homebrew.

You can also Project release page, Applicable to Linux (universal binaries and RPM), macOS and Windows (x86_64 is only available for all platforms).

You can install the universal Linux binary file ( package) by unzipping it, then open a terminal and navigate to the folder where you unzipped the ZIP archive, and install it with the following command:

sudo install procs /usr/local/bin

You might also like: Zellij is a new terminal multiplexer written in Rust

Basic usage

To use procs, run the executable file, which will display information about all running processes:


Pass a non-numeric keyword as a parameter, procs will search for this keyword and match it to USER, Command By default (for non-numeric keywords, they are treated as partial matches by default). E.g:

procs firefox

This is a screenshot of the output:

procs search name

By passing a numeric keyword as a parameter, procs matches it to PID By default, it is treated as an exact match. E.g:

procs 6171

This is a screenshot of the output of this command:

Process pid

When searching, you can use logical operators, such as -a, --and, -o, --or, -d, --nand, with -r, --nor.


You can configure procs using command line flags (see procs --help), or use its configuration file. You can use the following command to generate a sample configuration file:

procs --config

Copy the beginning of the output of this command [[columns]] All the way down and then create the process Configuration file Use on Linux:

mkdir -p ~/.config/procs/config.tomltouch ~/.config/procs/config.toml

Open now ~/.config/procs/config.toml Use a text editor of your choice and paste procs --config Output (from [[columns]] To the bottom of the command output). Save the file when you are done.

After the basic configuration is in place, it should be easy to configure proc according to your preferences. For example, let us add 2 new columns to display information about TCP and UDP ports. Copy the following configuration:

[[columns]]kind = "TcpPort"style = "BrightYellow|Yellow"numeric_search = falsenonnumeric_search = truealign = "Left"[[columns]]kind = "UdpPort"style = "BrightYellow|Yellow"numeric_search = falsenonnumeric_search = truealign = "Left"

And paste it in ~/.config/procs/config.toml File, somewhere in between [[columns]], Where you want to display the TCP and UDP columns. You can also add separators before and after these 2 TCP and UDP columns:

[[columns]]kind = "Separator"style = "White|BrightBlack"numeric_search = falsenonnumeric_search = falsealign = "Left"

When finished, save the file and run procs. You should see 2 new columns showing TCP and UDP ports. For example, here is the port used by qBittorrent on my computer, using this configuration:

Process tcp udp

In the same way, you can add many other column types. For example, to add the Docker container name, add “Docker” as the column type. You can find many other types of columns (called “kinds” in the procs documentation) that you can add.see The full list is here.

In the procs configuration file, you can also specify the colors and styles to be used, set numeric and non-numeric searches as exact or partial searches, set the default column for sorting, and whether it should be sorted in ascending or descending order, etc.

You may also like: s-tui: CPU monitoring and stress test console UI tool