s-tui

Terminal-based CPU stress and monitoring utility

https://github.com/amanusk/s-tui

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.1%) to scientific vocabulary

Keywords

cli console cpu frequency monitoring power psutil stress stress-test temperature terminal tui urwid utilization
Last synced: 6 months ago · JSON representation

Repository

Terminal-based CPU stress and monitoring utility

Basic Info
Statistics
  • Stars: 4,755
  • Watchers: 63
  • Forks: 165
  • Open Issues: 51
  • Releases: 22
Topics
cli console cpu frequency monitoring power psutil stress stress-test temperature terminal tui urwid utilization
Created almost 9 years ago · Last pushed 9 months ago
Metadata Files
Readme Contributing License

README.md

The Stress Terminal UI: s-tui

PyPI version Downloads

Stress-Terminal UI, s-tui, monitors CPU temperature, frequency, power and utilization in a graphical way from the terminal.

Screenshot

Table of Contents

What it does

  • Monitoring your CPU temperature/utilization/frequency/power
  • Shows performance dips caused by thermal throttling
  • Requires no X-server
  • Built-in options for stressing the CPU (stress/stress-ng/FIRESTARTER)

Usage

s-tui

Simple installation

pip (x86 + ARM)

The most up to date version of s-tui is available with pip.

Install with:

pip install s-tui --user

(This usually creates an executable in ~/.local/bin/ dir. Make sure it is in your PATH)

To install as root

sudo pip install s-tui

You might need to install python-dev first

Installation in virtualenv with pipsi:

pipsi install s-tui

More installation methods

Ubuntu (18.10 and newer)

sudo apt install s-tui

Ubuntu (18.04, 16.04)

A PPA is available but is not up to date

sudo add-apt-repository ppa:amanusk/python-s-tui sudo apt-get update sudo apt-get install python3-s-tui

Debian (10 and newer)

sudo apt install s-tui

Arch Linux, Manjaro

s-tui is in the Arch repository:

sudo pacman -S s-tui

s-tui-git follows the master branch, maintained by @MauroMombelli

Install it with: yay -S s-tui-git

OpenSUSE

sudo zypper install s-tui

Fedora

s-tui is in the Fedora repository:

sudo dnf install s-tui

Options

``` TUI interface:

The side bar houses the controls for the displayed graphs. At the bottom, all sensors reading are 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
  • Select graphs to display in the menu
  • Select summaries to display in the menu
  • Use the button to reset graphs and statistics
  • If your system supports it, you can use the UTF-8 button to get a smoother graph
  • Save your current configuration with the button
  • Press 'q' or the 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 --debug-file DEBUGFILE Use a custom debug file. Default: s-tui.log -dr, --debugrun Run for 5 seconds and quit -c, --csv Save stats to csv file --csv-file CSVFILE Use a custom CSV file. Default: s-tuilogTHRESH, --tthresh TTHRESH High Temperature threshold. Default: 80

```

Dependencies

s-tui is great for monitoring. If you would like to stress your system, install stress. Stress options will then show up in s-tui (optional)

sudo apt-get install stress

Configuration

s-tui is a self-contained application that can run out-of-the-box and doesn't need config files to drive its core features. However, additional features like running scripts when a certain threshold has been exceeded (e.g. CPU temperature) does necessitate creating a config directory. This directory will be made in ~/.config/s-tui by default.

Saving a configuration

Selecting <Save Settings> will save the current configuration to ~/.config/s-tui/s-tui.conf. If you would like to restore defaults, simply remove the file.

Adding threshold scripts

s-tui gives you the ability to run arbitrary shell scripts when a certain threshold is surpassed, like your CPU temperature. You can define this custom behaviour by adding a shell file to the directory ~/.config/s-tui/hooks.d with one of the following names, depending on what threshold you're interested in reacting to:

  • tempsource.sh: triggered when the CPU temperature threshold is exceeded

If s-tui finds a script in the hooks directory with the name of a source it supports, it will run that script every 30 seconds as long as the current value of the source remains above the threshold.

Note that at the moment only CPU temperature threshold hooks are supported.

Run from source code

Start by cloning the repository

git clone https://github.com/amanusk/s-tui.git cd s-tui

Install required dependencies as [root] or as (local user)

[sudo] pip install urwid (--user) [sudo] pip install psutil (--user)

Install stress (optional)

sudo apt-get install stress

Run the .py file

python -m s_tui.s_tui

OPTIONAL integration of FIRESTARTER (via submodule, does not work on all systems)

FIRESTARTER is a great tool to stress your system to the extreme. If you would like, you can integrate FIRESTARTER submodule into s-tui.

To build FIRESTARTER:

