S-tui is a free and open source terminal UI for monitoring your computer. s-tui allows to monitor CPU temperature, frequency, power and utilization in a graphical way from the terminal. It is written in Python and need root permission to use the s-tui. It is useful for:
- Watch your CPU temperature/utilization/frequency/power
- See performance dips caused by thermal throttling
- No need to use X-server. Perfect for headless usage including Raspberry PI
Let us see how to install and use s-tui on a Linux based system.
Step 1 – Install pip
Type the following command to install pip – a package management for Python using apt command/apt-get command:
$ sudo apt install python-pip stress
Sample outputs:
Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: binutils build-essential cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev libgomp1 libisl15 libitm1 liblsan0 libmpc3 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7 libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev python python-all python-all-dev python-dev python-minimal python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7 python2.7-dev python2.7-minimal Suggested packages: binutils-doc cpp-doc gcc-5-locales debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib autoconf automake libtool flex bison gdb gcc-doc gcc-5-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc libstdc++-5-doc make-doc python-doc python-tk python-setuptools-doc python2.7-doc binfmt-support The following NEW packages will be installed: binutils build-essential cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev libgomp1 libisl15 libitm1 liblsan0 libmpc3 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7 libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev python python-all python-all-dev python-dev python-minimal python-pip python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7 python2.7-dev python2.7-minimal 0 upgraded, 57 newly installed, 0 to remove and 0 not upgraded. Need to get 73.4 MB of archives. After this operation, 209 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython2.7-minimal amd64 2.7.12-1ubuntu0~16.04.2 [338 kB] .... .. ... Setting up libalgorithm-merge-perl (0.08-3) ... Setting up libexpat1-dev:amd64 (2.1.0-7ubuntu0.16.04.3) ... Setting up libfile-fcntllock-perl (0.22-3) ... Setting up libpython2.7:amd64 (2.7.12-1ubuntu0~16.04.2) ... Setting up libpython2.7-dev:amd64 (2.7.12-1ubuntu0~16.04.2) ... Setting up libpython-dev:amd64 (2.7.11-1) ... Setting up libpython-all-dev:amd64 (2.7.11-1) ... Setting up manpages-dev (4.04-2) ... Setting up python-all (2.7.11-1) ... Setting up python2.7-dev (2.7.12-1ubuntu0~16.04.2) ... Setting up python-dev (2.7.11-1) ... Setting up python-all-dev (2.7.11-1) ... Setting up python-pip-whl (8.1.1-2ubuntu0.4) ... Setting up python-pip (8.1.1-2ubuntu0.4) ... Setting up python-pkg-resources (20.7.0-1) ... Setting up python-setuptools (20.7.0-1) ... Setting up python-wheel (0.29.0-1) ... Processing triggers for libc-bin (2.23-0ubuntu9) ... |
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
binutils build-essential cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libdpkg-perl
libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev libgomp1 libisl15 libitm1 liblsan0 libmpc3 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7 libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib
libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev python python-all python-all-dev python-dev python-minimal python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7 python2.7-dev
python2.7-minimal
Suggested packages:
binutils-doc cpp-doc gcc-5-locales debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib autoconf automake libtool flex bison gdb gcc-doc gcc-5-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg
libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc libstdc++-5-doc make-doc python-doc python-tk python-setuptools-doc python2.7-doc binfmt-support
The following NEW packages will be installed:
binutils build-essential cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libdpkg-perl
libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev libgomp1 libisl15 libitm1 liblsan0 libmpc3 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7 libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib
libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev python python-all python-all-dev python-dev python-minimal python-pip python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7
python2.7-dev python2.7-minimal
0 upgraded, 57 newly installed, 0 to remove and 0 not upgraded.
Need to get 73.4 MB of archives.
After this operation, 209 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython2.7-minimal amd64 2.7.12-1ubuntu0~16.04.2 [338 kB]
….
..
…
Setting up libalgorithm-merge-perl (0.08-3) …
Setting up libexpat1-dev:amd64 (2.1.0-7ubuntu0.16.04.3) …
Setting up libfile-fcntllock-perl (0.22-3) …
Setting up libpython2.7:amd64 (2.7.12-1ubuntu0~16.04.2) …
Setting up libpython2.7-dev:amd64 (2.7.12-1ubuntu0~16.04.2) …
Setting up libpython-dev:amd64 (2.7.11-1) …
Setting up libpython-all-dev:amd64 (2.7.11-1) …
Setting up manpages-dev (4.04-2) …
Setting up python-all (2.7.11-1) …
Setting up python2.7-dev (2.7.12-1ubuntu0~16.04.2) …
Setting up python-dev (2.7.11-1) …
Setting up python-all-dev (2.7.11-1) …
Setting up python-pip-whl (8.1.1-2ubuntu0.4) …
Setting up python-pip (8.1.1-2ubuntu0.4) …
Setting up python-pkg-resources (20.7.0-1) …
Setting up python-setuptools (20.7.0-1) …
Setting up python-wheel (0.29.0-1) …
Processing triggers for libc-bin (2.23-0ubuntu9) …
Step 2 – Install s-tui
Type the following command to install it:
$ sudo pip install s-tui
Collecting s-tui Downloading s-tui-0.6.7.2.tar.gz Collecting urwid>=1.3.1 (from s-tui) Downloading urwid-1.3.1.tar.gz (588kB) 100% |████████████████████████████████| 593kB 558kB/s Collecting psutil>=5.2.0 (from s-tui) Downloading psutil-5.4.2.tar.gz (411kB) 100% |████████████████████████████████| 419kB 646kB/s Installing collected packages: urwid, psutil, s-tui Running setup.py install for urwid ... done Running setup.py install for psutil ... done Running setup.py install for s-tui ... done Successfully installed psutil-5.4.2 s-tui-0.6.7.2 urwid-1.3.1
Arch Linux users can type the following command to install it:
$ sudo yaourt -S s-tui
Step 3 – Use it
Simply type the following command:
$ sudo s-tui
Sample outputs:
Getting help
s-tui has many more option. Type the following command to see them:
$ s-tui --help
Sample outputs:
usage: s-tui [-h] [-d] [-c] [-t] [-j] [-nm] [-v] [-ct CUSTOM_TEMP] [-cf CUSTOM_FAN] TUI interface: The side bar houses the controls for the displayed grahps. At the bottom of the side bar, more information is presented in text form. * Use the arrow keys or 'hjkl' to navigate the side bar * Toggle between stressed and regular operation using the radio buttons in 'Modes'. * If you wish to alternate stress defaults, you can do it in 'Stress options' * Select a different temperature sensors from the 'Temp Sensors' menu * Change time between updates using the 'Refresh' field * Use the <Reset> button to reset graphs and statistics * Toggle displayed graphs by selecting the [X] check box * If a sensor is not available on your system, N/A is presented * If your system supports it, you can use the utf8 button to get a smoother graph * Press 'q' or the <quit> button to quit * Run `s-tui --help` to get this message and additional cli options optional arguments: -h, --help show this help message and exit -d, --debug Output debug log to _s-tui.log -c, --csv Save stats to csv file -t, --terminal Display a single line of stats without tui -j, --json Display a single line of stats in JSON format -nm, --no-mouse Disable Mouse for TTY systems -v, --version Display version -ct CUSTOM_TEMP, --custom_temp CUSTOM_TEMP Custom temperature sensors. The format is: <sensors>,<number> As it appears in 'sensors' e.g > sensors it8792-isa-0a60, temp1: +47.0C temp2: +35.0C temp3: +37.0C use: -ct it8792,0 for temp 1 -cf CUSTOM_FAN, --custom_fan CUSTOM_FAN Similar to custom temp e.g >sensors thinkpad-isa-0000 Adapter: ISA adapter fan1: 1975 RPM use: -cf thinkpad,0 for fan1 |
usage: s-tui [-h] [-d] [-c] [-t] [-j] [-nm] [-v] [-ct CUSTOM_TEMP]
[-cf CUSTOM_FAN] TUI interface: The side bar houses the controls for the displayed grahps.
At the bottom of the side bar, more information is presented in text form. * Use the arrow keys or ‘hjkl’ to navigate the side bar
* Toggle between stressed and regular operation using the radio buttons in ‘Modes’.
* If you wish to alternate stress defaults, you can do it in ‘Stress options’
* Select a different temperature sensors from the ‘Temp Sensors’ menu
* Change time between updates using the ‘Refresh’ field
* Use the <Reset> button to reset graphs and statistics
* Toggle displayed graphs by selecting the [X] check box
* If a sensor is not available on your system, N/A is presented
* If your system supports it, you can use the utf8 button to get a smoother graph
* Press ‘q’ or the <quit> button to quit * Run `s-tui –help` to get this message and additional cli options optional arguments:
-h, –help show this help message and exit
-d, –debug Output debug log to _s-tui.log
-c, –csv Save stats to csv file
-t, –terminal Display a single line of stats without tui
-j, –json Display a single line of stats in JSON format
-nm, –no-mouse Disable Mouse for TTY systems
-v, –version Display version
-ct CUSTOM_TEMP, –custom_temp CUSTOM_TEMP
Custom temperature sensors.
The format is: <sensors>,<number>
As it appears in ‘sensors’
e.g
> sensors
it8792-isa-0a60,
temp1: +47.0C
temp2: +35.0C
temp3: +37.0C
use: -ct it8792,0 for temp 1
-cf CUSTOM_FAN, –custom_fan CUSTOM_FAN
Similar to custom temp
e.g
>sensors
thinkpad-isa-0000
Adapter: ISA adapter
fan1: 1975 RPM
use: -cf thinkpad,0 for fan1
For more information see s-tui project home page.