procs
Modern ps replacement with color output and tree view.
Official WebsiteFeatures
Color OutputTree ViewDocker SupportWatch Mode
Replaces
psInstallation
Homebrew
brew install procsPacman (Arch)
pacman -S procsCargo (Rust)
cargo install procsWhy use procs?
procs is a modern process viewer that includes all the functionality of the traditionalps command while significantly improving visibility and usability.
Color Display
Color-coded display based on CPU/memory usage. Instantly see resource-heavy processes.
Tree View
Display process parent-child relationships in tree format. Understand process hierarchy intuitively.
Watch Mode
Real-time updating display. Dynamic process monitoring like top.
Docker Support
Display Docker container names. Easier process management in container environments.
Basic Usage
Display Processes
Basic Commands
# Display all processes
procs
# Search by specific keyword
procs node
# Filter by multiple keywords (OR search)
procs python ruby
# Display by PID
procs --pid 1234Output Example
PID:▲ User │ TTY │ CPU │ MEM │ CPU Time │ Command
1 root │ ? │ 0.0 │ 0.1 │ 00:00:02 │ /sbin/init
423 root │ ? │ 0.0 │ 0.2 │ 00:00:01 │ /usr/lib/systemd/systemd-journald
1024 daiaoki │ pts/0 │ 2.5 │ 1.8 │ 00:05:23 │ node server.js
1156 daiaoki │ pts/1 │ 45.2 │ 12.4 │ 01:23:45 │ python train.py
2048 daiaoki │ pts/2 │ 0.1 │ 0.5 │ 00:00:15 │ vim config.toml
Colors change based on CPU/memory usage (green: low → yellow: medium → red: high)
Common Options
| Option | Description | Example |
|---|---|---|
-t, --tree | Display in tree view | procs --tree |
-w, --watch | Watch mode (real-time update) | procs --watch |
--watch-interval | Specify update interval (milliseconds) | procs -w --watch-interval 500 |
-a, --and | AND search (match all keywords) | procs -a python server |
-o, --or | OR search (default) | procs -o node python |
--sorta, --sortd | Ascending/descending sort | procs --sortd cpu |
-i, --insert | Display additional columns | procs -i docker |
Search and Filtering
Keyword Search
Search Options
# Search by command name
procs nginx
# Search by username
procs root
# Search by PID
procs 1234
# AND search (processes containing both)
procs -a python flask
# OR search (processes containing either)
procs node python rubySorting and Display Order
Sort Options
# Sort by CPU usage (descending)
procs --sortd cpu
# Sort by memory usage (descending)
procs --sortd mem
# Sort by PID (ascending)
procs --sorta pid
# Sort by start time
procs --sortd startPractical Examples
Tree View
Tree View
# Display process parent-child relationships in tree
procs --tree
# Display specific process and its children
procs --tree systemd
# Tree view + watch mode
procs --tree --watchPID:▲ User │ CPU │ MEM │ Command
1 root │ 0.0 │ 0.1 │ /sbin/init
423 root │ 0.0 │ 0.2 │ ├─ systemd-journald
512 root │ 0.0 │ 0.1 │ ├─ systemd-udevd
1024 daiaoki│ 0.5 │ 0.8 │ ├─ bash
1156 daiaoki│ 2.1 │ 1.5 │ │ └─ node server.js
1200 daiaoki│ 0.1 │ 0.3 │ │ └─ node worker.js
Watch Mode
Watch Mode
# Monitor processes in real-time
procs --watch
# Update every 500ms
procs --watch --watch-interval 500
# Monitor specific process
procs --watch node
# Monitor sorted by CPU usage
procs --watch --sortd cpuPress q key to exit watch mode.
Docker Support
Docker Support
# Add Docker container name column
procs -i docker
# Display Docker container processes
procs -i docker nginx
# Filter by container name
procs my-containerPID:▲ User │ Docker │ CPU │ MEM │ Command
2048 root │ nginx-proxy │ 0.2 │ 0.5 │ nginx: master
2156 www │ nginx-proxy │ 0.1 │ 0.3 │ nginx: worker
3072 root │ postgres-db │ 1.5 │ 2.1 │ postgres
4096 node │ app-backend │ 3.2 │ 4.5 │ node index.js
Configuration and Customization
Configuration File
Customize default settings in ~/.config/procs/config.toml.
~/.config/procs/config.toml
# ~/.config/procs/config.toml
# Specify columns to display
[[columns]]
kind = "Pid"
style = "BrightYellow"
numeric_search = true
nonnumeric_search = false
[[columns]]
kind = "User"
style = "BrightCyan"
[[columns]]
kind = "Separator"
style = "White"
[[columns]]
kind = "CpuTime"
style = "BrightMagenta"
[[columns]]
kind = "Command"
style = "BrightWhite"
# Add Docker column
[[columns]]
kind = "Docker"
style = "BrightBlue"
# Pager settings
[pager]
mode = "Auto" # Auto, Always, Disable
# Display style
[style]
header = "BrightWhite|Bold"
unit = "BrightWhite"
# Color theme
[style.by_percentage]
color_000 = "BrightBlue"
color_025 = "BrightGreen"
color_050 = "BrightYellow"
color_075 = "BrightRed"
color_100 = "BrightRed"Custom Column Configuration
Column Customization
# Available column types
# Pid, User, Username, Uid, Gid, State, Nice, Priority
# Ppid, Threads, StartTime, CpuTime, Cpu, Mem, VmSize
# VmRss, VmPeak, ReadBytes, WriteBytes, Command, Docker
# and many more
# Add columns from command line
procs -i docker,state
# Specify display columns (recommended in config.toml)
procs --config minimalShell Alias Configuration
Alias Configuration
# ~/.bashrc or ~/.zshrc
# Replace ps with procs
alias ps='procs'
# Common formats
alias pst='procs --tree'
alias psw='procs --watch'
alias psc='procs --sortd cpu'
alias psm='procs --sortd mem'
# For Docker environments
alias psd='procs -i docker'Comparison with ps
| Feature | ps | procs |
|---|---|---|
| Color Display | - | Color-coded by CPU/memory usage |
| Tree View | ps --forest | Beautiful tree display |
| Watch Mode | watch ps | Built-in support |
| Keyword Search | ps aux | grep ... | Direct argument search |
| Docker Support | - | Display container names |
| Column Customization | -o option | Flexible with config file |
| Portability | Built-in by default | Requires separate installation |
Tips and Tricks
- •Generate config file template with
procs --gen-config - •Interactive search is available with
/key in watch mode - •Some features (Docker column, etc.) may be limited on macOS
- •Color output is automatically disabled when piping to other commands. Force it with
--color always - •Find high-load processes with
procs --sortd cpuorprocs --sortd mem