git submodule init git submodule update cd ./FIRESTARTER ./code-generator.py make

Once you have completed these steps, you can either:

  • Install FIRESTARTER to make it accessible to s-tui, e.g make a soft-link to FIRESTARTER in /usr/local/bin.
  • Run s-tui from the main project directory with python -m s_tui.s_tui
    An option to run FIRESTARTER will then be available in s-tui

Compatibility

s-tui uses psutil to probe hardware information. If your hardware is not supported, you might not see all the information.

s-tui uses urwid as a graphical engine. urwid only works with UNIX-like systems

  • Power read is supported on Intel Core CPUs of the second generation and newer (Sandy Bridge) and on AMD Family 17h CPUs through the amd_energy driver.
  • s-tui tested to run on Raspberry-Pi 4,3,2,1

FAQ

Q: How is this different from htop?
A: s-tui is not a processes monitor like htop. The purpose is to monitor your CPU statistics and have an option to test the system under heavy load. (Think AIDA64 stress test, not task manager).

Q: I am using the TTY with no X server and s-tui crashes on start
A: By default, s-tui is handles mouse inputs. This causes some systems to crash. Try running s-tui --no-mouse

Q: I am not seeing all the stats in the sidebar.
A: The sidebar is scrollable, you can scroll down with DOWN or j or scroll to the bottom with PG-DN or G. You might consider also decreasing the size of the font that you use in your terminal.:)

Contributing

New issues and Pull Requests are welcome :)

If you notice a bug, please report it as a new issue, using the provided template.

To open a Pull Request, please see CONTRIBUTING for more information.

Tip

If you like this work, please star it on GitHub.

BTC: 1PPhYgecwvAN7utN2EotgTfy2mmLqzF8m3
ETH: 0xc169699A825066f2F07E0b29C4082094b32A3F3e

Owner

  • Name: amanusk
  • Login: amanusk
  • Kind: user
  • Location: TxPool

Blockchain Research | Open Source | Making cool things work || break

GitHub Events

Total
  • Issues event: 13
  • Watch event: 514
  • Delete event: 5
  • Issue comment event: 22
  • Push event: 11
  • Pull request review event: 7
  • Pull request event: 17
  • Fork event: 25
  • Create event: 3
Last Year
  • Issues event: 13
  • Watch event: 514
  • Delete event: 5
  • Issue comment event: 22
  • Push event: 11
  • Pull request review event: 7
  • Pull request event: 17
  • Fork event: 25
  • Create event: 3

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 444
  • Total Committers: 21
  • Avg Commits per committer: 21.143
  • Development Distribution Score (DDS): 0.581
Past Year
  • Commits: 7
  • Committers: 4
  • Avg Commits per committer: 1.75
  • Development Distribution Score (DDS): 0.571
Top Committers
Name Email Commits
amanusk a****k@p****m 186
amanusk a****n@g****m 140
giltsuker g****r@y****m 56
Unknown s****s@g****m 32
Chritian Schärf c****f@t****e 7
dvejmz d****z@g****m 6
Sacha Duverger s****r@i****r 2
hpaijmans h****s@e****m 2
zieloo z****o@l****n 1
Agnieszka Stec 5****s 1
Alex Johnstone a****j@g****m 1
Andreas Pantle m****l@a****e 1
Artem Polishchuk e****s@g****m 1
Dominik Moritz d****z@g****m 1
Joe Kappus j****e@w****d 1
Justas Zabulionis 3****z 1
Kevin McCormack h****l@g****m 1
Kian-Meng Ang k****g@c****g 1
Matthias Braun m****0 1
Michael Kesper m****r@s****g 1
removsarah 1****h 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 89
  • Total pull requests: 52
  • Average time to close issues: about 1 year
  • Average time to close pull requests: 2 months
  • Total issue authors: 75
  • Total pull request authors: 22
  • Average comments per issue: 3.61
  • Average comments per pull request: 0.83
  • Merged pull requests: 39
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 8
  • Pull requests: 19
  • Average time to close issues: 2 days
  • Average time to close pull requests: 24 days
  • Issue authors: 8
  • Pull request authors: 7
  • Average comments per issue: 0.75
  • Average comments per pull request: 1.05
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • amanusk (5)
  • GM-Script-Writer-62850 (5)
  • singalen (3)
  • LinuxOnTheDesktop (3)
  • sulinys (2)
  • mikehardy (2)
  • ShakirKhurshid (1)
  • j4n3b (1)
  • CyberTailor (1)
  • bennaux (1)
  • avdudchenko (1)
  • Betaminos (1)
  • tbaumann (1)
  • kennychenfs (1)
  • Manamama (1)
