{"id":13441206,"url":"https://github.com/amanusk/s-tui","last_synced_at":"2025-10-20T10:47:09.694Z","repository":{"id":38178765,"uuid":"87705200","full_name":"amanusk/s-tui","owner":"amanusk","description":"Terminal-based CPU stress and monitoring utility","archived":false,"fork":false,"pushed_at":"2025-05-11T06:27:56.000Z","size":3070,"stargazers_count":4572,"open_issues_count":54,"forks_count":156,"subscribers_count":64,"default_branch":"master","last_synced_at":"2025-05-11T07:23:41.258Z","etag":null,"topics":["cli","console","cpu","frequency","monitoring","power","psutil","stress","stress-test","temperature","terminal","tui","urwid","utilization"],"latest_commit_sha":null,"homepage":"https://amanusk.github.io/s-tui/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amanusk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-04-09T11:59:53.000Z","updated_at":"2025-05-11T06:28:00.000Z","dependencies_parsed_at":"2024-06-18T16:40:48.665Z","dependency_job_id":"98e38d8a-402e-4ff6-be38-8731cfda361a","html_url":"https://github.com/amanusk/s-tui","commit_stats":{"total_commits":437,"total_committers":23,"mean_commits":19.0,"dds":0.6796338672768878,"last_synced_commit":"4f4e354a24e9bfc6d261928987ceb3bb2533d3a0"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amanusk%2Fs-tui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amanusk%2Fs-tui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amanusk%2Fs-tui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amanusk%2Fs-tui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amanusk","download_url":"https://codeload.github.com/amanusk/s-tui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253531464,"owners_count":21923075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","console","cpu","frequency","monitoring","power","psutil","stress","stress-test","temperature","terminal","tui","urwid","utilization"],"created_at":"2024-07-31T03:01:31.143Z","updated_at":"2025-10-20T10:47:09.684Z","avatar_url":"https://github.com/amanusk.png","language":"Python","funding_links":[],"categories":["Python","HarmonyOS","Command Line Utilities","Cross-Platform","Terminal","CPU_RISC-V","Packages","\u003ca name=\"monitor-top\"\u003e\u003c/a\u003eProcess viewers and monitoring (alternatives to top)","Table of Contents","Measure power usage by software"],"sub_categories":["Windows Manager","System Info / Monitoring","JavaScript","Apps and Tools","资源传输下载","Others","CLI Tools","GNU/Linux"],"readme":"# The Stress Terminal UI: s-tui\n\n[![PyPI version](https://badge.fury.io/py/s-tui.svg)](https://badge.fury.io/py/s-tui)\n[![Downloads](https://pepy.tech/badge/s-tui/month)](https://pepy.tech/project/s-tui)\n\n![](https://github.com/amanusk/s-tui/blob/master/ScreenShots/s-tui-logo-small.png?raw=true)\n\nStress-Terminal UI, s-tui, monitors CPU temperature, frequency, power and utilization in a graphical way from the terminal.\n\n## Screenshot\n\n![](https://github.com/amanusk/s-tui/blob/master/ScreenShots/s-tui-1.0.gif?raw=true)\n\n# Table of Contents\n\n- [The Stress Terminal UI: s-tui](#the-stress-terminal-ui-s-tui)\n  - [Screenshot](#screenshot)\n  - [What it does](#what-it-does)\n  - [Usage](#usage)\n  - [Simple installation](#simple-installation)\n    - [pip (x86 ARM)](#pip-x86--arm)\n  - [More installation methods](#more-installation-methods)\n    - [Ubuntu (18.10 and newer)](#ubuntu-1810-and-newer)\n    - [Ubuntu (18.04, 16.04)](#ubuntu-1804-1604)\n    - [Debian (10 and newer)](#debian-10-and-newer)\n    - [Arch Linux, Manjaro](#arch-linux-manjaro)\n    - [OpenSUSE](#opensuse)\n    - [Fedora](#fedora)\n  - [Options](#options)\n  - [Dependencies](#dependencies)\n  - [Configuration](#configuration)\n    - [Saving a configuration](#saving-a-configuration)\n    - [Adding threshold scripts](#adding-threshold-scripts)\n  - [Run from source code](#run-from-source-code)\n    - [OPTIONAL integration of FIRESTARTER (via submodule, does not work on all systems)](#optional-integration-of-firestarter-via-submodule-does-not-work-on-all-systems)\n  - [Compatibility](#compatibility)\n  - [FAQ](#faq)\n  - [Contributing](#contributing)\n  - [Tip](#tip)\n\n## What it does\n\n- Monitoring your CPU temperature/utilization/frequency/power\n- Shows performance dips caused by thermal throttling\n- Requires no X-server\n- Built-in options for stressing the CPU (stress/stress-ng/FIRESTARTER)\n\n## Usage\n\n```\ns-tui\n```\n\n## Simple installation\n\n### pip (x86 + ARM)\n\nThe most up to date version of s-tui is available with pip.\n\nInstall with:\n\n```\npip install s-tui --user\n```\n\n(This usually creates an executable in ~/.local/bin/ dir. Make sure it is in your PATH)\n\nTo install as root\n\n```\nsudo pip install s-tui\n```\n\nYou might need to install `python-dev` first\n\nInstallation in virtualenv with [pipsi](https://github.com/mitsuhiko/pipsi):\n\n```\npipsi install s-tui\n```\n\n## More installation methods\n\n### Ubuntu (18.10 and newer)\n\n```\nsudo apt install s-tui\n```\n\n### Ubuntu (18.04, 16.04)\n\nA PPA is available but is not up to date\n\n```\nsudo add-apt-repository ppa:amanusk/python-s-tui\nsudo apt-get update\nsudo apt-get install python3-s-tui\n```\n\n### Debian (10 and newer)\n\n```\nsudo apt install s-tui\n```\n\n\n### Arch Linux, Manjaro\n\n`s-tui` is in the Arch repository:\n\n```\nsudo pacman -S s-tui\n```\n\n`s-tui-git` follows the master branch, maintained by [@MauroMombelli](https://github.com/MauroMombelli)\n\nInstall it with:\n`yay -S s-tui-git`\n\n### OpenSUSE\n\n```\nsudo zypper install s-tui\n```\n\n### Fedora\n\n`s-tui` is in the Fedora [repository](https://src.fedoraproject.org/rpms/s-tui):\n\n```\nsudo dnf install s-tui\n```\n\n## Options\n\n```\nTUI interface:\n\nThe side bar houses the controls for the displayed graphs.\nAt the bottom, all sensors reading are presented in text form.\n\n* Use the arrow keys or 'hjkl' to navigate the side bar\n* Toggle between stressed and regular operation using the radio buttons in 'Modes'.\n* If you wish to alternate stress defaults, you can do it in \u003cStress options\u003e\n* Select graphs to display in the \u003cGraphs\u003e menu\n* Select summaries to display in the \u003cSummaries\u003e menu\n* Use the \u003cReset\u003e button to reset graphs and statistics\n* If your system supports it, you can use the UTF-8 button to get a smoother graph\n* Save your current configuration with the \u003cSave Settings\u003e button\n* Press 'q' or the \u003cQuit\u003e button to quit\n\n* Run `s-tui --help` to get this message and additional cli options\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -d, --debug           Output debug log to _s-tui.log\n  --debug-file DEBUG_FILE\n                        Use a custom debug file. Default: _s-tui.log\n  -dr, --debug_run      Run for 5 seconds and quit\n  -c, --csv             Save stats to csv file\n  --csv-file CSV_FILE   Use a custom CSV file. Default: s-tui_log_\u003cTIME\u003e.csv\n  -t, --terminal        Display a single line of stats without tui\n  -j, --json            Display a single line of stats in JSON format\n  -nm, --no-mouse       Disable Mouse for TTY systems\n  -v, --version         Display version\n  -tt T_THRESH, --t_thresh T_THRESH\n                        High Temperature threshold. Default: 80\n\n```\n\n## Dependencies\n\ns-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)\n\n```\nsudo apt-get install stress\n```\n\n## Configuration\n\ns-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.\n\n### Saving a configuration\n\nSelecting \\\u003cSave Settings\\\u003e will save the current configuration to `~/.config/s-tui/s-tui.conf`. If you would like to restore defaults, simply remove the file.\n\n### Adding threshold scripts\n\ns-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:\n\n- `tempsource.sh`: triggered when the CPU temperature threshold is exceeded\n\nIf 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.\n\nNote that at the moment only CPU temperature threshold hooks are supported.\n\n## Run from source code\n\nStart by cloning the repository\n\n```\ngit clone https://github.com/amanusk/s-tui.git\ncd s-tui\n```\n\nInstall required dependencies as \\[root\\] or as (local user)\n\n```\n[sudo] pip install urwid (--user)\n[sudo] pip install psutil (--user)\n```\n\nInstall stress (optional)\n\n```\nsudo apt-get install stress\n```\n\nRun the .py file\n\n```\npython -m s_tui.s_tui\n```\n\n### OPTIONAL integration of FIRESTARTER (via submodule, does not work on all systems)\n\n[FIRESTARTER](https://github.com/tud-zih-energy/FIRESTARTER) is a great tool to stress your system to the extreme.\nIf you would like, you can integrate FIRESTARTER submodule into s-tui.\n\nTo build FIRESTARTER:\n\n```\ngit submodule init\ngit submodule update\ncd ./FIRESTARTER\n./code-generator.py\nmake\n```\n\nOnce you have completed these steps, you can either:\n\n- Install FIRESTARTER to make it accessible to s-tui, e.g make a soft-link to FIRESTARTER in /usr/local/bin.\n- Run s-tui from the main project directory with `python -m s_tui.s_tui`  \n  An option to run FIRESTARTER will then be available in s-tui\n\n## Compatibility\n\ns-tui uses [psutil](https://github.com/giampaolo/psutil) to probe hardware information. If your hardware is not supported, you might not see all the information.\n\ns-tui uses [urwid](https://github.com/urwid/urwid) as a graphical engine. urwid only works with UNIX-like systems\n\n- Power read is supported on Intel Core CPUs of the second generation and newer (Sandy Bridge)\n  and on AMD Family 17h CPUs through the [amd_energy](https://www.kernel.org/doc/html/latest/hwmon/amd_energy.html) driver.\n- s-tui tested to run on Raspberry-Pi 4,3,2,1\n\n## FAQ\n\n**Q**: How is this different from htop?  \n**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).\n\n**Q**: I am using the TTY with no X server and s-tui crashes on start  \n**A**: By default, s-tui is handles mouse inputs. This causes some systems to crash. Try running `s-tui --no-mouse`\n\n**Q**: I am not seeing all the stats in the sidebar.  \n**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.:)\n\n## Contributing\n\nNew issues and Pull Requests are welcome :)\n\nIf you notice a bug, please report it as a new issue, using the provided template.\n\nTo open a Pull Request, please see [CONTRIBUTING](https://github.com/amanusk/s-tui/blob/master/CONTRIBUTING.md) for more information.\n\n## Tip\n\nIf you like this work, please star it on GitHub.\n\nBTC: `1PPhYgecwvAN7utN2EotgTfy2mmLqzF8m3`  \nETH: `0xc169699A825066f2F07E0b29C4082094b32A3F3e`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famanusk%2Fs-tui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famanusk%2Fs-tui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famanusk%2Fs-tui/lists"}