# Ground Control 🚀
[![PyPI version](https://badge.fury.io/py/ground-control-tui.svg)](https://badge.fury.io/py/ground-control-tui)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![Python 3.6+](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/downloads/)
A modern, responsive Terminal User Interface (TUI) for real-time system monitoring, built with [Textual](https://textual.textualize.io/).
![Ground Control Demo](https://github.com/alberto-rota/ground-control/blob/main/assets/gc.png)
## Features
- **Real-time System Monitoring**
- CPU usage per core with frequency tracking
- Memory utilization
- Disk I/O with read/write speeds
- Network traffic monitoring
- GPU metrics (if NVIDIA GPU is available)
- **Responsive Design**
- Automatically adjusts layout based on terminal size
- Supports horizontal, vertical, and grid layouts
- Dynamic resizing with smooth transitions
- **Process Management**
- View top-level user processes
- Monitor system resource usage per process
## Installation
You can install Ground Control directly from PyPI:
```bash
pip install ground-control-tui
```
or install from source:
```bash
git clone https://github.com/alberto-rota/ground-control
cd ground-control
pip install -e .
```
## Quick Start
After installation, simply run:
```bash
groundcontrol
```
Or use it as a Python module:
```bash
python -m ground_control
```
## Usage
### Keyboard Controls
- `h`: Switch to horizontal layout
- `v`: Switch to vertical layout
- `g`: Switch to grid layout
- `a`: Toggle automatic layout
- `q`: Quit the application
### Layout Modes
Ground Control offers three layout modes:
1. **Grid Layout (Default)**: 2x2 grid arrangement
2. **Horizontal Layout**: All panels in a row
3. **Vertical Layout**: All panels in a column
The layout automatically adjusts based on your terminal size, but you can override this using the keyboard controls.
### Process Monitoring
To view top-level processes for the current user:
```bash
python -m ground_control.cli.process_list
```
## Requirements
- Python 3.6 or higher
- psutil
- textual
- plotext
- pynvml (optional, for NVIDIA GPU monitoring)
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
## License
This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.
## Author
**Alberto Rota**
Email: alberto1.rota@polimi.it
GitHub: [@alberto-rota](https://github.com/alberto-rota)
## Acknowledgments
- Built with [Textual](https://textual.textualize.io/)
- System metrics provided by [psutil](https://github.com/giampaolo/psutil)
- GPU monitoring via [pynvml](https://github.com/nvidia/nvidia-ml-py)
---
For more information and updates, visit the [GitHub repository](https://github.com/alberto-rota/ground-control).
Raw data
{
"_id": null,
"home_page": "https://github.com/alberto-rota/ground-control",
"name": "ground-control-tui",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Alberto Rota",
"author_email": "alberto1.rota@polimi.it",
"download_url": "https://files.pythonhosted.org/packages/a0/81/96cd0fea139e4093406ea481b253339e74a526729e18a10385e7cee61e70/ground_control_tui-0.1.8.tar.gz",
"platform": null,
"description": "# Ground Control \ud83d\ude80\n\n[![PyPI version](https://badge.fury.io/py/ground-control-tui.svg)](https://badge.fury.io/py/ground-control-tui)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![Python 3.6+](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/downloads/)\n\nA modern, responsive Terminal User Interface (TUI) for real-time system monitoring, built with [Textual](https://textual.textualize.io/).\n\n![Ground Control Demo](https://github.com/alberto-rota/ground-control/blob/main/assets/gc.png)\n\n## Features\n\n- **Real-time System Monitoring**\n - CPU usage per core with frequency tracking\n - Memory utilization\n - Disk I/O with read/write speeds\n - Network traffic monitoring\n - GPU metrics (if NVIDIA GPU is available)\n\n- **Responsive Design**\n - Automatically adjusts layout based on terminal size\n - Supports horizontal, vertical, and grid layouts\n - Dynamic resizing with smooth transitions\n\n- **Process Management**\n - View top-level user processes\n - Monitor system resource usage per process\n\n## Installation\n\nYou can install Ground Control directly from PyPI:\n\n```bash\npip install ground-control-tui\n```\n\nor install from source:\n\n```bash\ngit clone https://github.com/alberto-rota/ground-control\ncd ground-control\npip install -e .\n```\n\n## Quick Start\n\nAfter installation, simply run:\n\n```bash\ngroundcontrol\n```\n\nOr use it as a Python module:\n\n```bash\npython -m ground_control\n```\n\n## Usage\n\n### Keyboard Controls\n\n- `h`: Switch to horizontal layout\n- `v`: Switch to vertical layout\n- `g`: Switch to grid layout\n- `a`: Toggle automatic layout\n- `q`: Quit the application\n\n### Layout Modes\n\nGround Control offers three layout modes:\n\n1. **Grid Layout (Default)**: 2x2 grid arrangement\n2. **Horizontal Layout**: All panels in a row\n3. **Vertical Layout**: All panels in a column\n\nThe layout automatically adjusts based on your terminal size, but you can override this using the keyboard controls.\n\n### Process Monitoring\n\nTo view top-level processes for the current user:\n\n```bash\npython -m ground_control.cli.process_list\n```\n\n## Requirements\n\n- Python 3.6 or higher\n- psutil\n- textual\n- plotext\n- pynvml (optional, for NVIDIA GPU monitoring)\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n## License\n\nThis project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.\n\n## Author\n\n**Alberto Rota** \nEmail: alberto1.rota@polimi.it \nGitHub: [@alberto-rota](https://github.com/alberto-rota)\n\n## Acknowledgments\n\n- Built with [Textual](https://textual.textualize.io/)\n- System metrics provided by [psutil](https://github.com/giampaolo/psutil)\n- GPU monitoring via [pynvml](https://github.com/nvidia/nvidia-ml-py)\n\n---\n\nFor more information and updates, visit the [GitHub repository](https://github.com/alberto-rota/ground-control).\n",
"bugtrack_url": null,
"license": "GPLv3",
"summary": "A Python Textual app for monitoring VMs in the terminal",
"version": "0.1.8",
"project_urls": {
"Homepage": "https://github.com/alberto-rota/ground-control"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6ce708cc569f2c42c4aa8fcd9d85fd4ee20b88aa22790bb1984b8fa29810ee86",
"md5": "6f8bf8883e6c2e228be10e2083690e90",
"sha256": "77a100f6ed9a5292203b80dd4660f6c4fe62184c890022f2abd10dafc548c210"
},
"downloads": -1,
"filename": "ground_control_tui-0.1.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6f8bf8883e6c2e228be10e2083690e90",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 27188,
"upload_time": "2024-12-09T10:10:53",
"upload_time_iso_8601": "2024-12-09T10:10:53.440418Z",
"url": "https://files.pythonhosted.org/packages/6c/e7/08cc569f2c42c4aa8fcd9d85fd4ee20b88aa22790bb1984b8fa29810ee86/ground_control_tui-0.1.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a08196cd0fea139e4093406ea481b253339e74a526729e18a10385e7cee61e70",
"md5": "80642e201495b348c889b9ec2a3cc279",
"sha256": "b5a0077b54cef626dd643eee6925f4b94389b7622d321aa98a04c346b1196d52"
},
"downloads": -1,
"filename": "ground_control_tui-0.1.8.tar.gz",
"has_sig": false,
"md5_digest": "80642e201495b348c889b9ec2a3cc279",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 23709,
"upload_time": "2024-12-09T10:10:55",
"upload_time_iso_8601": "2024-12-09T10:10:55.330108Z",
"url": "https://files.pythonhosted.org/packages/a0/81/96cd0fea139e4093406ea481b253339e74a526729e18a10385e7cee61e70/ground_control_tui-0.1.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-09 10:10:55",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "alberto-rota",
"github_project": "ground-control",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "nvidia_ml_py",
"specs": [
[
"==",
"12.535.161"
]
]
},
{
"name": "plotext",
"specs": [
[
"==",
"5.3.2"
]
]
},
{
"name": "psutil",
"specs": [
[
"==",
"6.0.0"
]
]
},
{
"name": "setuptools",
"specs": [
[
"==",
"75.1.0"
]
]
},
{
"name": "textual",
"specs": [
[
"==",
"0.89.1"
]
]
}
],
"lcname": "ground-control-tui"
}