Pull Request Authors
  • amanusk (21)
  • hpaijmans (4)
  • removsarah (2)
  • ilius (2)
  • kianmeng (2)
  • joecool1029 (2)
  • ZielinskiLukasz (2)
  • emmanuel-ferdman (2)
  • schaerfo (2)
  • Ygnys (1)
  • mb720 (1)
  • ghost (1)
  • BitWire (1)
  • dancleaver (1)
  • jazzzooo (1)
Top Labels
Issue Labels
bug (8) feature request (5) help wanted (4) new feature (2) enhancement (2)
Pull Request Labels

Packages

  • Total packages: 18
  • Total downloads:
    • pypi 1,594 last-month
  • Total docker downloads: 13
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 13
    (may contain duplicates)
  • Total versions: 83
  • Total maintainers: 3
alpine-v3.18: s-tui-pyc

Precompiled Python bytecode for s-tui

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 3.5%
Stargazers count: 4.0%
Forks count: 9.9%
Maintainers (1)
Last synced: 6 months ago
alpine-v3.18: s-tui

Terminal-based CPU stress and monitoring utility

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 3.5%
Stargazers count: 4.0%
Forks count: 9.9%
Maintainers (1)
Last synced: 6 months ago
pypi.org: s-tui

Stress Terminal UI stress test and monitoring tool

  • Versions: 36
  • Dependent Packages: 0
  • Dependent Repositories: 13
  • Downloads: 1,594 Last month
  • Docker Downloads: 13
Rankings
Stargazers count: 1.3%
Docker downloads count: 1.5%
Dependent repos count: 4.0%
Forks count: 4.2%
Average: 4.3%
Downloads: 4.9%
Dependent packages count: 10.1%
Maintainers (1)
Last synced: 6 months ago
proxy.golang.org: github.com/amanusk/s-tui
  • Versions: 22
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
alpine-edge: s-tui-pyc

Precompiled Python bytecode for s-tui

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Stargazers count: 4.1%
Average: 7.3%
Forks count: 11.1%
Dependent packages count: 13.9%
Maintainers (1)
Last synced: 6 months ago
alpine-edge: s-tui

Terminal-based CPU stress and monitoring utility

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Stargazers count: 4.0%
Average: 7.3%
Forks count: 10.7%
Dependent packages count: 14.6%
Maintainers (1)
Last synced: 6 months ago
alpine-v3.15: s-tui

Terminal-based CPU stress and monitoring utility

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Stargazers count: 3.0%
Forks count: 7.2%
Average: 8.9%
Dependent packages count: 25.6%
Maintainers (1)
Last synced: 6 months ago
alpine-v3.16: s-tui

Terminal-based CPU stress and monitoring utility

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Stargazers count: 3.1%
Forks count: 7.5%
Average: 9.5%
Dependent packages count: 27.3%
Maintainers (1)
Last synced: 6 months ago
alpine-v3.17: s-tui

Terminal-based CPU stress and monitoring utility

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Stargazers count: 3.7%
Forks count: 9.2%
Average: 10.1%
Dependent packages count: 27.3%
Maintainers (1)
Last synced: 6 months ago
conda-forge.org: s-tui

s-tui is a terminal UI for monitoring your computer. s-tui allows to monitor CPU temperature, frequency, power and utilization in a graphical way from the terminal.

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 6.5%
Forks count: 14.8%
Average: 26.6%
Dependent repos count: 34.0%
Dependent packages count: 51.2%
Last synced: 6 months ago
alpine-v3.22: s-tui

Terminal-based CPU stress and monitoring utility

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 6 months ago
alpine-v3.20: s-tui

Terminal-based CPU stress and monitoring utility

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 6 months ago
alpine-v3.20: s-tui-pyc

Precompiled Python bytecode for s-tui

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 6 months ago
alpine-v3.22: s-tui-pyc

Precompiled Python bytecode for s-tui

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 6 months ago
alpine-v3.19: s-tui

Terminal-based CPU stress and monitoring utility

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 6 months ago
alpine-v3.21: s-tui

Terminal-based CPU stress and monitoring utility

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 6 months ago
alpine-v3.19: s-tui-pyc

Precompiled Python bytecode for s-tui

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 6 months ago
alpine-v3.21: s-tui-pyc

Precompiled Python bytecode for s-tui

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Dependent packages count: 0.0%
Average: 100%
Maintainers (1)
Last synced: 6 months ago

Dependencies

setup.py pypi
  • psutil >=5.9.1
  • urwid >=2.0.1
.github/workflows/pythonpackage.yml actions
  • actions/checkout v1 composite
  • actions/setup-python v1 composite